動かざることバグの如し

近づきたいよ 君の理想に

H.264対応のffmpegをLinux環境でビルドする

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
  • enable-libx264 x264の有効化
  • enable-nonfree,enable-gpl GPLライセンスの承認 これがないとx264使えない

./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

余談

以下のサイトが神レベルでまとまっていたのでメモ いやすごい

nyanshiba.hatenablog.com