2012/10/11

Ubuntu  ffmpeg のインストール方法

Ubuntu 11.10 に Synapticパッケージマネージャーから ffmpeg をインストールしたが、しばらく使わなかった。そしてしばらくぶりに端末から
ffmpeg -version
としたら,エラーが出た。内容は書き取っていなかったので正確には覚えていないが,バージョンが古くて依存関係を満たしていないというようなことだったと記憶している。

そこでこれを以下のようにアンインストールして、最新版を再インストールした。(参考:1)


ffmpeg のインストール

ffmpegは頻繁に更新が行なわれています。Synapticパッケージマネージャーやソフトウェアセンターからインストール出来ますが,常に最新の状態である訳ではありません。ここでは
  端末からコマンドを使って
  Ubuntu 10.10, 11.04, 11.10 または 12.04 に
  最新のffmpegをインストールする

方法を紹介します。
コマンドとは命令という意味で、マウスでクリックする替りにキーボートから端末に入力します。端末を起動する(開く)には
 Dashホーム→それ以外のソフト→結果の絞り込み→アクセサリー
 と進み、”インストール済み”から選択します。

0. インストール手順

  1. 古いffmpeg のアンインストール
  2. ffmpeg に必要なライブラリをインストール
  3. ffmpeg の最新版をインストール

1. 古いffmpeg のアンインストール

端末を開いて以下のコマンドで ffmpeg と関連のパッケージをアンインストールする。

sudo apt-get remove ffmpeg x264 libav-tools libvpx-dev libx264-dev

(家の Ubuntu では ”パッケージ’libav-tools’は見つかりません。”と、エラーが出たので、それを除いた以下のコマンド
sudo apt-get remove ffmpeg x264 libvpx-dev libx264-dev
を実行した。)

2. ffmpeg に必要なライブラリをインストール


ffmpeg に必要なエンコード,デコードライブラリをインストールします。ここでインストールするライブラリは下記の通りです。なお、ライブラリのインストールは任意ですから必要に応じて省略出来ます。

 libfaac (AAC encoder)
 libmp3lame (MP3 encoder)
 libopencore-amr (AMR encoder/decoder)
 librtmp (for additional RTMP protocols)
 libtheora (Theora encoder)
 libvorbis (Vorbis encoder)
 fdk-aac (AAC encoder)
 libvpx (VP8 encoder/decoder)
 libx264 (H.264 encoder)

まず、端末から以下のコマンドでアップデートと、 上記のライブラリのうち、

 libfaac (AAC encoder)
 libmp3lame (MP3 encoder)
 libopencore-amr (AMR encoder/decoder)
 librtmp (for additional RTMP protocols)
 libtheora (Theora encoder)
 libvorbis (Vorbis encoder)

をインストールします。

sudo apt-get update
sudo apt-get -y install autoconf build-essential checkinstall git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev \
  librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev \
  libx11-dev libxext-dev libxfixes-dev pkg-config texi2html yasm zlib1g-dev

もし,libfaac-dev に関係するエラーが出たら,

https://launchpad.net/ubuntu/+archive/primary/+files/faac_1.28.orig.tar.gz

からlibfaacパッケージをダウンロードして、以下のコマンドでインストールします。

tar -xzvf faac_1.28.orig.tar.gz
cd faac-1.28
./configure
make && make install

残りの3つのライブラリ

 fdk-aac (AAC encoder)
 libvpx (VP8 encoder/decoder)
 libx264 (H.264 encoder)

は次の3章でソースコードからインストールします。
 

3. ffmpeg の最新版をインストール


Ubuntuでは端末からファイルをダウンロードしたり、インストールするには通常 apt-get コマンドを使います。しかし、参考にしたサイトでは git コマンドを使ってソースコードをダウンロードしているので、ここでもそのまま git コマンドを使った方法を紹介します。

3-0. ここで使うコマンドについて


apt-get も git もソフトウェアを管理するプログラムを使うためのコマンド(命令)です。apt-get ではAPTというシステムを使い,git ではGitというシステムを利用しています。もう少し詳しく書くと,
Git とはバージョンやソースコードを管理するシステムで、動作速度に重点がおかれています。(参照:5)Git を利用するには端末からコマンドとして git と入力します。  

APT は Debian/GNU系Linux でのパッケージ管理システムで、ソフトウェアのインストールやバージョン管理をしやすくするために作られました。(参照:6)APT を利用するには端末からコマンドとして apt-get と入力します。
バージョンやソースコード、 パッケージ、Debian/GNU系Linuxについては別の機会で説明します。

ソースコードをダウンロードしてきた場合にはそのままではプログラムとして使えないので、使えるようにする必要があります。これをコンパイルと言います。 コンパイルするには端末からつのコマンド

./configure
make
sudo make install

を入力します。なお、ここでは make install の替りにcheckinstall を使い,

./configure
make
sudo checkinstall

