WebM: your questions answered

Google's patent-free codec for open web video explained

TODO alt text

So… what is a codec exactly?

A codec is a piece of software or a physical device that can encode or decode audio or video data. There are all kinds of codecs around, with MP3, Ogg Theora and DivX among them.

They capture audio or visual input and convert it into a compressed 'container format'. It's worth doing this because saving raw binary data (usually a Wav file for sound) takes up a huge amount of disk space, but we can compress this to certain levels without losing too much quality.

Container formats you may be familiar with are MP3, Ogg and DivX movies.

So WebM is one of these 'codecs' then?

Not exactly, WebM is a container for two codecs. One is called Vorbis, which you'll have come across if you've ever tried to convert your MP3s or rip CD audio as Ogg files and, as you can probably guess, this deals with audio content. Vorbis is patent-and royalty-free and is widely used in the Linux world.

Does this mean it's technology we've had the whole time?

In the case of Vorbis, that is indeed true. The exciting part of WebM isn't necessarily the use of Vorbis, however, but a new patent-free codec called VP8 that handles the video side of the WebM container.

But I thought that Ogg Theora already did video content?

It does, but the compression-to-quality ratio isn't as good as the competing (and non-free) H.264 format, it's nowhere near as well-supported and doesn't have big-money backers. The latter is an important point, because if MPEG-LA were to pursue a patent case against Theora, they wouldn't have the financial backing to fight it. Theora has escaped litigation so far through obscurity, but this blessing is also a curse, as companies won't adopt a format that has the potential to get them sued.

Hang on, what is MPEG-LA and why does it want to attack everyone?

MPEG-LA is the authority in charge of enforcing the patents behind H.264. This is already supported in all the main browsers and Adobe Flash, and also had widespread support from hardware companies.

This means H.264 has the advantage of hardware-acceleration, which vastly improves playback quality.

Is having H.264 in the HTML5 standard a bad thing?

For the free software community, yes. Though MPEG-LA has promised a few years' grace period where no-one will be pursued for royalties, after that, all the patent-holders are free to do so. This would mean that any free software with encoding or decoding support for H.264 would be liable and could face litigation.

This could lead to less free playback software being developed, free software not being able to provide playback support for high-quality video legally or even existing free software disappearing.

So how does WebM go about avoiding patent issues?

Google itself is the patent holder for VP8 after its purchase of On2 (the codec developer) and as a result has added a 'patent promise' to WebM's OSI-approved free licence that anyone using the codec won't be pursued for royalties for the container's existence. This would mean that any software could provide full support for the format without facing the possibility of legal action.

Which OSI-approved licence does WebM use?

WebM uses a BSD-style licence that has been approved by the Open Source Initiative (OSI), a body that checks to see if free licences are truly 'free' and 'open source'. This is also enclosed with a 'patent promise' that, in the event of Google being pursued for patent royalties, sees patent rights revoked.

This sounds bad, but is something you typically see in GNU General Public Licence v3 and Apache Licence v2. The difference is that WebM decouples patent licensing from copyright licensing, meaning that even if Google gets sued, WebM remains under a free licence.

So, why isn't everyone using VP8 then?

VP8 is still a fairly new codec, meaning it doesn't have widespread support just yet. However, Mozilla and Opera have already pledged to support WebM in their browsers and Adobe will be adding support to its Flash Player software. If you use Miro, VLC or Moovida, you'll also be pleased to hear that support will be heading your way too.

Fair enough! So what are the key differences between VP8 and H.264?

Aside from the patent issue, the difference between the two for visual or audio quality is usually unnoticeable for the end user when hardware acceleration isn't a factor. If you use hardware acceleration, then inevitably H.264 shines because it's so widely supported where VP8 isn't right now.

Once the support gap is plugged, the patent issue will be the overriding difference between the two codecs.

Will WebM be available on devices other than the desktop?

Yes. The plan with hardware partnerships is to try to create a consistent experience across different devices of varying grades of hardware. In theory, your smartphone, tablet, laptop, desktop and netbook should all be able to play the same videos. This is already the case with H.264, and WebM will be arriving on these platforms to remain competitive.

So how long can I expect to wait for hardware acceleration?

The major advantage for H.264 is that it's had a longer head start and is therefore already supported on most hardware platforms. However, thanks to Google's general aura, we've already seen AMD, various ARM chip makers and Broadcom pledge support. Nvidia is also considering adding to support to its system-on-chip Tegra platform, while Intel has promised to also support it once it starts to see widespread adoption.

This is still in the early stages for hardware support, but VP8 support on the software side should be available in the next few months, if not by the end of this year.

What about if I'm using another operating system and find myself stuck with Internet Explorer or Safari?

Internet Explorer doesn't natively support WebM, but so long as you have the Vorbis and VP8 codecs installed on your machine, WebM content should still be playable. Safari users will need to install the same codecs for QuickTime in order to achieve the same result.

Does VP8 need a specific encoder?

There's no single encoder or decoder that VP8 requires. FFmpeg is supported for VP8 playback, and Windows users will find filters available for DirectShow. Thanks to the open nature of the VP8 codec and its associated software development kit (SDK) we should see a wide range of VP8 players and encoders, along with Firefox, Opera and Chrome supporting VP8 out of the box.

So where can I watch WebM content right now then?

I like your enthusiasm! If you want to start viewing WebM content right away, you can sign up the the HTML5 beta version of YouTube at www.youtube.com/html5 and download one of the supported browser builds from that page.

At the time of writing, VP8-compatible versions of the three browsers we mentioned weren't yet released and still in the beta stages, but should be stable enough for general use by the time you read this. The VP8-compatible version of VLC should be a full release.

This all sounds excellent! Where can I find more information?

You can view the demonstration at Google I/O or view the latest technical details about WebM via its Wikipedia entry. You can also follow progress at the project's website or On2's website.

-------------------------------------------------------------------------------------------------------

First published in Linux Format Issue 135

Liked this? Then check out Google on VP8: 'We hope to start an arms race'

Sign up for TechRadar's free Weird Week in Tech newsletter
Get the oddest tech stories of the week, plus the most popular news and reviews delivered straight to your inbox. Sign up at http://www.techradar.com/register

Follow TechRadar on Twitter * Find us on Facebook