Now I will be honest, I wasn’t expecting this.
Google have today decided that they will remove support for the video codec H.264 from their Chrome browser in the next couple of months. H.264 is the codec that's used currently in Flash, PS3, Xbox and even my trusty little flip cam.
More importantly for HTML5 it’s also the codec that's used by Safari, that means iPads and iPhones.
Going forward Chrome will only support WebM(V8) and Theora.
IE9 Beta currently supports V8 and H.264 but not Theora .
Safari currently only supports H.264
There are currently 3 main codecs used with HTML 5 video:
- H.264 - is patent-encumbered meaning that people that build encoders or decoders need to pay a licence fee to MPEG LA.
- VP8 - is open source and was released by Google although the licence situation is a little murky
- Theora - is distributed without licensing fees freely available, but is seen by many as having inferior playback quality.
The current state of browser support looks something like this:
|IE9 Beta||Yes||Yes (if codec installed)||No|
|Opera||Depends on OS||Yes||Yes|
How can you tell if a browser supports a particular codec?
This position switch by Google is a great example of why feature detection is so important when coding HTML5. You can’t rely on browser sniffing as browser vendors can change the HTML5 features they implement at any time.
How do you encode VP8?
I had a quick look on my machine and the net to find software to encode WebM and didn’t find much, after asking Robert Reinhard for a good tool (In regard to video encoding: if he doesn't know about it, it’s not worth knowing) he recommended his video encoding service videoRx.com (of course he would) so If you need to encode alot of video to support Chrome, it might be worth paying him a visit.