Ever since Google’s acquisition of On2, the open source community had been looking to them for a resolution to the HTML5 video debacle. On2 are the developers of the VP3 video codec, which is behind Theora and are also the creators of VP6, the format that was used for web video with the Flash Player. Now On2 has another web video standard to its credit, VP8.
So what was the debate all about anyway?Well, since the HTML5 specification included a video element, there was required to be a standard format in which the video could be encoded such that it would play on all browsers. Browser developers would then have to honour that in order to keep up to the standard.
Problem is, H.264 is heavily patented, and has a rather expensive license. While the specification is open, and anyone can create an encoder or decoder, such software needs to be licensed.
Due to all this, the HTML5 specification backed out from supporting any particular web video format, and each browser vendor went its own way. Mozilla and Opera stuck to open standards, and decided to support only Theora for web video, while Apple’s Safari, and Google’s Chrome supported H.264. Google’s Chrome browser also supported Theora for web video along with H.264. Microsoft too came out to state that they would support H.264 in their browser.
So what’s changed now?WebM is Google’s solution out of this video mess. Simply put, Google open sourced the VP8 video format, and released it royalty free for everyone to include in their products. As a video format, VP8 is much better than Theora, but not as good as H.264 is. Even so, it is now royalty-free and an open specification, making a good enough replacement.
What is VP8, what is WebM, what’s the difference?WebM is developed with a with a very narrow goal in mind: A WebM file should play on any computer, and on any media player. It has thus been defined to only include the VP8 codec and the Vorbis audio format. These files are packed into a Matroska container. So while WebM is the format of the video file, the actual video inside the file is in VP8 format.
Basically, there are three things involved here: a video format, an audio format, and a container format.
As said before, WebM is a just Matroska which is locked to VP8 for video and Vorbis for audio, and this narrow definition is to ensure playback compatibility with all computers and browsers.