• Home
  • About

Philip Jägenstedt

Pretentious Nonsense

Feeds:
Posts
Comments

VP8 has landed

May 19, 2010 by Philip

Today, WebM/VP8 was announced at Google IO. The last month I have been working on adding support for Opera and we have now released labs builds for Windows, Mac and Linux. We have also published an article for web developers who want to start using WebM <video>. Here’s what it looks like, the Sintel trailer on YouTube playing in Opera with WebM <video>. No Flash!

Previously I’ve posted on Opera Core Concerns, but this time I want to share some personal reflections. (In other words: any views expressed are my own, not those of Opera Software.) What follows is the (quite geeky) history of me and the various codecs and organizations I’ve come into contact with over the past 8 years.

Back in gymnasiet I was a compulsive MP3 collector and was very picky about my bitrates. 128 kbps sounded (still sounds) horrible and it pained me, so when I learned about the Vorbis audio codec I was very excited. Not only was it technically superior, it was also completely free. I re-ripped all of my CDs as Vorbis, told all my friends to do the same and started listening to Machinae Supremacy simply because they offered Ogg downloads. I was a fanboy.

In June 2002 On2 released VP3 to the world. It was my summer holidays and I spent most days inside on an extra slow dial-up connection. I clearly remember that upon reading the news I literally bounced out of my chair and threw my hands in the air out of joy. (Remember, I was 17.) The first thing I did when there was code I could compile and run (packaged by Xiph I believe) was to encode and watch Star Trek: First Contact. The example decoder could neither pause or play in fullscreen, so instead I changed my screen resolution and just watched.

At the time I couldn’t do much to help out, but I wanted to be part of this cool community. One of the first pieces of C code I ever wrote was oggsplit, a not-so-useful tool for splitting multiplexed Ogg streams into separate files. I never used it much, but was quite proud to see it in Xiph’s ogg-tools package.

Fast foward. In the summer of 2006 I began working as a summer intern at Opera Software in Linköping, where I wrote an example plugin for video playback on Opera Devices SDK. I picked GStreamer as the backend and by the time I was done I must have watched A New Computer ~1000 times.

In February 2007 Opera proposed <video> and released a proof-of concept Ogg Vorbis+Theora build. I had no part in this, so it came as somewhat of a surprise. Initially thought that they had used my plugin, but that turned out to not be the case – it was libogg, libvorbis and libtheora integrated directly into the browser. The most exciting part was the strong stance for open standards, something that I obviously agree with.

What happened after that is pretty well known: the <video> tag makes obvious sense, so it quickly got implemented in other browsers. When I joined Opera’s core department (part time) in the summer of 2008, <video> hadn’t been touched much for over a year, so I was tasked with bringing it back to life. Loving both audio/video and the web, it would be hard to find a more suitable and fun job. I ended up porting my then 2-year old plugin and thus Opera is now using GStreamer internally. The Codec Wars™ were always a pain, but we did finally release Opera 10.50 with support for Ogg Vorbis+Theora.

After Google announced that they were buying On2 there was lots of speculation that they would release VP8. I have certainly hoped it would happen, but it seemed a bit too good to be true. Therefore, my reaction when it was confirmed was similar to when VP3 was released – bouncing like a 17-year old. That Vorbis is the chosen audio codec for WebM only makes things better. How lucky I am, that this time I get to actually be part of the release event. It’s been immensely fun working on this, in secrecy, then seeing everything happen in a maelstrom of releases, tweets and blog posts today. Håkon is at Google IO running my code on stage, but just a few weeks ago he was in Opera’s Beijing office, watching sunflowers in one of the first Opera VP8 builds:

While not yet 100% bug-free, VP8 in Opera is well on its way and will be in an official release soon. Today is a good day for open video and the open web. Many thanks to everyone who have worked to make this possible. Live long and prosper, WebM!

About these ads

Like this:

Like Loading...

Posted in Nonsense | Tagged googleio, html5, Opera, vorbis, vp8, webm | 33 Comments

