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)
- Javascript API that works identical in Flash mode and HTML5 mode
- Fullscreen capability (us61)
Features that are required and nice to have built-in but we can write them ourselves
- Playlist (us11)
- Clip making (us3, us64)
- Closed captions (us43)
- Accessibility (us10)
- Blocking access to certain segments of a video (us90)
Features that are not required but would be nice to have and difficult for us to implement
- Plugin support
- Skinnable, configurable layout
- Adjustable playback speed (US 56 - 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...)
- Embedding (us55)
Other requirements
- 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 | |
---|---|---|---|---|---|
License | Custom | GPLv2/MIT | BSD | MPL | LGPLv3 |
Flash | Yes | Yes | Yes | Yes | Yes |
m3u8 | Yes (flash + html5) | Yes (html5) | Yes (3rd party plugin) | Probably | Unclear |
Adaptive streaming | Yes | No | Yes | Probably | No |
Playlist | Yes | No | Yes | Probably | No |
Skinnable | Yes | Yes | Yes | No | Yes |
Javascript API | Yes | Yes | Exploratory | Yes | Yes |
Clip making | Yes | No | Unclear | Yes | Unclear |
Caption | Yes | Yes | No | Yes | Yes |
Engage is based on OSMF. We're looking into Fluid Player.