と入力しています。 install を checkinstall とすると、インストールに加えてOSに合ったパッケージまで作成してくれて,インストール後の後処理もしてくれます。また、アンインストールもパッケージマネージャーから簡単に出来ます。(参照:2)

3-1. x264 をインストール


端末から以下のコマンドで x264(H.264 ビデオエンコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 git://git.videolan.org/x264
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
  awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
  --fstrans=no --default


3-2. fdk-aac をインストール


端末から以下のコマンドで fdk-aac (AAC オーディオエンコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --disable-shared
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default

3-3. libvpx をインストール


端末から以下のコマンドで libvpx (VP8 ビデオエンコーダ&デコーダ)をダウンロードしてインストールします。

cd
git clone --depth 1 http://git.chromium.org/webm/libvpx.git
cd libvpx
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default

3-4. ffmpeg をインストール


端末から以下のコマンドで ffmpeg をダウンロードしてインストールします。

cd
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame \
  --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
  --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree \
  --enable-version3
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe 

インストールはこれで終了です。

4.ffmpeg, libvpx, fdk-aac, x264 のアップデート

 ここでは ffmpeg, libvpx, fdk-aac, x264をパッケージマネージャーからパッケージとしてインストールしなかったので,アップデートは下記の順に端末からコマンドを打って行います。

3で作成したパッケージの削除(これで3で作成したパッケージは全て削除されます。)
 
sudo apt-get -y remove ffmpeg x264 libx264-dev libvpx-dev 


2でインストールしたライブラリの再インストール

sudo apt-get update
sudo apt-get -y install build-essential checkinstall git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev \
  librtmp-dev libsdl1.2-dev libtheora-dev libva-dev libvdpau-dev libvorbis-dev \
  libx11-dev libxext-dev libxfixes-dev texi2html yasm zlib1g-dev

x264をアップデート(./configure, make, sudo checkinstall は3-1と同様)

cd ~/x264
make distclean
git pull
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | \
  awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes \
  --fstrans=no --default

fdk-aacをアップデート(./configure, make, sudo checkinstall は3-2と同様)

cd ~/fdk-aac
make distclean
git pull
./configure --disable-shared
make
sudo checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default 

libvpxをアップデート(./configure, make, sudo checkinstall は3-3と同様)

cd ~/libvpx
make clean
git pull
./configure
make
sudo checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default
 

ffmpegをアップデート(./configure, make, sudo checkinstall は3-4と同様)

cd ~/ffmpeg
make distclean
git pull
./configure --enable-gpl --enable-libfaac --enable-libfdk-aac --enable-libmp3lame \
  --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora \
  --enable-libvorbis --enable-libvpx --enable-x11grab --enable-libx264 --enable-nonfree \
  --enable-version3
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no \
  --deldoc=yes --fstrans=no --default 
 
 

5. ffmpeg, libvpx, fdk-aac, x264 のアンインストール


3.でインストールした ffmpeg, libvpx, fdk-aac, x264 をアンインストールするには以下のコマンドを実行します。

sudo apt-get -y autoremove autoconf build-essential checkinstall fdk-aac ffmpeg git libfaac-dev libgpac-dev \
  libjack-jackd2-dev libmp3lame-dev librtmp-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev \
  libvorbis-dev libvpx libx11-dev libxfixes-dev pkg-config texi2html x264 yasm zlib1g-dev

そして,ホームフォルダー内の4つのフォルダー”ffmpeg, libvpx, fdk-aac, x264”を削除します。

sudo rm -r ffmpeg libvpx fdk-aac x264

参考


 1. https://ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide

 2. http://de.wikipedia.org/wiki/Checkinstall

 3. http://linux-suomi.net/modules/sinyD0/index.php?id=18#05

 4. http://fixedpoint.jp/ffmpeg/ffmpeg-doc.html

 5. http://ja.wikipedia.org/wiki/Git

 6. http://ja.wikipedia.org/wiki/APT

4 件のコメント :

  1. x264をアップデート(./configure, make, sudo checkinstall は3-1と同様)

    cd ~/x264
    make distclean
    git pull
    ./configure --enable-static

    >> ./configure --enable-shared でないとうまく行きませんでした。

    返信削除
    返信
    1. 貴重なご指摘ありがとうございます。確認してみます。

      削除
  2. インストール手順、大変参考になりました。
    ただ「3-3. libvpx をインストール」が失敗しましたが、「libvpxをアップデート」してから、「 3-4. ffmpeg をインストール」を実行したらインストール出来ました。libvpxのバージョン0.9.1が必要と言われたのでバージョンが合わなかったのでしょうか。2016.4.5

    返信削除
  3. 返事が遅れて申し訳ありません。
    インストールに失敗した時にはエラーメッセージが出るので、その内容が参考になります。”libvpxのバージョン0.9.1が必要”とありますが、おそらくこれはエラーメッセージの一部ではないでしょうか。もしそうならご指摘のとおりバージョンの問題でしょう。
    なお、以下のHPに最新の情報が載っています。
    https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
    ご参考までに。

    返信削除