Evaluations of Existing HTML5 Video Players
Charly's Infusion Video Player
- https://github.com/lahabana/videoPlayer
- http://royalgiz.fr/videoplayer/html/VideoPlayer.html
- built using Infusion IoC
- support captions
- uses a copy of Antonio's caption conversion service (PHP app, created for OpenCaps, I believe?)
VideoJS
- http://videojs.com/
- uses flow player for flash support http://flowplayer.org/documentation/index.html
- uses Video for Everybody http://camendesign.com/code/video_for_everybody
- GPL 3
- includes an event system based on Resig's
- has a bunch of commented out stuff that messes with Array.prototype
- cleanly written and well documented - easy to read
- has an options block similar to jquery
- appears to have a strategy for adding and removing behaviour but not on a per instance basis
- markup and strings are hardcoded in a private function
mediaelement.js
- http://mediaelementjs.com/
- https://github.com/johndyer/mediaelement
- License: GPLv2/MIT
- polyfill: mimics the HTML5 MediaElement API for browsers that don't support HTML5
- CSS nicely namespaced
- The player uses hard-coded HTML with no means for customization
- Player broken out nicely into features
- claims to support <track> element
JW Player
- http://www.longtailvideo.com/players/
- http://developer.longtailvideo.com/trac/browser/trunk/fl5
- commercial license for commercial use (free for non-commercial use)
- plugin architecture
- includes plugins for captions and audio descriptions
- includes a Flash player (requires Flex SDK to build)
- does pseudo-streaming
- appears to do bitrate switching
- supports dynamic resizing via JavaScript
- good keyboard a11y
J-media element
- http://protofunc.com/jme/index.html
- http://html5video.org/wiki/JMediaelement
- https://github.com/aFarkas/jMediaelement/
- License: GPL2/MIT
- jQuery plugin
- includes a copy of JW Player and Cortada (Java)
- not compatible with mobile platforms
- demo shows resizable mp4 in a dialog (i.e. resizes with dialog - mp4 only?)
Kaltura
- http://www.kaltura.org/project/HTML5_Video_Player (MIT licence)
- http://www.kaltura.org/project/HTML5_Video_Media_JavaScript_Library (GPLv2 licence)
- http://code.html5video.org/projects/html5video/repository/show/trunk/mwEmbed
- MediaWiki plugin
- skins hard-code HTML markup
- skins pluggable - could write a skin that doesn't hard-code markup
jPlayer
- http://jplayer.org/
- https://github.com/happyworm/jPlayer
- License: GPL/MIT
- jQuery plugin but uses its own implementation of widget
- Flash-first, HTML5 as fall-back
- integrator doesn't write the <video> tag, the jPlayer plug-in does that
- seems quite skinnable (one demo shows a text-only audio player)
- infusion-style overridable selectors for all controls, feedback, etc.
- plugin figures out whether to use html or flash, and then for every action (play, seek, etc) calls the right function
- nothing built-in for the <track> element (for captions or subtitles)
- basic kbd a11y in place
- could use improvements (e.g. enter activates buttons, but not spacebar)
- skin doesn't include visual feedback of kbd focus
- volume slider itself not kbd-a11y (only mute/unmute)
Video for Everybody
- http://camendesign.com/code/video_for_everybody
- basically:
<video> <object> <img title="instructions to use the download link below"> </object> </video> <a src="downloadable version of video"/>
Pseudo-streaming
- http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v4/12207/video-delivery-http-pseudo-streaming
- http://flowplayer.org/plugins/streaming/pseudostreaming.html
- relevant for Flash only ("For HTML5 mode, pseudostreaming works by default in all browsers and with all servers. It needs no specific provider and options.")
- needs a server-side module or script to enable it
- less secure than Flash’s official RTMP Streaming
OSM Player
- http://www.mediafront.org/project/osmplayer
- https://github.com/mediafront/osmplayer
- License: GPL3
- uses jQuery, themable using Themeroller
- designed to be used within a Content Management environment, such as Drupal, but can be used standalone
- has support for resizing
- includes templates that can be customized, but:
- these seem to be for use with their OSM Player PHP Library?
- the "required HTML" includes direct links to images in the template folder, so you'd have to change all of them?
Projekktor
- http://www.projekktor.com/
- http://code.google.com/p/projekktor-zwei/
- License: GPL3
- uses jQuery
- Controls HTML coded in a config block
- full screen support inspired by http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/
Captionator
- http://captionatorjs.com/
- https://github.com/cgiffard/Captionator
- License: completely open ("You may copy and use this library as you see fit (including commercial use) and modify it, as long as you retain my attribution comment...")
- closed-captioning polyfill for HTML5: implements support for
<track>
element - support for WebVTT, SRT, SBV, and SUB caption/subtitle formats
- namespaced to "captionator"
- can provide your own render function for the captions
- claims non-standard support for use of
<track>
for audio and video- small bug in video, but can get something to work
- haven't been able to get audio to work
- bug: Captionator somehow interferes with native volume control?
Akamai’s Open Video Player
- http://www.akamai.com/HTML5
- http://openvideoplayer.sourceforge.net/html5video/
- http://sourceforge.net/projects/openvideoplayer/files/OVP%20HTML5/
- License: open (http://openvideoplayer.sourceforge.net/license)
- a 'family of industry best practice video player projects' including Flash, Silverlight, Apple iOS and HTML5
- HTML5 version doesn't seem to have been updated since Oct. 2010? http://sourceforge.net/projects/openvideoplayer/files/OVP%20HTML5/
- can't find HTML5 code in SVN repo? http://openvideoplayer.svn.sourceforge.net/viewvc/openvideoplayer/trunk/
- no documentation?
FlareVideo
- http://flarevideo.com/
- https://github.com/maccman/flarevideo
- License: MIT
- markup built by player, hard-coded in JS
- class names added by JS, hard-coded, sprinkled throughout
RSMS's HTML5 Video Player
- https://github.com/rsms/html5-video
- License: fully open / MIT
- jQuery plugin
- minimalist controls (mute, but no volume control; progress bar, but no scrubbing)
- uses <bar> tag for progress bar?
jQuery UI Video widget
- https://github.com/azatoth/jquery-video
- License: GPL/BSD/MIT
- uses
$.widget()
- hard-codes markup and class names in the JS
- uses jQuery UI Themeroller
SublimeVideo
- http://blog.jilion.com/2010/01/25/introducing-sublimevideo
- Currently, a pay service: http://sublimevideo.net/
- "will be soon released for free (at least for non-commercial use)"
- "still in experimental state and only works on a limited number of browsers"
YUI HTML5 Video Player
- https://github.com/macinjosh/YUI-HTML5-Player
- License: open
- started as entry to the YUI 3 Gallery Contest in March 2010
- minified code committed to github
DailyMotion video player
- http://www.dailymotion.com/en/html5
- not actually something available - only on the dailymotion site