Debian Lenny に ffmpeg をインストールした

paraches2010-06-08

先日、新しくサーバを用意することになり、もう一台 ML115 G5 をゲットして Debian Lenny をインストールした。その後で ffmpeg をインストールしたので手順をメモ。
基本的には 'debian lenny ffmpeg' でググって最初に出てきたページの手順そのまま


2011/4/26 Updated : CentOS 5.6 に ffmpeg をインストール

debian のパッケージのダウンロードとインストール

myTest というフォルダを作って、その中に ffmpeg というフォルダを作って、そこで作業を開始。

paraches@debian:~/myTest/ffmpeg$ wget http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
--2010-06-07 14:00:24--  http://www.debian-multimedia.org/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
www.debian-multimedia.org をDNSに問いあわせています... 91.121.86.213
www.debian-multimedia.org|91.121.86.213|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb [続く]
--2010-06-07 14:00:26--  http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia/pool/main/d/debian-multimedia-keyring/debian-multimedia-keyring_2008.10.16_all.deb
ftp.sunet.se をDNSに問いあわせています... 194.71.11.69, 2001:6b0:19::64
ftp.sunet.se|194.71.11.69|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14332 (14K) [application/x-debian-package]
`debian-multimedia-keyring_2008.10.16_all.deb' に保存中

100%[======================================>] 14,332      23.6K/s 時間 0.6s    

2010-06-07 14:00:28 (23.6 KB/s) - `debian-multimedia-keyring_2008.10.16_all.deb' へ保存完了 [14332/14332]
paraches@debian:~/myTest/ffmpeg$ sudo dpkg -i debian-multimedia-keyring_2008.10.16_all.deb 
未選択パッケージ debian-multimedia-keyring を選択しています。
(データベースを読み込んでいます ... 現在 30109 個のファイルとディレクトリがインストールされています。)
(debian-multimedia-keyring_2008.10.16_all.deb から) debian-multimedia-keyring を展開しています...
debian-multimedia-keyring (2008.10.16) を設定しています ...
OK
gpg: 鍵6070D3A1:“Debian Archive Automatic Signing Key (4.0/etch) <ftpmaster@debian.org>”変更なし
gpg: 鍵ADB11277:“Etch Stable Release Key <debian-release@lists.debian.org>”変更なし
gpg: 鍵BBE55AB3:“Debian-Volatile Archive Automatic Signing Key (4.0/etch)”変更なし
gpg: 鍵F42584E6:“Lenny Stable Release Key <debian-release@lists.debian.org>”変更なし
gpg: 鍵55BE302B:“Debian Archive Automatic Signing Key (5.0/lenny) <ftpmaster@debian.org>”変更なし
gpg: 鍵6D849617:“Debian-Volatile Archive Automatic Signing Key (5.0/lenny)”変更なし
gpg:     処理数の合計: 6
gpg:         変更なし: 6
paraches@debian:~/myTest/ffmpeg$ 

/etc/apt/source.list を編集

vi で編集。

deb http://www.debian-multimedia.org lenny main
deb-src http://www.debian-multimedia.org lenny main

上記2行を加える。

paraches@debian:~/myTest/ffmpeg$ sudo vi /etc/apt/sources.list
paraches@debian:~/myTest/ffmpeg$ cat /etc/apt/sources.list
# 
# deb cdrom:[Debian GNU/Linux 5.0.4 _Lenny_ - Official amd64 NETINST Binary-1 20100201-16:38]/ lenny main

#deb cdrom:[Debian GNU/Linux 5.0.4 _Lenny_ - Official amd64 NETINST Binary-1 20100201-16:38]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main

deb http://www.debian-multimedia.org lenny main
deb-src http://www.debian-multimedia.org lenny main
paraches@debian:~/myTest/ffmpeg$ 

apt cache をアップデートして必要なユーティリティをインストール、そして ffmpeg に必要なソフトウェアをインストール

paraches@debian:~/myTest/ffmpeg$ sudo apt-get update
<長いので省略>
パッケージリストを読み込んでいます... 完了
paraches@debian:~/myTest/ffmpeg$ sudo apt-get install checkinstall yasm git-core subversion
<長いので省略>
build-essential (11.4) を設定しています ...
paraches@debian:~/myTest/ffmpeg$ sudo apt-get build-dep ffmpeg
<長いので省略>
libdirac-dev (1.0.0-0.0) を設定しています ...
paraches@debian:~/myTest/ffmpeg$ 

