svc から最新版をビルド

まずは /etc/apt/sources.list に以下の2行を加える。

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

で、apt-get update をしてみたら…

debian:/home/paraches# apt-get update
無視 cdrom://[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 NETINST Binary-1 20070820-20:21] etch Release.gpg
<省略>
5727B を 2s で取得しました (2829B/s)
パッケージリストを読み込んでいます... 完了
W: GPG error: http://debian-multimedia.org etch Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 07DC563D1F41B907
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません

何か怪しいメッセージが!
何? 公開鍵が利用できない??? というわけでココを参考に解決策を…。

debian:/home/paraches# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 07DC563D1F41B907
gpg: requesting key 1F41B907 from hkp server wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 1F41B907: public key "Christian Marillat <marillat@debian.org>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
debian:/home/paraches# gpg --armor --export 07DC563D1F41B907 | apt-key add -
OK
debian:/home/paraches# 

今度こそ apt-get update 成功?

debian:/home/paraches# apt-get update
無視 cdrom://[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 NETINST Binary-1 20070820-20:21] etch Release.gpg
<省略>
192B を 5s で取得しました (36B/s)
パッケージリストを読み込んでいます... 完了
debian:/home/paraches# 

良かった、良かった。
次はパッケージに関係あるものをインストールする。

paraches@debian:/etc/apt$ sudo apt-get build-dep ffmpeg
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
注意、liba52-dev の代わりに liba52-0.7.4-dev を選択します
以下のパッケージが新たにインストールされます:
  ccache dpatch liba52-0.7.4-dev libdts-dev libfaac-dev libfaac0 libfaad-dev
  libfaad0 libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libglu1-xorg-dev
  libgsm1-dev libimlib2 libimlib2-dev libjpeg62-dev liblame-dev liblame0
  libltdl3 libltdl3-dev libogg-dev libpng12-dev libsdl1.2-dev libtheora-dev
  libtiff4-dev libtiffxx0c2 libungif4-dev libungif4g libvorbis-dev libx11-dev
  libx264-54 libx264-dev libxau-dev libxdmcp-dev libxext-dev libxv-dev
  libxvidcore4 libxvidcore4-dev libxvmc-dev mesa-common-dev texi2html
  x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-video-dev
  x11proto-xext-dev xtrans-dev
アップグレード: 0 個、新規インストール: 47 個、削除: 0 個、保留: 1 個。
8590kB のアーカイブを取得する必要があります。
展開後に追加で 31.7MB のディスク容量が消費されます。
続行しますか [Y/n]? 
<省略>
libsdl1.2-dev (1.2.11-8) を設定しています ...
paraches@debian:/etc/apt$ 

かなりの量のパッケージがインストールされた。見ると libx264 とか liblame とかちゃんと入ってる。
次に subversion のインストール。

paraches@debian:~/myTest/ffmpeg$ sudo apt-get install subversion
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています... 完了        
以下の特別パッケージがインストールされます:
  libneon26 libsvn1
提案パッケージ:
  subversion-tools db4.4-util
以下のパッケージが新たにインストールされます:
  libneon26 libsvn1 subversion
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 1 個。
1739kB のアーカイブを取得する必要があります。
展開後に追加で 5014kB のディスク容量が消費されます。
続行しますか [Y/n]? 
<省略>
subversion (1.4.2dfsg1-2) を設定しています ...
paraches@debian:~/myTest/ffmpeg$ cd ..

ホームディレクトリに svc フォルダを作ってそこでソースファイルをゲットする

paraches@debian:~$ mkdir svn
paraches@debian:~$ cd svn
paraches@debian:~/svn$ ls
paraches@debian:~/svn$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
A    ffmpeg/configure
A    ffmpeg/Doxyfile
<省略>
 U   ffmpeg/libswscale
外部項目 (リビジョン 25563) をチェックアウトしました。

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

なんだかすごくたくさん落ちてきたぞ…
svc フォルダの中にできた ffmpeg フォルダに入っていよいよ ./configure する。

