This is a distillation of an article from our friends at LongTail Video, makers of the awesome JW Player, which we use in many of our web projects.
As we all know, HTML5 is an evolving standard, and implementation of its video playback features varies quite a bit from browser to browser and device to device. Which is to say, HTML5 video is very much a moving target. Here at Allied Pixel, we take a cautious approach to ensure the best experience for the greatest number of viewers. In an effort to help separate hype from reality, here’s an update on where things stand with HTML5 video right now.
Market Share
Combining desktop browsers and mobile devices, about 74% of the market now supports HTML5 video. That’s up from 66% in the previous quarter. An important holdout is Internet Explorer 6/7/8, which don’t support it. IE 9 does support HTML5 video, but it’s not compatible with any OS up through Windows Vista. Which is to say, only users who have a new computer with Windows 7 can install IE 9 and thus take advantage of HTML5 video. Consequently for many of our clients, it’s still vital to have a Flash video fallback.
In the mobile arena, iOS and Android both support HTML5 video. It’s clear that mobile Flash support will eventually disappear entirely.
Media Formats
Complicating matters is the fact that HTML5 video comes in several flavors, with MP4 and WebM being the most popular. Chrome supports both MP4 and WebM. IE, Safari, iOS and Android support MP4. Firefox and Opera support WebM, but Firefox recently announced that it would start supporting MP4. So at that point, MP4 will be the defacto standard.
Tag Attributes
The HTML5 video tag provides for a number of attributes, such as Poster, Autoplay, Preload and Controls. These attributes control the appearance and functionality of the video player on the web page. (Some, including Preload and Autoplay, are not supported on mobile browsers.) The good news here is that about 90% of tag attributes are now supported.
JavaScript API
The HTML5 video tag also provides a JavaScript API for controlling content, such as Loading, Buffering, Playback, Seeking and Volume. Overall, 80% of those API features work reliably these days, with the main holdout being Android.
Fullscreen Playback
Did I mention that HTML5 is an evolving standard? One such area is fullscreen playback, whose specification has not been completed yet. Chrome, Firefox and Safari support fullscreen video, either through a control or scripting API. IE and Opera do not support fullscreen playback. iPad and Android tablets support a fullscreen control. iPhones and Android phones always playback video fullscreen. Overall, fullscreen support is at 50% in the market.
Accessibility
The main two accessibility standards we worry about are keyboard control and closed captions. HTML5 videos can be keyboard controlled in IE, Firefox and Opera. Chrome and Safari don’t support generic keyboard access, but workarounds are available.
Closed captions will be supported through the brand new Text Track element. It’s not currently supported in any browser, but browser vendors are working hard to add it. Overall, just 30% of accessibility features are available market wide.
Adaptive Streaming
Adaptive streaming enables buffer control (less waste of bandwidth,) fast seeking (to not-yet-downloaded parts,) quality adjustments (during playback) and live streaming (possibly with DVR.) Currently iOS is the only platform with adaptive streaming, supporting Apple’s own HTTP Live Streaming (HLS) protocol. Android 4 introduced HLS support too, but its market share is still low.
Summary
What does it all mean? HTML5 is clearly the emerging web video standard, but it is a work in progress. It has come a long way from where we were 12 months ago. But we still have to account for lack of support (or even the existence of a standard) in numerous areas. So a hybrid HTML5/Flash fallback strategy is the safest bet for the time being. A year from now, it may be a different story.