x264 をインストール

ffmpeg フォルダの中に x264 フォルダを作ってそこで作業する。まずは git でソースをゲット。

paraches@debian:~/myTest/ffmpeg$ mkdir x264
paraches@debian:~/myTest/ffmpeg$ cd x264/
paraches@debian:~/myTest/ffmpeg/x264$ git clone git://git.videolan.org/x264.git
Initialized empty Git repository in /home/paraches/myTest/ffmpeg/x264/x264/.git/
remote: Counting objects: 11184, done.
remote: Compressing objects: 100% (2762/2762), done.
remote: Total 11184 (delta 9045), reused 10378 (delta 8382)
Receiving objects: 100% (11184/11184), 2.72 MiB | 597 KiB/s, done.
Resolving deltas: 100% (9045/9045), done.
paraches@debian:~/myTest/ffmpeg/x264$ ls
x264
paraches@debian:~/myTest/ffmpeg/x264$ cd x264
paraches@debian:~/myTest/ffmpeg/x264/x264$ ls
AUTHORS   Makefile      config.sub  encoder  muxers.h  version.sh  x264dll.c
COPYING   common        configure   extras   output    x264.c
Doxyfile  config.guess  doc         input    tools     x264.h

次に configure & make

paraches@debian:~/myTest/ffmpeg/x264/x264$ ./configure
Platform:   X86_64
System:     LINUX
asm:        yes
avs input:  no
lavf input: no
ffms input: no
mp4 output: no
pthread:    yes
debug:      no
gprof:      no
PIC:        no
shared:     no
visualize:  no

You can run 'make' or 'make fprofiled' now.
paraches@debian:~/myTest/ffmpeg/x264/x264$ make
<長いので省略>
paraches@debian:~/myTest/ffmpeg/x264/x264$ 

最後に checkinstall でインストール

paraches@debian:~/myTest/ffmpeg/x264/x264$ sudo checkinstall --pkgname=x264 --pkgversion "1:0.svn'date +%Y%m%d'" --backup=no --default
checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。



*****************************************
**** Debian package creation selected ***
*****************************************

*** Warning: The package version "1:0.svndate +%Y%m%d" is not a
*** Warning: debian policy compliant one. Please specify an alternate one

このパッケージは以下の内容で構成されます: 

0 -  Maintainer: [ root@debian ]
1 -  Summary: [ Package created with checkinstall 1.6.1 ]
2 -  Name:    [ x264 ]
3 -  Version: [ 0 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ x264 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ x264 ]

変更するものの番号を入力してください。Enterで続行します: 

Installing with make...Installing with install...

========================= インストールの結果 ===========================
install -d /usr/local/bin
install -d /usr/local/include
install -d /usr/local/lib
install -d /usr/local/lib/pkgconfig
install -m 644 x264.h /usr/local/include
install -m 644 libx264.a /usr/local/lib
install -m 644 x264.pc /usr/local/lib/pkgconfig
install x264 /usr/local/bin
ranlib /usr/local/lib/libx264.a

======================== インストールに成功しました ==========================

Copying documentation directory...
./
./COPYING
./doc/
./doc/ratecontrol.txt
./doc/vui.txt
./doc/standards.txt
./doc/regression_test.txt
./doc/threads.txt
./AUTHORS
grep: /var/tmp/tmp.akEnbARoDR/newfile: そのようなファイルやディレクトリはありません

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries and libraries...OK

manページを圧縮..OK

ファイルリストを作成..OK

Debianパッケージを作成..OK

Debianパッケージをインストール..OK

tempファイルを削除..OK

temp dirを削除..OK


**********************************************************************

 Done. The new package has been installed and saved to

 /home/paraches/myTest/ffmpeg/x264/x264/x264_0-1_amd64.deb

 You can remove it from your system anytime using: 

      dpkg -r x264

**********************************************************************

paraches@debian:~/myTest/ffmpeg/x264/x264$ 

libtheora をインストール

まずは wget でソースを落としてきて展開。

paraches@debian:~/myTest/ffmpeg$ wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz
--2010-06-07 14:12:52--  http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz
downloads.xiph.org をDNSに問いあわせています... 64.50.236.52, 64.50.233.100
downloads.xiph.org|64.50.236.52|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2111877 (2.0M) [application/x-gzip]
`libtheora-1.1.1.tar.gz' に保存中

100%[======================================>] 2,111,877    523K/s 時間 4.1s    

2010-06-07 14:12:57 (502 KB/s) - `libtheora-1.1.1.tar.gz' へ保存完了 [2111877/2111877]

