Category Archives: VP3/Theora

Reflections On On2

I read something in the past few months which noted that, in this day and age, the ultimate phase of any tech startup’s business plan is to be purchased by Google. Viewed through that lens, On2 is about to live the dream, even though they existed years before Google, years before most people even knew what a search engine was.


Assorted logos of Duck, On2, and Google

So Google has announced its intention to purchase On2. Wow, it feels like the end of an era. It seems like I’ve had some relationship with On2 for the entire 9 years I’ve been into multimedia hacking. Something that got lost in yesterday’s coverage and commentary was that On2 started life as the Duck Corporation, also a codec company. During this period, they largely focused on gaming applications. But I’m pretty sure that RAD Game Tools kicked them out of that market with their Smacker and Bink technologies. However, files encoded with the Duck’s multimedia codecs were among the first I studied back around 2000-2001. So that always makes me sentimental.

Continue reading

Theora Is Now Officially Available

Wow, it seems like only yesterday that I downloaded the newly open sourced On2 VpVision source code package and started reverse engineering an English language description of the VP3 video coding algorithm. Well, actually, that was nearly 7 years ago. VP3 eventually formed the basis of the Xiph Theora video codec. And today Theora is pleased to announce that the codec is finally, well… final. It’s out. No more alpha/beta phases. The codec is ready for primetime use and should be conquering the digital media frontier in short order.

You know, just like Vorbis.

Metal Gear VP3

Reimar and I were poking at Metal Gear Solid: The Twin Snakes again. You may recall my post about MGS using Ogg Vorbis for audio. In addition to the vox.dat file, there is another resource file called movie.dat. I don’t know why I wasn’t too interested in this file before; maybe because I didn’t remember any pre-rendered FMV in MGS (it is primarily real-time rendered). But when I really think about it, I remember there was a small number of ponderous cut scenes that used some regular film-type material.

Reimar’s Extractor-GTK tool makes short work of both the vox.dat and movie.dat resource archives. Guess what Reimar noticed in certain files living inside movie.dat? The signature ’13PV’, or VP31 backwards. So you know the drill: Wiki page and samples.

The data at the start of the file definitely looks like VP31 (e.g., the bytes starting with hex 32 00 08 in mgs1-40.bin). The files are probably pure video (audio and subtitles are stored elsewhere). It is currently unknown how frames are split up in the file.

VP3 In The Wild

I can’t believe I actually found a usage of On2’s VP3 video codec in the wild– on a 2006 Windows game called Time To Ride: Saddles and Stables. The most amazing part about this is that software based on my FFmpeg VP3 decoder plays one of the files correctly while the official VP3 decoder installed with the game exhibits some serious bugs.

Official decoder, distributed with the game:


VP3 incorrect decoding

Same file, played with FFmpeg’s FFplay (it’s supposed to have a grainy film feel to it):


VP3 looks right

This makes me almost as proud as finding that an Apple QuickTime trailer for a particular 2000 movie that used to work in QT 4 was able to play with my xine QuickTime demuxer but not with QT 6. (To be fair, the same trailer works again under QT 7.)