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.

Contact Ann Paoli

This field is for validation purposes and should be left unchanged.

Contact Dave Lanzalone

This field is for validation purposes and should be left unchanged.

Contact Sean Purdy

This field is for validation purposes and should be left unchanged.

Contact Brian Shaud

This field is for validation purposes and should be left unchanged.

Contact Brittany Strizelka

This field is for validation purposes and should be left unchanged.

Contact JD Spivey

This field is for validation purposes and should be left unchanged.

Contact Lokesh Gopal

This field is for validation purposes and should be left unchanged.

Contact Joe Rodriguez

This field is for validation purposes and should be left unchanged.

Contact Henry Park

This field is for validation purposes and should be left unchanged.

Contact Leonardo Galindo

This field is for validation purposes and should be left unchanged.

Contact Shirley Gay

This field is for validation purposes and should be left unchanged.

Contact Ling Song

This field is for validation purposes and should be left unchanged.

Contact Ariel Lynn

This field is for validation purposes and should be left unchanged.

Contact Alyson Leonard

This field is for validation purposes and should be left unchanged.

Contact Luke O'Brien

This field is for validation purposes and should be left unchanged.

Contact Clement Baa-Adomako

This field is for validation purposes and should be left unchanged.

Contact Andrew Mikida

This field is for validation purposes and should be left unchanged.

Contact John Cervino

This field is for validation purposes and should be left unchanged.

Contact Calvin Woodruff

This field is for validation purposes and should be left unchanged.

Contact Adrienne Belt

This field is for validation purposes and should be left unchanged.

Contact Frank Speeder

This field is for validation purposes and should be left unchanged.

Contact Steve Carey

This field is for validation purposes and should be left unchanged.

Contact Ben Vuocolo

This field is for validation purposes and should be left unchanged.

Contact Micah Shaffer

This field is for validation purposes and should be left unchanged.

Contact John Kolleh

This field is for validation purposes and should be left unchanged.

Contact Dan Mendenhall

This field is for validation purposes and should be left unchanged.

Contact Bridget Clerkin

This field is for validation purposes and should be left unchanged.

Contact Tom MaCoy

This field is for validation purposes and should be left unchanged.

Contact Dan Fried

This field is for validation purposes and should be left unchanged.

Contact Vanessa Balzano

This field is for validation purposes and should be left unchanged.

Contact Gene Castellano

This field is for validation purposes and should be left unchanged.

Contact Tom Mikowski

This field is for validation purposes and should be left unchanged.

Contact Pete Bretz

This field is for validation purposes and should be left unchanged.

Contact Bill Haley

This field is for validation purposes and should be left unchanged.