CentOS5.2にffmpegをソースから入れてみようとした。
参考サイト
http://mick.blog16.jp/index.php/2008/02/10/ffmpega_centosa_la_a_a_fa_ra_3gpa_flva_u
http://d.hatena.ne.jp/mimizumo/
http://d.hatena.ne.jp/shunirr/20080717/ffmpeg
http://d.hatena.ne.jp/amachang/20080624/1214315801
まずGitは標準のリポジトリには無いので外部リポジトリを追加
sudo vi /etc/yum.repos.d/CentOS-Base.repo [dag] name=Dag RPM Repository for Redhat EL5 baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 enabled=1 gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
sudo yum update sudo yum install git
subversionがない人はここで一緒に入れましょう
yasmも必要らしいので入れましょう。
wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.1.tar.gz tar zxvf yasm-0.7.1.tar.gz cd yasm-0.7.1 ./configure && make && sudo make install
あとで入れるlibtheoraでエラーとなるので
sudo yum install libtheora-devel
liba52は最新のconfigureオプションにはない。といわれるのでMakefileから外してもいいかも。
ビルド時にエラーがでるので
yum install automake libtoolなど入れておく
libavfilterがないといわれたんだけど
svn checkout svn://svn.mplayerhq.hu/soc/libavfilter
↑いらなくても一応動く。
あとリビジョンが古すぎるので最新のソースにパッチを適用すると死ぬ。
C言語に詳しい人なら手動パッチできるかも。
実行してないが、以下のテンプレ的Makefileを走らせればたぶん動きます。
以前のMakefileはMac用のMakefileなので.dylibの箇所が.soである必要がありました。ので修正しました。
all: ffmpeg-repos /usr/local/lib/libfaad.so /usr/local/lib/liba52.la /usr/local/lib/libdirac_decoder.so /usr/local/lib/libfaac.so /usr/local/lib/libgsm.a /usr/local/lib/libamrnb.so /usr/local/lib/libamrwb.so /usr/local/lib/libmp3lame.so /usr/local/lib/libx264.a /usr/local/lib/libnut.a /usr/local/lib/libtheora.so /usr/local/lib/libvorbis.so /usr/local/lib/libxvidcore.4.so cd ffmpeg-repos && PKG_CONFIG_PATH=/usr/local/lib/pkgconfig sh configure --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-pthreads --enable-libamr-nb --enable-libamr-wb --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid && make && sudo make install # ffmpeg-repos ffmpeg-repos: svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-repos # faad2 faad2-2.6.1.tar.gz: wget http://downloads.sourceforge.net/faac/faad2-2.6.1.tar.gz faad2: faad2-2.6.1.tar.gz tar xvfz faad2-2.6.1.tar.gz /usr/local/lib/libfaad.so: faad2 cd faad2 && ./bootstrap && ./configure && make && sudo make install # liba52 a52dec-0.7.4.tar.gz: wget http://liba52.sourceforge.net/files/a52dec-0.7.4.tar.gz a52dec-0.7.4: a52dec-0.7.4.tar.gz tar xvfz a52dec-0.7.4.tar.gz /usr/local/lib/liba52.la: a52dec-0.7.4 cd a52dec-0.7.4 && ./configure && make && sudo make install # libdirac dirac-0.10.0.tar.gz: wget http://downloads.sourceforge.net/dirac/dirac-0.10.0.tar.gz dirac-0.10.0: dirac-0.10.0.tar.gz tar xvfz dirac-0.10.0.tar.gz /usr/local/lib/libdirac_decoder.so: dirac-0.10.0 cd dirac-0.10.0 && ./configure && make && sudo make install # faac2 faac-1.26.tar.gz: wget http://downloads.sourceforge.net/faac/faac-1.26.tar.gz faac: faac-1.26.tar.gz tar xvfz faac-1.26.tar.gz /usr/local/lib/libfaac.so: faac cd faac && ./bootstrap && ./configure && make && sudo make install # libgsm gsm-1.0.12.tar.gz: wget http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-1.0.12.tar.gz gsm-1.0-pl12: gsm-1.0.12.tar.gz tar xvfz gsm-1.0.12.tar.gz /usr/local/lib/libgsm.a: gsm-1.0-pl12 cd gsm-1.0-pl12 && make && sudo cp lib/libgsm.a /usr/local/lib/ && sudo cp inc/gsm.h /usr/local/include/ # libamrnb amrnb-7.0.0.2.tar.bz2: wget http://ftp.penguin.cz/pub/users/utx/amr/amrnb-7.0.0.2.tar.bz2 amrnb-7.0.0.2: amrnb-7.0.0.2.tar.bz2 tar xvfj amrnb-7.0.0.2.tar.bz2 /usr/local/lib/libamrnb.so: amrnb-7.0.0.2 cd amrnb-7.0.0.2 && ./configure && make && sudo make install # libamrwb amrwb-7.0.0.3.tar.bz2: wget http://ftp.penguin.cz/pub/users/utx/amr/amrwb-7.0.0.3.tar.bz2 amrwb-7.0.0.3: amrwb-7.0.0.3.tar.bz2 tar xvfj amrwb-7.0.0.3.tar.bz2 /usr/local/lib/libamrwb.so: amrwb-7.0.0.3 cd amrwb-7.0.0.3 && ./configure && make && sudo make install # libmp3lame lame-3.97.tar.gz: wget http://downloads.sourceforge.net/lame/lame-3.97.tar.gz lame-3.97: lame-3.97.tar.gz tar xzf lame-3.97.tar.gz /usr/local/lib/libmp3lame.so: lame-3.97 cd lame-3.97 && ./configure && make && sudo make install # libx264 x264: git clone git://git.videolan.org/x264.git /usr/local/lib/libx264.a: x264 cd x264 && ./configure && make && sudo make install # libnut libnut: svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut /usr/local/lib/libnut.a: libnut cd libnut && make && sudo make install # libogg libogg-1.1.3.tar.gz: wget http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz libogg-1.1.3: libogg-1.1.3.tar.gz tar xvf libogg-1.1.3.tar.gz /usr/local/lib/libogg.so: libogg-1.1.3 cd libogg-1.1.3 && ./configure && make && sudo make install # libtheora theora: svn co http://svn.xiph.org/trunk/theora theora /usr/local/lib/libtheora.so: theora /usr/local/lib/libogg.so cd theora && ./autogen.sh && ./configure && make && sudo make install # libvorbis libvorbis-1.2.0.tar.gz: wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz libvorbis-1.2.0: libvorbis-1.2.0.tar.gz tar xvfz libvorbis-1.2.0.tar.gz /usr/local/lib/libvorbis.so: libvorbis-1.2.0 cd libvorbis-1.2.0 && ./configure && make && sudo make install # libxvid xvidcore-1.2.1.tar.gz: wget http://downloads.xvid.org/downloads/xvidcore-1.2.1.tar.gz xvidcore-1.2.1: xvidcore-1.2.1.tar.gz tar xvf xvidcore-1.2.1.tar.gz /usr/local/lib/libxvidcore.4.so: xvidcore-1.2.1 cd xvidcore-1.2.1/build/generic && ./bootstrap.sh && ./configure --disable-assembly && make && sudo make install
ffmpegが入ったら
ldconfigの修正
/etc/ld.so.conf
に/usr/local/libを追記
sudo /sbin/ldconfigして適用
/sbin/ldconfig -vで/usr/local/libが含まれていればOKだと思う。
一応手動でmakeを繰り返しinstallまではできたのでたぶん大丈夫。
なんでたぶん動くかというとESXiでインストールする前のスナップショットを取った状態に戻そうとしたんだけど
CPUを換装したのを忘れていてCPU情報が違うとエラーはいてCentOSが死亡しました。