FFmpeg Team Implements a WebM/VP8 Decoder in 1400 Lines of C

Some quick background on the state of video codecs:

  • H.264 is the most popular video codec for online and offline (Blu-ray / HD captures) videos
  • H.264 is encumbered by patents and licenses required for usage, administered by the privately held company MPEG LA.
  • Online video publishing/creation/distribution and popularity is increasing at an astronomical rate
  • Companies hosting and producing huge amounts of video online aren’t fond of the patent-encumbered H.264 codec.

So that is where we were with the state of video codes about a year ago. Oddly enough there was a privately held company named On2 Technologies that was developing their own proprietary video codec that performs as good if not better than H.264 named VP8 (there were previous versions; VP7, VP6 and so on).

Google, one of the biggest distributors of video online, bought On2 Technologies and open-sourced the VP8 codec in the form of the “WebM Media Project“.

The entire purpose of WebM is to product a video format that is universal across web browsers, computers and devices to make production, tooling and consumption of video a streamlined experience for everyone; no more unnecessarily complex codec and license-juggling.

ASIDENaturally MPEG LA and Apple, both having big stakes in the success of H.264, have threatened Google that they will sue for patent infringement and other such bullshit necessary to stymie technology and maintain their ninja grip on computer media at the consumer’s expense.

The FFmpeg group, famous for the creation of some of the best video encoder and decoder implementations out there (if you have ever ripped a movie or converted a video on your computer, that software was likely using FFmpeg’s libraries under the covers to do the actual work) decided to whip together their own VP8 implementation; and did it in 1400 lines of C code.

Ronald Bultje, from the FFmpeg team, blogged about the achievement where he clarified that the team was able to reuse large portions of code from the H.264 implementation which has already been highly optimized as well as other blocks of optimized code from other codecs to round out the implementation because of the similarity VP8 has to H.264.

Ronald also mentions that the FFmpeg’s implementation passes the VP8 binary vector test cases that Google uses to ensure compatibility with the Google implementation.

The FFmpeg team’s goals are to create their own implementation of the VP8 codec that out performs Google’s.

VP8 Compared to H.264

OSNews reports that the Graphics and Media Lab of Moscow State University put the screws to VP8 compared to H.264 and found the two to be very comparable with H.264 slightly edging out VP8 in encoding performance.

Given that this is the beginning of the WebM road with many optimizations to come from the FFmpeg, Android, Adobe and other WebM member teams, I’m sure we can look forward to a very compelling replacement to H.264 very soon.

, , , , , , ,


  1. FFmpeg’s VP8 Decoder 62% Faster Than Google’s | The Buzz Media - July 24, 2010

    […] few weeks ago we covered the announcement that the FFmpeg video-codec team had decided to build their own VP8 decoder and did an initial implementation in just 1400 lines of […]

  2. System Saviour » Blog Archive » Ultimate Free Software Web Browsing Experience - In a world where no machine is safe… - October 26, 2012

    […] Apple seems to suggest can be used by H.264 exclusively. I don’t believe it. Considering how similar H.264 and VP8 actually are, you’d think a company like Apple would be able to make it work. […]

Leave a Reply