Wednesday, June 17th, 2009

Open Codecs, Open Video

Category: Video

There has been a nice discussion H.264-in-<video> vs plugin APIs on the WhatWG list.

This lead to Greg Maxwell posting about his experience with the quality of Ogg Theora with real world examples, and Chris Blizzard linked it up with 35 days offering the following lead in:

The codecs being discussed are the same ones we’ll be including in Firefox 3.5 and are also the same codecs that Mozilla, Wikipedia and others have been investing in.

Recent developer nightlies of Google Chrome support these codecs and a future version of Opera will also support them. Theora and Vorbis also work in Safari if you install the Xiph Qt component. We’re quickly reaching the point where all modern browsers support these open codecs with full support for the video tag.

You’ll note that Greg’s post doesn’t have the tone of a marketing document – it’s not meant to. Nor is this a comparison against HD-sized, high-bitrate video. Instead it’s an attempt to give an honest comparison of how the open codecs fare against commonly-used formats and sizes used on the world’s largest video site. I think you’ll agree with Greg’s conclusions at the bottom of the document, especially with audio where Vorbis really shines.

There is also a discussion on how Quicktime doesn’t seem to have a nice way to auto-download codecs these days, and the Xiph Qt folks haven’t had an easy time getting someone at Apple to work with them. Hopefully that will change with Quicktime X.

Another hope, is that YouTube will push even harder and test out more and more with open codecs (they did the one HTML5 demo at Google I/O, but that is just a demo). If Google puts its muscle behind the standard, then a lot of the video out there would turn open pretty quickly. That being said, Google is a business, and there are lots of factors into making that happen….

Posted by Dion Almaer at 8:26 am

4.5 rating from 47 votes


Comments feed TrackBack URI

I think forcing people to download a plugin is going to be a deal-breaker on <video>, and result in a stagnation with Flash video. Apple can resolve this with Safari by:

a. bundling it with a Safari update in Software Update; and/or
b. bundling it with a QuickTime update in Software Update.

B would be Apple’s preference generally, given their investment in QuickTime, but A is probably more likely due to the headaches of having two users with the same Safari version and different video capabilities.

Comment by eyelidlessness — June 17, 2009

Using CG content for source material is not exactly the best test. Videophiles like to test with real film content containing noise, film grain, etc because the high end codecs have specific techniques to deal with these. For example, Microsoft’s VC-1 codec deals particularly well with film grain.

More instructive would be to take a Michael Mann film like Collateral or Miami Vice, which contains lots of film artifacts which would detract from the director’s overall artistic vision if they were removed or filtered.

I fully support patent-free unencumbered open codecs, but there’s no way ordinary people are going to give up high quality video codecs for something inferior just because it is free. Unlike the situation with MP3, where the average person might not be able to notice very much the difference between 64kbit, 128kbit, MP3 vs AAC, video artifacts are much more noticible.

I think the best intermediate solution is for all browsers to support multiple codecs (free and unfree) and let video hosts include multiple encodings, as most already do (especially for mobile support). If people pushing for browsers not to include H.264, I think they are doing a dis-service to the video tag.

To me, the video tag is about getting the API functionality available to Javascript, not getting codec freedom. It would be like tying Canvas2D or Canvas3D to the availability of open-source NVidia/AMD video card drivers.

Comment by cromwellian — June 17, 2009

H.264. Do it.

Comment by Darkimmortal — June 17, 2009

Truth be told, we all know that open standards are often inferior and we accept it, because eventhough they are inferior we know that we don’t have to deal with different platforms and that the user will be able to access it with a compatible client on whatever platform they chose. That’s why we use HTML and Javascript, that’s why we use PNGs and JPEGs, even when other formats fit our need better. But we think that easy, unencumbered access is in the end preferable to a dependency on a particular vendor.

And that’s why Vorbis/Theora should be mandatory for video… we need a stable platform that we can expect to be available everywhere. With h264 the browsers would need to add it through an OS backend, since open browsers can’t include it and that would lead to a pretty big mess. In the end, the same browser may not support h264 depending on whether it’s running on Vista or Win7. Or not the same sub formats (like the maximum number of reference frames). Basically, we would never be able to get rid of fallbacks to … well what, if Theora isn’t mandatory?

It would certainly be nice to have the most efficient codec available as an open standard, but as long as the licensing organizations behind these codecs don’t allow free and open distribution of conforming decoders, that’s just not possible.

Anybody who wants h264 for video should be aware that they’re very likely knocking on the wrong door. This is not a decision the browser vendors can make,

Comment by hansschmucker — June 17, 2009

@hansschmucker: No, it’s just not a decision the open source browser vendors can make. Just as Ogg Theora is likely not a decision that looks very palatable in the IP landscape that a major browser vendor with a clear trace-back to revenue sits in. Either of the major browser vendors with a clear trace-back to revenue.

But that said, it could be a third-party plugin; although as eyelidlessness said, that’s likely a dealbreaker.

Comment by ChrisWilson — June 17, 2009

It’s easy to build a flash video player that provides the javascript API of the video tag, so the video tag is most definitely NOT about getting an API to javascript. The purpose of the video tag is primarily ridding video on the web from the confines of royalties. Currently if you want to watch video on the web, you have to pay the piper, either indirectly (by using adobe’s plugins), or directly (by licensing the formats). It would be as if the canvas tag could not be implemented on any system without licensing an nvidia patent. Who would think that is a good idea?

Comment by Joeri — June 18, 2009

12 points…!
I must say it’s quite disappointing that you (with the emphasize on Canvas instead of Flash you’re doing in TimePedia etc) post a comment like this…
The future is *standards*, *open* standards. Otherwise we could all just develop websites in ActiveX or Silverlight, right…?

Comment by ThomasHansen — June 18, 2009

That’s part of it, but the API is also an issue as it cannot be emulated in Flash or any other plugin without implementing large parts of HTML as well. How should a Flash based video render to a canvas? How should an SVG filter apply to it?

Comment by hansschmucker — June 18, 2009

I think Theora should be mandatory, my point is, the video tag should also delegate any non-recognized non-normative codecs to the operating system. Users can then install whatever DirectShow or Quicktime plugins they want.

There appears to be people who *only* want Theora for . IMHO, this is very unworkable and sabotages my PC investment just as some of the really bad DRM does. If I’ve got a GPU with inbuilt accelerated for high quality HD H.264 playback with extremely low CPU overhead, why should I be penalized?

This is a MUST vs SHOULD issue in the spec. Video MUST support Theora, but SHOULD support whatever codecs are recognized by the native OS as well. Otherwise, you’d kill a whole host of other use cases, like people writing nifty video library apps that leverage existing optical media files without having to transcode everything.

There is a vast amount of trailer content out there in H264/WMV for example, and I want to manipulate this with and just as I would with Theora.

There is also the mobile issue, where a huge deployed base of mobile phones have custom application processors to provide high speed, low battery consumption H264 decoding, and without having support for H264 with you’d be condemning mobile browsers to vastly inferior battery life.

Comment by cromwellian — June 18, 2009

Leave a comment

You must be logged in to post a comment.