33 Responses

  1. on May 19, 2010 at 16:21 Chris Mills

    Really great job Philip – during testing the new builds and writing the articles for dev.opera.com, I’ve been really impressed with your work. You are one of those annoyingly clever people. And you’re only 25? sheeeesh! ;-)


  2. on May 19, 2010 at 16:46 Gyorshír: Nyílt lett a VP8! « Bot « LavX Blog

    [...] a YouTube HTML5 része is működni fog [...]


  3. on May 19, 2010 at 18:19 Raphael

    Great works guys, you all change the web this day :’)


  4. on May 19, 2010 at 18:53 Martin (Hades32)

    Is VP8 implemented as a GStreamer plugin, too?

    If yes, is it open-source, like your GStreamer modifications?


  5. on May 19, 2010 at 19:08 Martin (Hades32)

    Will your implementation get more efficient?

    Currently VP8-360p: 50-55% CPU (i.e. a full core)
    and Flash-360p:20-25% CPU


  6. on May 19, 2010 at 19:18 David

    Fantastiskt. Man får väl nästan säga grattis! :-)


  7. on May 19, 2010 at 21:22 Fabio

    Hi, I’m from Brazil. Wonderful work. Congratulations!


  8. on May 19, 2010 at 23:02 Megérkezett a WebM <video>! « Bot « LavX Blog

    [...] köszönet jár Philip Jägenstedt-nek, aki éjt nappallá téve dolgozott az Opera WebM [...]


  9. on May 20, 2010 at 04:28 Philip

    Martin, yes we know that performance sucks, it will be improved. Yes, we have already contributed our changes to upstream GStreamer and they are publicly available from http://sourcecode.opera.com/gstreamer/


  10. on May 20, 2010 at 08:31 Martin (Hades32)

    Cool! Are the original changes that Opera did to GStreamer upstream, too?
    I.e. can I now compile the original GStreamer source and use it directly in Opera?


  11. on May 20, 2010 at 10:35 BDX

    I’m not too excited about VP8 because it pretty much sucks: http://x264dev.multimedia.cx/?p=377

    But of course it’s a big improvement over Theora, but still.

    And why did you encode those MP3s in 128kbs in the first place? Even back in those days 192kbps were pretty much transparent. Now LAME and -V2 switch produce high quality.


  12. on May 20, 2010 at 10:52 Philip

    Martin, any changes which would be generally useful are submitted to upstream GStreamer. To get something you can use in Opera, however, you need to build from http://sourcecode.opera.com/, as we’ve customized some things (mostly removed things we don’t want/need).


  13. on May 20, 2010 at 11:13 John Reaver (rsilverblood)

    Congratulations, dude!

    Finally, video without FLASH! Now I don’t have to spend hours and hours finding a way to introduce Flash DLL’s to my portable version of Opera every time I install a new version! n.n

    Hopefully, this will be the beginning of a new age of audio/video on the internet – and, even more hopefully, it may be the beginning of higher quality videos also. I can’t wait to see this on sites like YouTube.


  14. on May 20, 2010 at 12:10 Martin (Hades32)

    I have the impression the reason for the bad performance is GStreamer…

    When I open the same file in Windows Media Player, after having installed the 0.9.5 DShow Filters, I get no more than 15% CPU.

    It would be really great if you could get a similar performance before releasing this in a Final release…


  15. on May 20, 2010 at 12:43 Philip

    Martin, no, GStreamer is not to blame for our performance, the reason is that we are copying and blitting each frame in software, which is an enormous performance hit. We’ll solve this by using the 3D hardware in clever way.


  16. on May 20, 2010 at 13:06 Saulo Benigno

    Yes, congrats. Nice history ;)

    Another one from Brazil!


  17. on May 20, 2010 at 13:18 Martin (Hades32)

    One more reason for looking forward to hardware acceleration in Opera :)


  18. on May 20, 2010 at 14:55 Martin Björnsson

    *smiles happily*

    Not only is he clever, he’s a very nice guy too. Proud to know you, Philip! And congrats!


  19. on May 20, 2010 at 16:47 Guilherme Mendes

    Great work guys!

    Congrats from Brazil!


  20. on May 20, 2010 at 22:51 Witek

    Good work Philip. VP8 isn’t perfect encoder, but considering all pros and cons it is probably best curenntly freely available option right now. So good move. Thanks for greate gift from Google and really big supprise that Google was cooperating with such broad and big number of market (both software and hardware vendors).

    Keep working, and please push this work into gstreamer upstream as fast as possible (and into -good codec branch) ! Thanks again.


  21. on May 25, 2010 at 10:22 Dillon

    I’m curious, why does Opera do these extra frame buffer copies and blitting? Is it for the video controls?


    • on May 25, 2010 at 15:38 Philip

      Dillon, it’s not related to controls, it’s just what you have to do to draw without hardware acceleration. The problem is just that it’s not very optimized (yet). Expect both faster software rendering and eventually hardware rendering to really get the speed up.


      • on May 25, 2010 at 19:16 Dillon

        Thanks, I’m looking forward to it!


  22. on June 16, 2010 at 14:49 elias kai

    keep it growing – you simply ROCK :)


  23. on June 29, 2010 at 22:51 Dillon

    I have another question :) Is there any interest in the Opera team of implementing the forthcoming FFmpeg VP8 decoder instead of the one provided by Google? It’s smaller and expected to perform better on both x86 and PPC soon.
    http://blogs.gnome.org/rbultje/2010/06/27/googles-vp8-video-codec/


  24. on June 30, 2010 at 05:37 Philip

    Dillion, we’ll have to wait and see how much faster it is.


  25. on July 10, 2010 at 16:49 Vitor_Boss®

    Hi Philip, congratulations from Brazil again!!!!

    I have a little question, this feature will be improved on Opera mobile/mini ?

    Keep working. ;)


  26. on July 28, 2010 at 16:14 JJ Semple

    Philip,

    I “attended” your July 25 HTML 5 webinar. I want to replace the flash videos on my sites with HTML5 ASAP. I realize it may take a while for all browsers to support it, nevertheless, I wanted to make some tests immediately, SO…

    I loaded a QT movie (.mov) into the Miro Video Converter you recommended and selected the WebM (vp8) option and clicked Convert. I uploaded the converted .webm file to my website and copied the link into Opera and hit Return.

    I am not a techie, but I can usually feel my way through the video upload process. I do it with JW’s Flash Player, with all sorts of other tools, but this is a real mystery. It would seem, from what you said, that the file should load and play, but it doesn’t. I loaded the URL into Chrome and Safari. Same non-result. Opera wants me to download the file. Safari, however, loads a long gibberish text file into a window. What am I doing wrong?


  27. on July 28, 2010 at 19:02 Philip

    JJ Semple,

    It sounds like you are doing two things wrong. First, your server isn’t configured to use the MIME type video/webm for .webm files and is instead sending it as text/plain. Neither Firefox or Opera will accept that, so you need to fix that. Second, you need to embed the video in an actual HTML page, not just point the browser to it. A page with just <video src=”video.webm” controls></video> will be enough for testing. (We will eventually handle navigation directly to video files just like for images, but it’s not a high priority.)


    • on July 28, 2010 at 19:57 JJ Semple

      Thanks, Philip. So how do I configure my server to use the MIME type video/webm for .webm files? Is that something I can do?


      • on July 28, 2010 at 20:34 Philip

        If it’s an Apache server I recommend having a look at http://diveintohtml5.org/video.html#video-mime-types If you’re not in control of the server then hopefully using a .htaccess file should be enough.


  28. on October 31, 2010 at 10:48 MarkG

    Will Opera/GStreamer be getting any benefits from Googles new WebM code drop?

    http://blog.webmproject.org/2010/10/vp8-codec-sdk-aylesbury-release.html

    30% decoding improvement performance sounds tasty!!!


    • on November 1, 2010 at 09:29 Philip

      Sure, once we upgrade to the latest release we’ll get that 30% improvement too :)