paraches@debian:~/myTest/ffmpeg$ tar xzvf libtheora-1.1.1.tar.gz 
libtheora-1.1.1/
<長いので省略>
paraches@debian:~/myTest/ffmpeg$ 

展開した libtheora-1.1.1 フォルダに移動して configure & make

paraches@debian:~/myTest/ffmpeg$ cd libtheora-1.1.1/
paraches@debian:~/myTest/ffmpeg/libtheora-1.1.1$ ./configure
<長いので省略>
------------------------------------------------------------------------
  libtheora 1.1.1:  Automatic configuration OK.

  General configuration:

    Encoding support: ........... yes
    Floating point support: ..... yes
    Assembly optimization: ...... 64 bit x86
    Debugging telemetry: ........ no
    Build example code: ......... yes
    API Documentation: .......... no
    Format Documentation: ....... no

  Installation paths:

    libtheora: ................... /usr/local/lib
    C header files: .............. /usr/local/include/theora
    Documentation: ............... /usr/local/share/doc/libtheora

  Building:

    Type 'make' to compile libtheora.

    Type 'make install' to install libtheora.

    Type 'make check' to run test suite (Valgrind testing not enabled)

  Example programs will be built but not installed.
------------------------------------------------------------------------

paraches@debian:~/myTest/ffmpeg/libtheora-1.1.1$ make
<長いので省略>
paraches@debian:~/myTest/ffmpeg/libtheora-1.1.1$ 

checkinstall でインストール

paraches@debian:~/myTest/ffmpeg/libtheora-1.1.1$ sudo checkinstall --pkgname=libtheora --pkgversion "1.1.1" --backup=no --default

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。



*****************************************
**** Debian package creation selected ***
*****************************************

このパッケージは以下の内容で構成されます: 

0 -  Maintainer: [ root@debian ]
1 -  Summary: [ Package created with checkinstall 1.6.1 ]
2 -  Name:    [ libtheora ]
3 -  Version: [ 1.1.1 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ libtheora-1.1.1 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ libtheora ]

変更するものの番号を入力してください。Enterで続行します: 

Installing with make...Installing with install...

<長いので省略>
**********************************************************************

 Done. The new package has been installed and saved to

 /home/paraches/myTest/ffmpeg/libtheora-1.1.1/libtheora_1.1.1-1_amd64.deb

 You can remove it from your system anytime using: 

      dpkg -r libtheora

**********************************************************************

paraches@debian:~/myTest/ffmpeg/libtheora-1.1.1$ 

libx264-dev をアンインストール

paraches@debian:~/myTest/ffmpeg$ sudo apt-get remove libx264-dev
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libx264-65
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージは「削除」されます:
  libx264-dev
アップグレード: 0 個、新規インストール: 0 個、削除: 1 個、保留: 3 個。
この操作後に 909kB のディスク容量が解放されます。
続行しますか [Y/n]? 
(データベースを読み込んでいます ... 現在 41098 個のファイルとディレクトリがインストールされています。)
libx264-dev を削除しています ...
paraches@debian:~/myTest/ffmpeg$ 

最新の ffmpeg を subversion を使ってダウンロード

なぜかこのダウンロードに物凄い時間がかかった。1時間以上かかったはず…

paraches@debian:~/myTest/ffmpeg$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
<長いので省略>
外部項目 (リビジョン 31341) をチェックアウトしました。

リビジョン 23512 をチェックアウトしました。
paraches@debian:~/myTest/ffmpeg$ 

出来上がった ffmpeg フォルダに移動して、configure & make

paraches@debian:~/myTest/ffmpeg/ffmpeg$ ./configure --enable-version3 --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab --enable-nonfree
<長いので省略>
paraches@debian:~/myTest/ffmpeg/ffmpeg$ make
<長いので省略>
paraches@debian:~/myTest/ffmpeg/ffmpeg$ 

checkinstall でインストール

paraches@debian:~/myTest/ffmpeg/ffmpeg$ sudo checkinstall --pkgname=ffmpeg --pkgversion "4:0.5+svn`date +%Y%m%d`" --backup=no --default

