Linuxで動画をエンコードするためにffmpegを導入する
今まではchinachu導入時にビルドされたバイナリを使ってエンコードしていたのですが、ffprobeで動画の情報取得に失敗するのでffmpeg/ffprobeだけ自分で入れ直すことにしました。
VideoLAN - x264, the best H.264/AVC encoder
検証用の環境
今回はConoHaに建てたVM上で検証してます。
バイナリ
とりあえず使いたいなら一番手軽だとは思います。最新版が起動するところまでは確認しました。
パッケージ
rpmfusionのレポジトリを追加すればパッケージ版を入れることも可能だけど随分バージョンが古い。。。
linux版ffmpeg, rpmfusionからパッケージインストール出来るのかと思ってリポジトリ追加してバージョン確認したら0.10.15(最新版は2.8.2)でふぇぇってなってる pic.twitter.com/avFU7c1kMu
— kirine@HYLOGICS (@kirinetter) 2015, 11月 21
rpmforgeにもパッケージはありますが0.6.5とrpmfusionよりバージョンが古い。
お手製ビルド
結局これが一番無難かもしれない。
必須パッケージの追加
$ sudo yum install yasm $ rpm -qi yasm
x264のビルド
libx264のエンコーダが必要ない人は飛ばして良いと思います。
$ wget ftp://ftp.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20151121-2245-stable.tar.bz2 $ tar -xjf ./x264-snapshot-20151121-2245-stable.tar.bz2 $ cd x264-snapshot-20151121-2245-stable $ ./configure --enable-shared $ make $ sudo make install
注意点
$ ls /usr/local/lib/*so /usr/local/lib/libx264.so
標準だと/usr/local/lib
配下にインストールされるので読み込まれません。
configure時に--libdir /lib64
などでパスを変更するか、以下の通りパスを追加してあげて下さい。
$ sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/libx264.conf $ sudo ldconfig
ffmpegのビルド
$ wget wget http://ffmpeg.org/releases/ffmpeg-2.8.2.tar.bz2 $ tar -xjf ./ffmpeg-2.8.2.tar.bz2 $ cd ffmpeg-2.8.2 $ ./configure --enable-libx264 --enable-gpl $ make $ sudo make install
確認
バージョン確認
$ which ffprobe /usr/local/bin/ffprobe $ ffprobe -version ffprobe version 2.8.2 Copyright (c) 2007-2015 the FFmpeg developers built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16) $ which ffmpeg /usr/local/bin/ffmpeg $ ffmpeg -version ffmpeg version 2.8.2 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-16)
テスト
$ ffmpeg -i t.m2ts -vcodec libx264 -s 720:540 -strict -2 t.mp4 $ ffprobe -i t.mp4
問題がなければ以上で完了です!