Building 'ffmpeg' With 'WMV' Support

To enable WMV support with 'ffmpeg' you will need to use the following steps:

  1. Procure the VC1_reference_decoder_release6.zip file from the main site and unzip the tree somewhere.
  2. Have a copy of FFmpeg’s CVS tree handy; the rest of these instructions will assume that you are sitting in the root of the FFmpeg tre.
  3. Create a directory called libavcodec/libvc1.
  4. Copy all of the *.c and *.h files from VC1_reference_decoder_release6/decoder/ into libavcodec/libvc1/.
  5. Copy all of the *.c and *.h files from VC1_reference_decoder_release6/shared/ into libavcodec/libvc1/.
  6. Place the libvc1-makefile.txt into libavcodec/libvc1/Makefile.
  7. Change directory into libavcodec/libvc1 and type ‘make’.
  8. Change directory back to the FFmpeg root.
  9. Place the smpte-vc1.c file into libavcodec/.
  10. Edit libavcodec/vc9.c, go the very end of the file, and add #if 0/#endif around the wmv3_decoder AVCodec structure; this will keep it fromconflicting with the new SMPTE WMV3 decoder.
  11. Edit libavcodec/Makefile and add smpte-vc1.o to the end of the OBJS list.
  12. Edit the top-level Makefile and add “-L./libavcodec/libvc1 -lvc1″ (without the quotes) to FFLIBS.
  13. Edit the libavcodec/allcodecs.c and uncomment the section about wmv3.
  14. Run ‘./configure’ at the top level if you have not already done so for this tree.
  15. Run ‘make’ at the top level.