checkinstall 1.6.1, Copyright 2002 Felipe Eduardo Sanchez Diaz Duran
           このソフトウェアはGNU GPLの下でリリースしています。


The package documentation directory ./doc-pak does not exist. 
Should I create a default set of package docs?  [y]: y

パッケージのドキュメンテーションを準備..OK

*****************************************
**** Debian package creation selected ***
*****************************************

このパッケージは以下の内容で構成されます: 

0 -  Maintainer: [ root@debian ]
1 -  Summary: [ Package created with checkinstall 1.6.1 ]
2 -  Name:    [ ffmpeg ]
3 -  Version: [ 4:0.5+svn20100607 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ ffmpeg ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ ffmpeg ]

変更するものの番号を入力してください。Enterで続行します: 

Installing with make...Installing with install...
<長いので省略>
**********************************************************************

 Done. The new package has been installed and saved to

 /home/paraches/myTest/ffmpeg/ffmpeg/ffmpeg_4:0.5+svn20100607-1_amd64.deb

 You can remove it from your system anytime using: 

      dpkg -r ffmpeg

**********************************************************************

paraches@debian:~/myTest/ffmpeg/ffmpeg$ 

ffmpeg がインストールされていることを確認

paraches@debian:~/myTest/ffmpeg/ffmpeg$ which ffmpeg
/usr/local/bin/ffmpeg
paraches@debian:~/myTest/ffmpeg/ffmpeg$ ffmpeg
FFmpeg version SVN-r23512, Copyright (c) 2000-2010 the FFmpeg developers
  built on Jun  7 2010 17:24:52 with gcc 4.3.2
  configuration: --enable-version3 --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab --enable-nonfree
  libavutil     50.18. 0 / 50.18. 0
  libavcodec    52.74. 1 / 52.74. 1
  libavformat   52.68. 0 / 52.68. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libavfilter    1.20. 0 /  1.20. 0
  libswscale     0.11. 0 /  0.11. 0
  libpostproc   51. 2. 0 / 51. 2. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

Use -h to get full help or, even better, run 'man ffmpeg'
paraches@debian:~/myTest/ffmpeg/ffmpeg$ 

ちゃんとインストールできている!

ffmpeg の configure で ERROR: libx264 not found になる場合

今回、一番最初に ffmpeg の configure をトライした時は libx264 が見つからないとエラーが出てしまった。こんな感じ。

paraches@debian:~/myTest/ffmpeg/ffmpeg$ ./configure --enable-version3 --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libgsm --enable-postproc --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab --enable-nonfree
ERROR: libx264 not found

If you think configure made a mistake, make sure you are using the latest
version from SVN.  If the latest version fails, report the problem to the
ffmpeg-user@mplayerhq.hu mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.err" produced by configure as this will help
solving the problem.
paraches@debian:~/myTest/ffmpeg/ffmpeg$ ls /usr/lib | grep 264
libx264.so.65
paraches@debian:~/myTest/ffmpeg/ffmpeg$ 

ん? あるじゃん???
参考にしたページでも同じようなコメントがあるのだけど、自分の場合は思い切り簡単なミスだった。
それは x264 のインストールに失敗していたから…。checkinstall でのインストール時に、sudo していなかったのでファイルの属性変更ができなくてエラーになっていたのだ。こんな感じ。

paraches@debian:~/myTest/ffmpeg/x264/x264$ checkinstall --pkgname=x264 --pkgversion "1:0.svn'date +%Y%m%d'" --backup=no --default
<長いので省略>
========================= インストールの結果 ===========================
install -d /usr/local/bin
install: `/usr/local/bin' の属性を変更できません: 許可されていない操作です
make: *** [install] エラー 1

****  インストールは失敗しました。パッケージの作成を中断します

クリーンアップ..OK

Bye.

paraches@debian:~/myTest/ffmpeg/x264/x264$ 

このエラーに気付かずに先へ進んでしまい、ffmpeg の configure でエラーになっていた。で、x264 をちゃんとインストールしてから ffmpeg の configure をしたら、エラー無く先へ進めた。
/usr/lib/libx264.so.65 はこの際必要ないものだったらしい。'apt-get remove libx264-dev' した時にこんなメッセージが出ていた。

以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libx264-65
これらを削除するには 'apt-get autoremove' を利用してください。

'apt-get autoremove' で削除しておいた方が良いのかな?