Comments are closed.

  • About

    I am a 28-year-old Swede who likes web technology, Chinese music, Vietnamese chè, odd movies and other wonderful things. This is my blog. More…
  • 關於

    我是個28歲的瑞典人,比較喜歡的東西包括互聯網技術、華語音樂、越南甜湯、奇怪的電影等等。這裡就是我的網誌!
  • Twitter

    • A collection of links about exciting space stuff in prose form: blog.foolip.org/2013/03/25/spa… 2 months ago
  • Tags

    Beijing BLCU Blogging Carsick Cars Censorship China Copyright Epilepsi fonts Food FRA html5 IME Kina Korea Lyrics Mamma Mandarin Metadata Morfar Movies Music MusicBrainz Musik Opera Pasta Politics Politik School Spring-festival Sverige Sweden TV Val vietnam Wikipedia Work WTF 中国 作业 北京 博客 早期中国电影 漫画 电影
  • Recent Posts

    • Free will
    • Space: everything except the Earth
    • Edison
    • How to use Opera as the Git Web browser
    • Vad vill Sverigedemokraterna oss?
    • SRT research
    • Ett blocköverskridande hack
    • My father’s wedding speech
  • Meta

    • Register
    • Log in
    • Entries RSS
    • Comments RSS
    • WordPress.com
  • Creative Commons License
    Except where otherwise noted, content on this site is licensed under a Creative Commons Attribution 2.5 Sweden License.

Blog at WordPress.com.

Theme: MistyLook by WPThemes.


Follow

Get every new post delivered to your Inbox.

Powered by WordPress.com
%d bloggers like this: