Google’s VP8/WebM and What it Means for You

May 26, 2010


Update: JW7 is now available. Check it out here.

Several months ago, Google bought ON2, the company behind the successful video codecs VP6 (used in Flash) and VP7 (used in Skype). Ever since the first rumors of this acquisition emerged, the online video community has speculated what this would mean for HTML5 video and its current issues around codec support. Last wednesday, Google finally made the announcement people hoped for: it open-sourced On2’s VP8 codec as part of its WebM open media project.

Immediately after the announcement, we started receiving questions from our users: What exactly is WebM? Is it better than H.264? Do I have to re-encode my videos? Do you support WebM? This blog post answers these questions, focussing on the practical implications of WebM. Feel free to comment on this post if you have additional questions – we’ll keep an eye on it.

What is WebM?

First, a little overview. WebM is the overall name of the new video format Google launched last wednesday. WebM videos have the extension .webm (e.g. myCoolVideo.webm). They contain three major building blocks:

  • The WebM container. A container defines the overall structure in which video and audio are saved. It also stores information on the file (e.g. width and duration). The WebM container is essentially a stripped down version of the Matroska one (.mkv videos are popular in the movie Torrent scene).
  • The VP8 video codec. A video codec defines how the original video data is being encoded to achieve a reasonable filesize. VP8 is a so-called lossy codec (like H.264), which means that the compressed video has a lower quality than the original video. VP8 does do a great job at that though (more on quality below).
  • The Vorbis audio codec. An audio codec does exactly the same as a video codec: encode the original data to make it easier to store and distribute. Vorbis is a truly excellent audio codec.

What About Rights?

The big issue surrounding HTML5 video – video codecs – is basically an issue of rights. On one hand there is the H.264 codec, which is of superior quality but heavily patented. End users and online video publishers do not have to pay (at least, not yet), but browser and device vendors do pay millions of dollars for incorporating H264 support. On the other hand, there’s the Theora codec, which is royalty-free but of inferior quality (in fact, Theora is a heavily modified version of ON2’s VP3 codec).

Like Theora, VP8 is released using an open-source, royalty free license. The license also permits free inclusion in closed-source commercial products. Because of its free license, the VP8 codec has the ability to end the HTML5 codec war and become the de facto HTML5 video codec. Like VP8, the WebM container and Vorbis audio codec are open source, royalty-free and liberally licensed.

Is VP8 Better Than H.264?

In its current state, VP8 is not better than H.264. The quality of VP8 video is more or less on par with the lowest quality profile of H.264: Baseline. The two higher quality profiles – Main and High – offer better results. VP8 is definitely better than Theora though.

Is this bad news? Absolutely not. One could say that VP8 video simply is good enough, just like JPEG was good enough for images and MP3 was good enough for audio. On top of that, the majority of today’s H.264 videos use the Baseline profile, for efficiency and compatibility reasons. For example, Bits on the Run uses H.264 Baseline because videos transcode faster and more computers (e.g. ATOM-based netbooks) can play the videos without stuttering. Also, most mobile devices (like the iPhone) only support H.264 Baseline.

When Can I Use WebM?

It depends. If you just want to do some tests with WebM, you can get started today. Download Miro Video Converter to encode your videos to WebM. Download Opera 10.54 to play these videos using the HTML5 video tag. Here is a WebM example using the JW Player for HTML5.

If you want to use WebM in a production environment, the story is different. The ecosystem around WebM (browsers, transcoders, hardware support) is in its infancy. It will take a few years until WebM has the same level of support and end-user penetration (browsers, phones) than H.264 has today. Also expect major improvements to the VP8 quality and processing speed, and solutions for advanced use cases like live streaming or security. This year for sure, H.264 will remain to be the best option for publishing video in a production environment.

When Will LongTail Video Support WebM?

Let’s start with our JW Player and its family of products. Since the JW Players are in fact middleware (written in actionscript/javascript), we depend upon support for WebM decoding in the underlying technologies:

  • Opera, Firefox and Chrome already released preview browsers that support WebM. This means we support WebM for our HTML5 player today.
  • Adobe will also support WebM in a future release of Flash. When that happens, our Flash player will automatically inherit WebM support. Our wild guess is that this will happen in 6 to 12 months.
  • Microsoft has not made any announcements for WebM support in Silverlight, so an ETA for our Silverlight player is unclear.

For our video platform, Bits on the Run, expect WebM transcoding support to arrive in 3 to 6 months. We will wait for official releases of web browsers that can play WebM. Luckily, the implementation itself is fairly straightforward, since the WebM project includes an encoding library for the tool we use – FFmpeg.

As to when we will endorse WebM as the video format of choice – it depends upon the speed with which WebM will be adopted by the online community. It could be five years from now. It could also be one year from now, if WebM is adopted as fast as the tag.  Overall, we are very excited about WebM – both in terms of quality and licensing, it has what it takes to become the de facto format for online video.