Video player requirements
Note: User story references (e.g., us18) refer to our user stories document.
VoV video player needs to satisfy these requirements:
- RTMP support (us18)
- Fallback to HTML5 video when Flash player is not supported (iOS) (us18)
- Fullscreen capability (us61)
Features that are required and nice to have built-in but we can write them ourselves
- Playlist Playlists (us11) - list of videos or clips that can be played back in sequence, shared with others, can be manipulated through JS.
- Clip making (us3, us64) - portions of videos can be defined, played back, and shared with others
- Closed captions (us43) - ability to toggle on/off
- Accessibility (us10) - section 508 (support for use by people with disabilities)
- Blocking access to certain segments of a video (us90) - parts of a video can be restricted based on role, to support IP, ethical, or religious concerns
Features that are not required but would be nice to have and difficult for us to implement
- Plugin support - possible to write plugins to add functionalities to both Flash & html5 players
- Skinnable, configurable layout - for look & feel, branding...
- Adjustable playback speed (US 56 us56 - is this possible with streaming?)
- Adaptive streaming - the player can change video quality (when switching to fullscreen or connection slows down)
Features that we will most likely want to write ourselves
- Annotations using OAC (us23, us26, us27...) - end-user annotations can be created and shared according to authorization rules; may need both adjacent and overlaid display of annotations
- Embedding (us55)
Adaptive streaming means the player can change video quality (when switching to fullscreen or connection slowing down)
- - player and a flexible subset of components can be embedded in a web page, CMS/LMS page
- MIT/BSD/ECL compatible licensing (not GPL)
Video players compared
The list below only compares open-source players with license less strict than GPL.
|jwplayer||mediaelement.js||OSMF (StrobeMedia)||Engage||video.js||Fluid player|
|m3u8||Yes (flash + html5)||Yes (html5)||Yes (Flash + HTML5||HTML5||3rd party plugin)||Probably||Unclear||HTML5|
|Skinnable||YesFlash + HTML5||Yes||Yes||No||Yes||HTML5|
Engage is based on OSMF. We're looking into Fluid Player.
Matterhorn Engage Player
Strobe Media Playback
There is a fallback from Flash to HTML5, but does not have an option to specify source (RTMP or mp4) for each type of player.
Engage seems to be not flexible and too tightly coupled to Matterhorn. Getting help isn't easy.
FluidPlayer looks good, has some flexibility, but they're not interested in Flash video. Fullscreen API isn't supported in IE but is useful. We could probably fall back to Flash fullscreen. For now we'll try to make FluidPlayer work with some flash player.
RTMP streaming seems to be unavoidable, as some security barrier has to be there to discourage piracy (though impossible to prevent)