[Ubuntu] 複数のバージョンの FFmpeg をインストールする

スポンサーリンク

環境

Ubuntu 12.04.2 (64bit) (3.5.0-24-generic)

内容

例えば,このような理由で 1 台のマシンに複数のバージョンの FFmpeg を入れたい場合があります.

[FFmpeg] Video4Linux2 が遅い?件

複数のバージョンを FFmpeg を使用していて,一方を実行すると下記のようなワーニングや,バージョンによってはエラーとなる場合があります.

WARNING: library configuration mismatch
  libavutil configuration: --  
  libavcodec configuration: -- 
  libavformat configuration: --
  libavdevice configuration: --
  libavfilter configuration: --
  libswscale configuration: --
  libpostproc configuration: --

ライブラリのバージョンも整合が取れていません.例えば,

libavutil      51. 54.100 / 51. 54.100
libavcodec     54. 23.100 / 54. 91.101
libavformat    54.  6.100 / 54. 61.104
libavdevice    54.  0.100 / 54.  3.103
libavfilter     2. 77.100 /  2. 77.100
libswscale      2.  1.100 /  2.  2.100
libswresample   0. 15.100 /  0. 17.102
libpostproc    52.  0.100 / 52.  2.100

これは,各々の,あるいは一方の FFmpeg のビルド時に –enable–shared オプションを付けていることによるもののようです.

対応

例えば,x264 の configure 時に下記のように設定してインストールします.

$ cd x264
$ ./configure --enable-static
$ make -j8
$ sudo make install

/etc/ld.so.conf.d/local.conf を編集します.

$ sudo vi /etc/ld.so.conf.d/local.conf

FFmpeg 1.2 と FFmpeg 0.11.3 をインストールしたい場合,例えば下記のように記述してみます.

/usr/local/lib
/usr/local/ffmpeg-1.2/lib
/usr/local/ffmpeg-0.11.3/lib

各々の FFmpeg のビルド時には

--enable-shared

オプションは付けないようにします.
また,インストールするディレクトリを分けるために,

--prefix=/usr/local/ffmpeg-x.y.z

のように prefix オプションを別々に設定します.

FFmpeg 1.2 の場合,

$ tar zxvf ffmpeg-1.2.tar.gz
$ cd ffmpeg-1.2
$ ./configure --enable-gpl --enable-libfaac --enable-libx264 --enable-nonfree --prefix=/usr/local/ffmpeg-1.2
$ make -j8
$ sudo make install
$ sudo ldconfig

FFmpeg 0.11.3 の場合,

$ tar zxvf ffmpeg-0.11.3.tar.gz
$ cd ffmpeg-0.11.3
$ ./configure --enable-gpl --enable-libfaac --enable-libx264 --enable-nonfree --prefix=/usr/local/ffmpeg-0.11.3
$ make -j8
$ sudo make install
$ sudo ldconfig

確認

$ /usr/local/ffmpeg-1.2/bin/ffmpeg -version

結果,

...

確認

$ /usr/local/ffmpeg-0.11.3/bin/ffmpeg -version

結果,

ffmpeg version 0.11.3
built on Apr 24 2013 21:59:32 with gcc 4.7.2
configuration: --enable-gpl --enable-libfaac --enable-libx264 --enable-nonfree --prefix=/usr/local/ffmpeg-0.11.3
libavutil      51. 54.100 / 51. 54.100
libavcodec     54. 23.100 / 54. 23.100
libavformat    54.  6.100 / 54.  6.100
libavdevice    54.  0.100 / 54.  0.100
libavfilter     2. 77.100 /  2. 77.100
libswscale      2.  1.100 /  2.  1.100
libswresample   0. 15.100 /  0. 15.100
libpostproc    52.  0.100 / 52.  0.100
FFmpegUbuntu
スポンサーリンク
コピペワールド