FFmpegは言わずとしれた動画音声変換用アプリケーションだが、ビルドが結構煩雑である。
ビルド済みのバイナリダウンロードしてそれつかえばええやんって話だが、ライセンス的な関係上、H.264のコーデックを使いたい場合は自分でビルドしなければならない
ってことでビルドメモ
環境
まずはH.264に必要なライブラリのビルドから
yasmのビルド/インストール
wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz tar xvfz yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure --prefix=/usr/local make make install
nasmのビルド/インストール
wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2 tar xjvf nasm-2.13.03.tar.bz2 cd nasm-2.13.03 ./autogen.sh ./configure --prefix=/usr/local make make install
いよいよx264へ
x264のビルド/インストール
git clone git://git.videolan.org/x264.git cd x264/ ./configure --enable-shared --disable-opencl --prefix=/usr/local make make install
ここでライブラリの再読込
ldconfig
ffmpegのインストール
いよいよffmpegのビルド マシンのスペックにもよるけど結構時間かかるので注意
git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git cd ffmpeg ./configure --enable-gpl --enable-libx264 --enable-nonfree
./configure
したときに以下のエラーが出たときはライブラリのロードあたりが間違っている。makeできてもおそらく実行できないだろう
WARNING: using libx264 without pkg-config config.h is unchanged libavutil/avconfig.h is unchanged
あとはいつもどおりうまくいくことを願いながらmake
make make install
make成功したけど、実行時に以下のようなエラーが出るときはやはりライブラリの読み込みに失敗している
ffmpeg -i test.mp4 -b:v 1000k -b:a 128k -vcodec libx264 output.mp4 ffmpeg: error while loading shared libraries: libx264.so.155: cannot open shared object file: No such file or directory
個人的には /etc/ld.so.conf.d/user.confに以下で作成してldconfig
したらいけた
/usr/local/lib
余談
以下のサイトが神レベルでまとまっていたのでメモ いやすごい