mplayer で smpte VC-1 コーデックを使う。
mplayer から ffmpeg VC-1(WMV3,WMV9) smpteコーデックを使えるようにしてみた。忘れないうちにメモを残しておく。
なお、まともなffmpeg 用 VC-1 コーデックの開発は SoC 2006 に採択されている。この開発はhttp://codecs.multimedia.cx/に経過が出てきそうである。
さてffmpegにVC-1をサポートさせる手順はここにあり、1-13はそのままでいい。始めに、このサイトから、vc1_reference_decoder_release6.zip libvc1-makefile.txt smpte-vc1.c をダウンロードし、mplayer のソースをsvn を用いてダウンロード。 ( svn co svn://svn.mplayerhq.hu/mplayer/trunk ),
- vc1_reference_decoder_release6.zip を展開する。
- mplayer のソースをsvnでチェックアウトすると libavcodec ディレクトリが有る。そこにlibvc1 ディレクトリを作る。
- 展開した vc1_reference_decoder_release6/の中のdecoder/ shared/から ソース (*.[ch])を libavcodec/libvc1/ に移動させる。
- libvc1-makefile.txt を libavcodec/libvc1/Makefile としてコピー。
- libavcodec/libvc1 で make を実行。 libvc1.aが出来る。
- libavcodec に smpte-vc1.c をコピー。
- libavcodec/vc9.c 中の AVCodec wmv3_decode を #if 0 #endifで囲む。これは smpte-vc1 に同じものが含まれるから。
- libavcodec/Makefile の 変数 OBJS に smpte-vc1.o を追加。
- libavcodec/allcodecs に register_avcodec(&wmv3_decoder);がコメントアウトされているので、有効に。
- mplayer の top ディレクトリ に移動し、 configure を実行する。config.mak に AV_DEP AV_LIB に libavcodec/libvc1/libvc1.a を追加。(いい方法では無いと思う。もっとエレガントな方法を教えて。)
- top で make
- codec.confを編集し、~/.mplayerにコピー。
編集箇所は
videocodec ffwmv3
info "FFmpeg M$ WMV3/WMV9"
status buggy
fourcc WMV3,wmv3
driver ffmpeg
dll wmv3
out YV12,I420,IYUV
の status crashing を status buggy に変更する。
こうすれば wmv3/wmv9の画像は表示できまた。ただし、Athlon(tm) 64 Processor 3000+では速度が遅すぎてまったくもって使いものにならない。音が出ない物もある、いったいどーすればいいのか?
追記、Kostya のblogにあるvc1itrans.cを使えば少しましだが、やっぱり遅い。
0 Comments:
コメントを投稿
<< Home