VP3 to Theora

From XiphWiki
Revision as of 09:46, 26 January 2008 by Maikmerten (talk | contribs) (initial version, TODO: Wikify)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is a quick guid to show how to transcode VP3 (usually with MP3) to Theora.

Now, this quick guide involves a lot of tools which are either experimental or are known to be buggy. Beware. Use with caution.

If your Video is encapsulated in NSV you first need to remux it to AVI:

mencoder -oac copy -ovc copy -fafmttag 0x55 -o vp31.avi input.nsv

Download the Theora source code (svn co http://svn.xiph.org/trunk/theora).

Go to theora/win32/experimental/transcoder/avi2vp3/

Compile the tool which will extract the VP3 data out of your AVI file: gcc *.c -o avi2vp3

Cpy theora/win32/experimental/transcoder/transcoder_example.c to theora/examples/encoder_example.c - this will replace the usual Theora encoder example with the application creating a Theora stream from the raw VP3 data.

Build your copy of Theora (run autogen.sh). This has a few dependencies. The configuration process will guide you. Be patient.

After everything compiled you should rename the encoder_example binary (which is in the examples directory) to e.g. transcoder_example to avoid confusion.

  • Use avi2vp3 to converter your VP3 AVI. The input file *must* be named vp31.avi, the output file will always be output.vp3
  • Use transcoder_example to create an Ogg Theora stream: transcoder_example output.vp3 > video.ogg
  • Use e.g. mplayer to decode the audio in the AVI file: mplayer -vo null -ao pcm vp31.avi
  • The audio will be in audiodump.wav. Encode it with e.g. oggenc: oggenc -q 1 audiodump.wav
  • Now you need to combine video.ogg and audiodump.ogg. Use oggzmerge from the oggz-tools package (at least in Ubuntu it's oggz-tools): oggzmerge video.ogg audiodump.ogg > theora.ogg

theora.ogg now should be a valid Theora + Vorbis Ogg file. Congratulations!