paraches@debian:~/svn/ffmpeg$ ./configure --enable-libmp3lame --enable-libtheora --enable-liba52 --enable-libx264 --enable-libgsm --enable-pp --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab
install prefix            /usr/local
source path               /home/paraches/svn/ffmpeg
C compiler                gcc
<省略>
oss_muxer
Creating config.mak and config.h...
paraches@debian:~/svn/ffmpeg$ 

./configure 無事終了!
次はいよいよ make。

paraches@debian:~/svn/ffmpeg$ make
gcc -fPIC -fomit-frame-pointer -pthread -g -Wdeclaration-after-statement -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -O3 -I"/home/paraches/svn/ffmpeg" -I"/home/paraches/svn/ffmpeg" -I"/home/paraches/svn/ffmpeg"/libavutil -I"/home/paraches/svn/ffmpeg"/libavcodec -I"/home/paraches/svn/ffmpeg"/libavformat -I"/home/paraches/svn/ffmpeg"/libswscale -I"/home/paraches/svn/ffmpeg"/libavdevice -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -DHAVE_AV_CONFIG_H `imlib2-config --cflags` `freetype-config --cflags` -MM vhook/fish.c vhook/null.c vhook/watermark.c vhook/drawtext.c vhook/imlib2.c vhook/ppm.c | sed 's,^\([a-z]\),vhook/\1,' > .vhookdep
"/home/paraches/svn/ffmpeg"/version.sh "/home/paraches/svn/ffmpeg"
<省略>
pod2man --section=1 --center=" " --release=" " doc/ffserver.pod > doc/ffserver.1
rm doc/ffserver.pod doc/ffmpeg.pod doc/ffplay.pod
paraches@debian:~/svn/ffmpeg$ 

make も何事も無く終了!
で、インストール

paraches@debian:~/svn/ffmpeg$ sudo make install
make -C libavutil   install-libs
<省略>
install -d "/usr/local/share/man/man1"
install -m 644 doc/ffmpeg.1 doc/ffplay.1 doc/ffserver.1 "/usr/local/share/man/man1"
paraches@debian:~/svn/ffmpeg$ 

無事インストール終了。

でもこれで終了ってわけじゃないみたい。何やら /etc/ld.so.conf ファイルの中に /usr/local/lib が書かれていないといけないらしい。しかも、/usr/lib よりも前に。とりあえずは最初に書けば良いみたい。でも、/etc/ld.so.conf の中身は他のファイルを読んでるよ?

paraches@debian:~$ sudo cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
paraches@debian:~$ 

んじゃ、その読み込む前に書けば良いのね。

paraches@debian:~$ sudo cat /etc/ld.so.conf
/usr/local/lib
include /etc/ld.so.conf.d/*.conf
paraches@debian:~$ 

で、アップデート。

paraches@debian:~/svn/ffmpeg$ sudo ldconfig -v
ldconfig: Can't stat /lib64: No such file or directory
/usr/local/lib:
/lib/i486-linux-gnu:
/usr/lib/i486-linux-gnu:
/lib:
<省略>
	libutil.so.1 -> libutil-2.3.6.so
	libresolv.so.2 -> libresolv-2.3.6.so
paraches@debian:~/svn/ffmpeg$ 

最後にバージョンの確認。

paraches@debian:~/svn/ffmpeg$ ffmpeg -version
FFmpeg version SVN-r11364, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-libmp3lame --enable-libtheora --enable-liba52 --enable-libx264 --enable-libgsm --enable-pp --enable-libxvid --enable-libfaac --enable-pthreads --enable-libvorbis --enable-libfaad --enable-gpl --enable-x11grab
  libavutil version: 49.6.0
  libavcodec version: 51.49.0
  libavformat version: 52.3.0
  built on Jan  1 2008 02:07:21, gcc: 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)
FFmpeg SVN-r11364
libavutil   3212800
libavcodec  3354880
libavformat 3408640
paraches@debian:~/svn/ffmpeg$ 

最新版の ffmpeg がインストールできた!
しかし、ビルドの時間が元旦の午前2時って…駄目人間じゃん…