Anne van Kesteren

Video on the Web

I am pretty excited about all the recent video announcements. Dailymotion announced they are converting a bunch of their videos to Theora so you can view them natively in the upcoming Firefox. YouTube created an HTML5 Demo page which works only with Safari at this point due to the videos being encoded using H.264. Not quite there yet in terms of browser interoperability, but it is just starting. Already the YouTube demo shows a cool new thing when you hover over the video thumbnails.

Google seems to be moving as well on this topic now. The latest developer release of Chrome supports the video element. FFmpeg made its way into the Chromium source code. It is unclear what codecs Google is shipping with Chrome, but for Chromium a combination of Ogg, Theora, and Vorbis is mentioned in the readme. Apparently due to the LPGL license FFmpeg is under, the legal implications of Chrome shipping with it can be quite interesting:

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

According to Henri, with the typical disclaimers, section eleven is typically understood as meaning that you can not distribute your software if the patent license you obtained is not also applicable to uses of your code by third parties. I.e. other browsers could start using FFmpeg as well because Google took care of the patent license. Then again, neither Henri or I are lawyers so it is quite likely we are missing something here.

In addition, so far very little information seems to be available on the exact strategy Google is following here, apart from the blog post mentioning they support it now (meanwhile the Chromium bug on implementing HTML5 video/audio is still open). If anyone has more information I would appreciate it.

Comments

  1. ffmpeg has its own implementation of the Theora codec, which produces Theora files that are of lesser quality than the Xiph provided libtheora - in particular if you include the recent Thusnelda encoder improvements. I would recommend Google use ffmpeg2theora for all encoding needs, which actually uses libtheora rather than the ffmpeg-included Theora codec.

    As for the legal problems with ffmpeg - ffmpeg includes encoders and decoders for a large number of codecs, some of which are protected by patents in certain countries. If ffmpeg with the support of these codecs compiles into it is being used in those countries, patents are being infringed. However, you can compile ffmpeg without the support of these codecs, in which case it is my understanding that you are not infringing. Depending on licensing agreements, you may also only have to pay if you use it for encoding, and also only if you use it for commercial purposes - these licensing agreements depend on the codecs. It is a complex issue and IANAL, but this is how I've come to understand it over the years.

    Silvia.

    Posted by Silvia Pfeiffer at

  2. ffmpeg has its own implementation of the Theora codec, which produces Theora files that are of lesser quality than the Xiph provided libtheora - in particular if you include the recent Thusnelda encoder improvements. I would recommend Google use ffmpeg2theora for all encoding needs, which actually uses libtheora rather than the ffmpeg-included Theora codec.

    Considering that Chromium, as a web-browser will decode the video, not encode it, are the theora-encoder-improvements relevant?

    Posted by Gábor Farkas at

  3. The encoder improvements aren't relevant to Google the Chrome developer, but are relevant to Google the Youtube owner, assuming they want to provide Theora clips to their Chrome (or Firefox/Opera/etc.) using customers. Various video producers seem to be getting this wrong, the assumption seems to be that there is no material performance difference between the different implementations of audio and video encoders, which is both incorrect and a somewhat surprising misconception, to me at least.

    Unfortunately, the FFMpeg Theora decoder isn't fully up to spec either(1) and the use of FFMpeg by Chrome rather than follow Mozilla's use of liboggplay reeks of keeping their options open as oppossed to supporting open codecs. It's still progress though, I'd rather have HTML5 delivered H.264 as in Safari than the same codec in Flash anyday.

    [1]: http://lists.xiph.org/pipermail/theora/2009-May/002202.html

    Posted by dave at

  4. After a month or so google.com stopped being !doctype html this week.

    Posted by mr.m. at

  5. Considering that Chromium, as a web-browser will decode the video, not encode it, are the theora-encoder-improvements relevant?

    [speculation] If I were Google/YouTube, I might be interested in a "browser" that would encode video on upload, to dimensions and quality specified by the requesting site. Heck, I'd be interested in that even if i weren't youtube. HTML 5.1, anybody?

    Posted by David Reese at

  6. Chris DiBona posted an explanantion.

    Posted by Henri Sivonen at

  7. Since google stopped using it last week I have not been able to get the videos to work. Guess being a blonde does not help.

    Posted by Suzi at

  8. ffmpeg has its own implementation of the Theora codec, which produces Theora files that are of lesser quality than the Xiph provided libtheora - in particular if you include the recent Thusnelda encoder improvements. I would recommend Google use ffmpeg2theora for all encoding needs, which actually uses libtheora rather than the ffmpeg-included Theora codec.

    Considering that Chromium, as a web-browser will decode the video, not encode it, are the theora-encoder-improvements relevant?

    While Chromium does not encode theora videos, the thusnelda branch does also include improvements to decoding.

    FFmpeg provides a horribly substandard experience to using Theora/Vorbis videos, and I believe isn't even compatible with theora-1.0 spec.

    Google is pretty much sitting on the fence about the Open Video thing as far as I can tell. It would probably require a lot of pressure to get Google to change their minds. I don't really know if the other browser vendors participating in WHATWG will actually attempt to pressure Google and Apple to give in and support Ogg Theora/Vorbis, but that would probably be the only way to get them to support Open Video the way Mozilla does and hopefully Opera will.

    Of course Opera has yet to give a recent build offering video and audio tag support, so they can't really talk too much either...

    Sure, Opera offered a preview of video tag support with a build of Opera 9.5 alpha in 2007, but it is now 2009 and it really would be nice if a newer build was made available, possibly based on Opera 10 Beta or Opera 9.6x.

    Considering that Chromium, as a web-browser will decode the video, not encode it, are the theora-encoder-improvements relevant?

    [speculation] If I were Google/YouTube, I might be interested in a "browser" that would encode video on upload, to dimensions and quality specified by the requesting site. Heck, I'd be interested in that even if i weren't youtube. HTML 5.1, anybody?

    Perhaps even implementing something like Firefogg in a new Opera build supporting Open Video to help out with bringing more videos in Ogg format? Also, when extension support is implemented in Chromium, perhaps a Firefogg-like extension to Chrome would be made available?

    Posted by King InuYasha at

  9. Chrome supports Theora and Vorbis.

    Posted by Anne van Kesteren at