ffmpeg をビルドする
2010/6/8 追記:Debian lenny に ffmpeg をインストールする話はコッチでしてます。etch とは違う方法でインストールしました。
こないだやったのと同じようにすればスイスイ楽チンと思っていたら大間違い!思い切り落とし穴が…。
まず、./configure でエラーが出た。
paraches@debian:~/myTest/svn/ffmpeg$ ./configure --enable-libmp3lame --enable-libtheora --enable-liba52 --enable-libx264 --enable-libgsm --enable-pp --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab Unknown option "--enable-pp". See ./configure --help for available options. paraches@debian:~/myTest/svn/ffmpeg$
「--enable-pp なんて知らない」って怒られる。--enable-pp は「GPL'ed post processing のサポートをする」んだそうだ。何それ? ま、いっか。とりあえず --enable-pp は消して再度トライしたら ./configure は無事に終了した。
paraches@debian:~/myTest/svn/ffmpeg$ ./configure --enable-libmp3lame --enable-libtheora --enable-liba52 --enable-libx264 --enable-libgsm --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab install prefix /usr/local source path /home/paraches/myTest/svn/ffmpeg (省略) NOTE: Object files are built at the place where configure is launched. paraches@debian:~/myTest/svn/ffmpeg$
次に make をする。
paraches@debian:~/myTest/svn/ffmpeg$ make (省略) gcc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I. -I"/home/paraches/myTest/svn/ffmpeg" -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 -fasm -std=c99 -fomit-frame-pointer -pthread -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -Wcast-qual -Wwrite-strings -O3 -fno-math-errno -c -o libavcodec/libx264.o libavcodec/libx264.c libavcodec/libx264.c: In function ‘X264_init’: libavcodec/libx264.c:165: error: ‘x264_param_t’ has no member named ‘i_bframe_adaptive’ libavcodec/libx264.c:224: error: ‘X264_ME_TESA’ undeclared (first use in this function) libavcodec/libx264.c:224: error: (Each undeclared identifier is reported only once libavcodec/libx264.c:224: error: for each function it appears in.) make: *** [libavcodec/libx264.o] エラー 1 paraches@debian:~/myTest/svn/ffmpeg$
というわけで、エラー! libx264.c の 165行目と224行目にエラーがあるらしい。165行目は x264_param_t(構造体?)に i_bframe_adaptiveってメンバは無いって。う〜ん、新しく加わったメンバなのかな?他に libx264.c にはそのメンバはいないので、代入しているその行をコメントアウト! 次に 224行目だけど、これも定義されてない定数がいきなり出てきたってエラーだ。これも他には使われてないな〜。というわけで、これも前の行の else if 文もろともコメントアウト!(そんなんで良いのか???)
さて、エラーが出る行は消し去ったので、再度チャレンジ!
paraches@debian:~/myTest/svn/ffmpeg$ make (省略) doc/texi2pod.pl doc/ffserver-doc.texi doc/ffserver.pod pod2man --section=1 --center=" " --release=" " doc/ffserver.pod > doc/ffserver.1 rm doc/ffserver.pod doc/ffplay.pod doc/ffmpeg.pod paraches@debian:~/myTest/svn/ffmpeg$
というわけで、めでたく?終了!
後は前の時と同じく sudo make install して、/etc/ld.so.conf の最初に /usr/local/lib を加える。そしてアップデート。
paraches@debian:~/myTest/svn/ffmpeg$ sudo ldconfig -v /usr/local/lib: /lib/x86_64-linux-gnu: /usr/lib/x86_64-linux-gnu: /lib: libnss_winbind.so.2 -> libnss_winbind.so.2 (省略) libsvn_client-1.so.1 -> libsvn_client-1.so.1.0.0 /usr/lib32: paraches@debian:~/myTest/svn/ffmpeg$
で、ffmpeg のバージョンを確認してみる。
paraches@debian:~/myTest/svn/ffmpeg$ ffmpeg -version FFmpeg version SVN-r15375, Copyright (c) 2000-2008 Fabrice Bellard, et al. configuration: --enable-libmp3lame --enable-libtheora --enable-liba52 --enable-libx264 --enable-libgsm --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab libavutil 49.10. 0 / 49.10. 0 libavcodec 52. 0. 0 / 52. 0. 0 libavformat 52.22. 1 / 52.22. 1 libavdevice 52. 1. 0 / 52. 1. 0 built on Sep 21 2008 20:01:54, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) FFmpeg SVN-r15375 libavutil 49.10. 0 / 49.10. 0 libavcodec 52. 0. 0 / 52. 0. 0 libavformat 52.22. 1 / 52.22. 1 libavdevice 52. 1. 0 / 52. 1. 0 paraches@debian:~/myTest/svn/ffmpeg$
というわけで、とりあえずは望みのものがビルドできたような気がする。
一応ちょこちょこっと libx264 でエンコードして見たけど、ちゃんとできてるみたい。あの怪しいコメントアウトのせいで何かコマンドやオプションが効かなくなっていそうな気もするけど、気にしない〜!