Thoughts on Google's Open-Source and Royalty-Free WebM Project

Yesterday at their I/O conference, Google announced that they were open-sourcing the well-regarded VP8 video compression codec as part of a project to create a full-featured MPEG-4 competitor dubbed WebM. From the newly-minted WebM blog:

WebM includes:

  • VP8, a high-quality video codec we are releasing today under a BSD-style, royalty-free license
  • Vorbis, an already open source and broadly implemented audio codec
  • a container format based on a subset of the Matroska media container

The new WebM format enters a divided video compression codec scene. From a content-producer's perspective, one problem with supporting HTML5 Video on the web has been the lack of consistent video format support in the browser market. WebM aims to change that.

Currently, there are a variety of options for video support on your website, including: Flash, SilverLight, QuickTime, HTML5, and even still Real Media. Right now, the most popular choice is, of course, Adobe Flash. This high adoption rate is driven by the ubiquity of Adobe's Flash Plugin (Adobe quotes a 99.1% penetration in "Mature Markets" for Flash Player version 9 or better) and also by end-user acceptance. Most end-users know how to use a Flash video player intuitively, and they don't need to worry about how the video was compressed, or how to make sure the video opens in the right "player" application. It is the format used on YouTube, Hulu, Flickr, Facebook, MySpace, and a vast number of other popular sites.

As of Flash Player version 9.0.115.0, Adobe introduced full support for the MPEG-4 AVC (also known as H.264) compression codec and a new file format, F4V, based on the MPEG-4 Part 12 ISO specification (better known as MP4).

Briefly regarding terminology, the MPEG-4 Part 10 specification is also known by the names "AVC" (for Advanced Video Coding) or "H.264" depending on which specific standards body you are discussing. However, these terms both refer to the same standard, and can be used interchangeably.

The MPEG-4 AVC codec provides much higher quality, especially at low bitrates, than the older choices available for Flash playback (typically the On2 VP6 codec or Sorenson Spark). The MP4-wrapped AVC files are also compatible with most of the more "traditional" computer video player applications like Apple's QuickTime, VLC Player, ZoomPlayer, and Windows Media Player (with widely-available free decoder DirectShow filters). Many set-top DVD players began to support AVC MP4s (in addition to MPEG-4 ASP compressed AVIs), an AVC codec is used to compress the video content on many BluRay discs. And, of course, if you choose your settings carefully, they are compatible with Apple's dominant iPod (and later the iPhone). Choosing Flash to embed video content in your website, and using AVC to compress your videos, seemed like the simple choice.

However, with the recent explosion in the use of mobile devices for Internet access, counting on that monolithic level of Flash support among your users has become much more difficult for content producers. Unless you've been living under a very large rock, you know that Apple won't support Adobe Flash on their iPhone OS based products. However, the truth is that none of the currently-shipping smartphones and other mobile web-connected devices currently support Flash video at all. Adobe has promised a working solution for Android with Google's upcoming "FroYo" Android release, but even that won't offer full support. Adobe admits that Hulu's DRM-protected video won't be supported, and public demonstrations of the new mobile Flash running video haven't gone so well.

So, with all of this in mind, what is the big alternative? To many, it seems likely to be HTML5 and the new video embed tag. Instead of requiring a plugin like Flash, browser makers are just building the video support directly into the browser. HTML5 provides the delivery mechanism, but unfortunately does not resolve the issue of the the video format support.

The problem has been the with the compression and container formats. Supporting MPEG-4 AVC would seem like the simple choice. Much of the more recent Flash video content out there is already in AVC, so it wouldn't require a massive re-encoding project for the content producers. It is very high-quality, even at low bitrates, and it is an open standard approved by an international standards body. Unfortunately, all is not well in H.264-land, as it is also patent "encumbered". Many of the technologies upon which both AVC compression and the MP4 container format are based are patented by a variety of corporations. Apple, Dolby, Hitachi, Fraunhofer-Gesellschaft, Sony, Siemens, and even Columbia University are all licensors in the MPEG LA AVC/H.264 license pool. This same licensing authority maintains license pools for many other popular current, future, and legacy technologies including MPEG-2, ATSC, 1394 (FireWire), and LTE. While the MPEG-LA has committed to "continue not to charge royalties for Internet Video that is free to end users" through the end of their next licensing term on December 31, 2015, they can-and-do charge royalties to companies making hardware and software that works with or decodes AVC-encoded video. They also require licenses for companies that want to resell AVC-compressed video, via title or via a subscription (such as Amazon or Apple). And, they will make no guarantees that these terms won't change in 2016. In fact, they openly admit that one of the goals of their licensing model is "in order to encourage early-stage adopters".

