Video Streaming in DSpace


We had been using Real and Windows Media streaming server for our video/audio streaming in DSpace. The implementation depends on what player(s) is/are installed on the client computer which we have no control (the system may not have either players available). We decided to use other technologies/streaming and have an embedded player.

 

Player

 

We chose JWplayer (1) as our embed video player for number of reasons,

1. Good reputation, widely adopted, well documented, robust, and versatile.

2. Support various video/audio formats (support mp3/mp4 that we planned to use)

3. Can handle different streaming protocols (RTMP, HLS etc.)

4. Support most browsers and devices

5. Video Analytics

 

Streaming

 

For streaming, we first tried HTML5 since it is simple. It won't let you jump back and forth to play, so it is not practical for longer videos. We decided to use Flash Streaming Server from Center IT Services. The playback is much nicer after the switch. 

 

Thumbnails

 

We need an image for each video to serve as a poster image and a thumbnail for the item. As DSpace filter-media doesn't support thumbnail generation for video files, the extraction is done separately with a script and ingested into the IR using batch import workflow.

 

The software used for thumbnail extraction is ffmpeg (2) and the command is -

 

ffmpeg -i <input file> -ss <time> -vcodec mjpeg -vframes 1 -f image2 <output file>

 

The <time> varies for different video files. We have short video files that the interviewer gave brief introduction to the video (let's call them introduction video). It is usually the first video for the item with the interviewer only, so we place an "intro" as the filename suffix to differentiate them from other videos and grabbed the image at 00:00:01.00. Some of the introduction video combined with the real interview. For those videos,  we would like to grab the image with the interviewee not the interviewer, so we chose time 00:40:00.00 for all non-introduction videos. Also, some manual curation had been done to verify the results.

 

Duration

 

To extend our metadata, we also extract the duration information for the video. The duration for each video noted as the description for the bitstream and the total duration of an interview are summed up and stored in dc.format.extent.

 

Connection with DSpace

 

The DSpace does not natively support video playback. Some customization has been done to integrate the jwplayer with the DSpace Manakin theme and generate soft link for each video file to work with streaming server.

 

References

(1) JWplayer www.longtailvideo.com/jw-player/‎

(2) FFmpeg software www.ffmpeg.org/‎