I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

Everyone else is arguing about HTML 5’s video codecs. Why can’t I?

Ryan Paul at Ars Technica wrote this great overview of the argument. In short:

It’s pointless to argue whether the adopted standard should be a free codec. The H.264 camp screams about practicality and the Theora camp screams about principle. Both are entrenched in their positions: Google is a toss-up for Chrome, but they’re unlikely to support Theora on YouTube, the biggest and most influential video site by far. Apple will never support Theora. Mozilla will never support H.264. (I’m on the H.264 side for numerous practical reasons, but it doesn’t really matter — I’d love it if everyone supported both.)

Effectively, the bickering has killed any chance that the HTML 5 <video> element had of being used on any meaningful scale.

The purpose was to remove complexity for browsers, authors, and users, but it has only added it.

Know what’s a lot simpler?


Yes, the Flash that we were trying to get away from.

Because Adobe doesn’t care that H.264 isn’t free. Flash supports the same formats on every browser. Even IE. And authors only need to encode, store, cache, and track one file per video.

In fact, you can use your choice of numerous tools — free or commercial, command-line or graphical, all-in-one or specialized, Linux or OS X or Windows — to encode H.264 video with AAC audio in an .MP4 or .MOV container. Then you can play that file on:

How does that list look for a Theora/Vorbis .OGV file?

It doesn’t matter that H.264 isn’t technically free: it’s near-universal and incredibly practical. MP3 isn’t free, but it’s everywhere, except where it has been replaced with the also-not-free AAC. Until last year, JPEG was under possible patent restrictions, but it has been supported by every version of every Mozilla browser.

By not supporting the practical format, Mozilla isn’t making a brave statement or taking a stand: they’re just keeping everyone on Flash and preventing meaningful adoption of HTML 5’s <video> element.