Despite this encumbrance, Apple and Google decided to support the MPEG-4 AVC and MP4 standards, and the current version of both companies' browsers fully support the HTML5 video embed tag using those formats. While a bit late to the game, Microsoft announced that they too would be fully supporting HTML5 and AVC-compressed video in their upcoming IE9 browser. In fact, Google has converted most of YouTube to AVC and launched a HTML5-driven Beta version of their site back in January.

However, the patent licensing scheme was not an acceptable option for Mozilla and Opera. They were both philosophically opposed to the restrictions that this would place on their end-users (and, frankly, they also worried that they could be forced to pay unspecified royalties themselves now and down the road).

Instead, Opera and Mozilla both supported the Ogg Theora codec (with video wrapped in an OGG Video container). Google also released support for the Ogg Theora video in their Chrome browser, but Apple and Microsoft stuck with AVC and MP4 only. This led to a new problem for content producers! You're trying to move away from Flash in order to support mobile devices and your web browser users with one single simple technology, but the market is badly fractured! You have:

  • Apple on one side with their popular mobile platform supporting only MPEG-4 AVC/H.264
  • Microsoft with their sliding-but-still-impressive 60-ish percent market share not supporting anything currently, but promising to support the same as Apple with their next browser.
  • Google straddling the middle with their browser, but using AVC/H.264 on their all-important YouTube property
  • Adobe continuing to support AVC/H.264 with their still-dominant Flash Player
  • And then there is Mozilla (and Opera) on the other side with Ogg Theora. Firefox has the second largest browser usage share, and has generally continued to grow.

So, as a content provider on the web, you end up having to choose to support one or all of these individual different options and create and maintain multiple different encodes for each video asset on your site.

Making things worse is the fact that Ogg Theora is not quality competitive with MPEG-4 AVC at equivalent bitrates. Even xiph.org, the organization responsible for the OGG and Theora projects, does not claim that Theora (with the new Thusnelda technology) "beats x264 in perceived quality, as it certainly does not (yet ;-), only that the gap is closing". A final problem with supporting OGG Theora is that it is also not currently supported by most professional video encoding suites and hardware encoder devices (not to mention handheld decoder devices).

So, it is into this fractured world that Google is introducing their new WebM standard. It certainly has the promise to solve many of these problems in one fell swoop. The video compression in the standard is based on the well-regarded On2 VP8 codec. On2 made the popular VP6 codec supported by earlier versions of Adobe Flash Player, and Google purchased them back in August 2009.

Now, VP8 is not necessarily the complete panacea that Google would have you believe. Jason Garrett-Glaser, one of the primary x264 developers, wrote:

Overall, VP8 appears to be significantly weaker than H.264 compression-wise. The primary weaknesses mentioned above are the lack of proper adaptive quantization, lack of B-frames, lack of an 8×8 transform, and non-adaptive loop filter. With this in mind, I expect VP8 to be more comparable to VC-1 or H.264 Baseline Profile than with H.264. Of course, this is still significantly better than Theora, and in my tests it beats Dirac quite handily as well.

Still, it is a vast improvement over Theora and other competing compression formats, and Google is now making it available with an open-source friendly license. The patent issue, unfortunately, isn't nearly so clear. Garrett-Glaser goes on to say (emphasis his):

VP8 is simply way too similar to H.264: a pithy, if slightly inaccurate, description of VP8 would be “H.264 Baseline Profile with a better entropy coder”. Though I am not a lawyer, I simply cannot believe that they will be able to get away with this, especially in today’s overly litigious day and age. Even VC-1 differed more from H.264 than VP8 does, and even VC-1 didn’t manage to escape the clutches of software patents. Until we get some hard evidence that VP8 is safe, I would be extremely cautious. Since Google is not indemnifying users of VP8 from patent lawsuits, this is even more of a potential problem.

But if luck is on Google’s side and VP8 does pass through the patent gauntlet unscathed, it will undoubtedly be a major upgrade as compared to Theora.

Still, many of the choices Google made with this new WebM project look, on the surface, to be very good ones. On2 is, at least, a viable competitor to MPEG-4 AVC. The OGG Vorbis audio compression codec they selected is a very well-regarded open-source competitor to AAC. And I, personally, think they couldn't have done better than to have chosen the fantastic open-source and patent-free Matroska (better known as MKV) for the container format. Google announced a huge list of companies and organizations that are signed up to support the new WebM standard including Mozilla, Adobe, Opera, Brightcove, Ooyala, Telestream, Qualcomm, ARM, and AMD.

And, the fact that Google controls both the most heavily trafficked internet video destination on the web today and a fast-growing mobile OS competitor to the iPhone OS both make the future for WebM look bright indeed.

Now, I personally just need the new Telestream Episode 6 to support WebM when it ships (and suspect it will since they're on Google's hit list), and to convince my web developers in helping me to deploy HTML5 support in AVC/H.264 and WebM with fallback to Flash. Exciting news indeed!