I thought that I’d blow a little of the dust off of this blog to write a slightly-longer-than-tweetable rant about the state of the open web, and more specifically about the state of HTML 5 and open video.
One of the buzzword standards that browser makers are tripping over one another to support presently is HTML5’s support for <video> and <audio> tags in web pages, which aims to make planting and viewing rich media on the Internet as easy as it is to drop an <img> on the page. The goal is to get away from plugins like the resource-hogging Flash, and make videos scriptable. Mozilla and Webkit have both made some amazingly impressive demos using the technology. Browsers will one day soon support the native display of video just as easy as it is do view a jpeg, png, or gif image. Ah, but there’s the rub… which video format should browsers be able to play?
H.264 is the gold standard of video compression format baked into pretty much everything. Hardware acceleration on video cards? Got it. iPhone? Got it (in fact, H.264 is pretty much all it’ll play.) Bluray? Got it. Google Chrome? Got it. Apple Safari? Got it. DivX 7? Got it. Windows 7? Got it. Mac OS X? Got it. Quicktime X? It’s practically the house built upon the foundation of H.264. Even the White House uses H.264 MP4 files. The catch is that H.264 has been carefully marketed by a group of patent holders over the better part of the last decade to increase market adoption, and adopt it did. However, in 2011 the grace period on both encoder and decoder expires and licensing fees will need to be paid to the MPEG-LA group. That makes it a lot less attractive for those advocating an open, free, and standard Internet.
On the other hand, there’s a format called Ogg Theora, which is a little like the red-headed step child that lost the video race in the late 1990’s and was forgotten about. Although there are no guarantees against submarine patents, Theora claims to be patent, license, and royalty free. The problem is that the format is, although improving, very poor in quality, has virtually no support for hardware acceleration, and isn’t widely implemented. It’s so inefficient, in fact, that it’s been argued that the excess bandwidth cost from Theora video would outweigh the cost of licensing H.264. By nature of it being free and open, however, it has been chosen by Mozilla as practically the second coming, who has even invested $100,000 to improve the codec quality and distribution.
Although it’s unclear what will happen to the state of H.264 encoders and decoders come 2011, what seems likely is that even the free and open source solutions like x264/ffmpeg will no longer be able to legally be distributed in the United States. But, as nice as the patent-free and license-free concept around Theora is, without hardware and major vendor support it’s going to be stuck in geek enthusiast circles.
So, instead of this wonderful world where developers can drop a video into a web page in a single format and be confident that it will work, we’re back in the 1990’s and Flash Video looks like it’ll never go away. In order to realistically support HTML5 video, developers are still stuck wondering what codec to use or waste valuable computer cycles and bandwidth to support both.
There will always be a need for fallbacks, since Microsoft is a lumbering buffoon and isn’t likely to support <video> any time soon. But the thing is, even Flash plays H.264 video. Were Mozilla to have elected to do the logical thing and license an H.264 decoder, a web developer could have a single video file encoded in H.264 which would play in all modern browsers, iPhone included, and then, as detailed here, simply load that same H.264 file into an Adobe Flash player as a fallback.
Unfortunately, all the other browser makers that implement H.264 combined don’t add up to Mozilla’s market share. Ultimately, though, what will decide what format gets accepted as the baseline standard for HTML5 video will probably depend on two things: Youtube, which carries the vast weight of Internet video on its back, and mobiles (phones+netbooks). Mobiles will need hardware acceleration in order to efficiently play the video on limited battery life, which doesn’t exist for Theora. And guess what? Youtube has been experimenting with HTML5 video as of late, and guess what codec they’re using? Yep. H.264.
Give it up, Mozilla. Just license the darned decoder instead of making a political statement.