By now it’s not news that Google has dropped H.264 support from the <video> tag in their Chrome Browser, ostensibly because WebM is “more open”, which is demonstrably a lie as they continue support for Flash in Chrome. (I have no problem with Google taking whatever actions it likes, but please don’t insult me by saying it’s because of “openness”.)
The important thing to remember is that this changes NOTHING! Not a single thing. No-one cares about WebM and more importantly, no-one should even consider WebM.
WebM is Google’s proprietary (as in only they see the badly documented code) combination of the Matroska (MKV) container format (supported almost nowhere) with Google-owned VP8 for video and the Ogg Theora codec for audio.
The only people who care are the 2% or less of the Internet who believe strongly in open source software. I am ambivalent about open source software. It has a lot of advantages, when it’s truly open, because many people have the opportunity to improve the code. This is not the case with VP8. While the code has been published, it is poorly documented and only google can change it. Others can build on it without Google, but it appears at this point that only Google can update the code for WebM.
But let’s put that aside. There are three problems with WebM:
- the quality is nowhere near as good as H264;
- there is no hardware support for playback (and we know from Flash how crucial that is)
- Google does not indemnify any user from patent issues.
The first two are surmountable. Google could, over time and with a lot of effort, match the current quality of H.264. At that point, H.264 will have evolved into ever higher quality-for-bandwidth. It is conceivable that hardware manufacturers and GPU developers will add support for WebM (although no-one has announced that yet).
What is not surmountable for end users is that Google is unwilling to guarantee that the code is patent free. This means that every user – every company that creates a WebM encoder or decoder, every individual or company that puts WebM on their website, is potentially liable if WebM is found to breach patents held by companies that are not Google. WebM has never been tested for patent purity and most opinions are that, once examined, it’s almost impossible that a patent breach will not be found.
At that point, every single user will be on the hook for whatever settlement is ruled or negotiated. Google is not going to cover you. MPEGLA will because the H264 patent pool has been tested.
So, you could abandon the world’s most used codec, not only on the web but in countless set top boxes and embedded devices for cable companies, or you can go for one that is badly supported, will require higher storage and bandwidth charges and will potentially leave you legally liable.
Or you could continue to use what you’re already using (or should be) H.264 video, with AAC audio in a MP4 container. This is supported natively in the <video> tag in IE 9 and Safari. It is supported by Flash in all browsers, including Chrome. I personally do not like Flash because of performance and stability issues on OS X, but it’s entrenched.
In fact, the Google decision is really one that entrenches Flash (a proprietary format controlled only by Adobe) on the Web, about the time it was deservedly fading out.
At this point Open Source enthusiasts (both of them) will be yelling at me telling me how I’m being led on by MPEGLA and they’ll screw us when the current licensing period elapses. This is a very unlikely scenario because MPEGLA have already said their will be no royalty required from anyone who uses a licensed encoder to put content on the web. They have stated that there will be no such royalty until at least 2015. The likelihood of a charge being initiated after that is slim, as there’s little to be made and a lot of expense in tracking and enforcing.
Plus, there’s that little condition in the MPEGLA license that says they can’t increase license fees more than 10% in any given period.
So, bottom line. Nothing changed. H.264 MP4 for HTML5 <video> tag; H.264 MP4 for Flash playback on platforms that don’t support H.264 in the <video> tag.
[Minor Update] http://antimatter15.com/wp/2011/01/the-ambiguity-of-open-and-vp8-vs-h-264/ is a great commentary on the difference between “open” and “open.”