プログラム / 2009/05/01 (Fri) / 編集 |
pwにffmpegをソースからコンパイルしてインストールしたのでメモ
最新版じゃないとあんなサイトやこんなサイトのflvファイルを変換できないらしい、というわけでやってみた
実は読んでないけど、すっごく良い本らしい。
ffmpegだけではなくコーディックのこととかから説明していて動画ファイルと音声ファイルについてよくわかるらしいのでぜひ欲しい、けど高い、、、
最新版じゃないとあんなサイトやこんなサイトのflvファイルを変換できないらしい、というわけでやってみた
実は読んでないけど、すっごく良い本らしい。
ffmpegだけではなくコーディックのこととかから説明していて動画ファイルと音声ファイルについてよくわかるらしいのでぜひ欲しい、けど高い、、、
事前準備
先に以下のコマンドを使えるようにしておくaclocal,autoheader,glibtoolize,automake,autoconf
個別ライブラリのインストール
以下、すべて最新版をインストールするとなおよし。 横に並んでるのは依存関係のあるものなので、左から順番に、、、緑字は面倒だったので最新版にしなかったもの
zlib
pthread
nasm,yasm,x264
faad2,faac
gsm
lame
libnut
libogg,libvorbis
libtheora
xvidcore
a52dec
以下、やり方が特殊だったもの(./configureだけじゃなかったもの)メモ
gsm
Makefileを自分で修正しないといけないという仕様、ヘッダファイルの保存先(デフォルトではinc)にも注意INSTALL_ROOT = /usr/local
そのあとmake
%make
%make install
faad
%dos2unix bootstrap
%bootstrap
%./configure
%make
%make install
faac
%dos2unix bootstrap
%dos2unix configure.in
%bootstrap
%./configure
%make
%make install
libvorbis
lib/Makefile.inを修正、libvorbisfile_la_LIBADDに-loggを追加libvorbisfile_la_LIBADD = libvorbis.la -logg
a52dec
%dos2unix bootstrap
%bootstrap
%./configure
%make
%make install
xvidcore
%build/generic
%./bootstrap.sh
%./configure
%make
%make install
ffmpeg
Step 1 ソースを修正
「ffmpeg-checkout-2009-04-29」はそのままだとlibmp3lameを利用したmp3への変換時にエラーが出る(lame: output buffer too small)そこで[Craving Explorer Wiki]同梱ffmpegのlameエンコードの不具合を参考にファイル(libavcodec/libmp3lame.c)を書き換える。
Step 1 コンパイルオプション
赤字の連続はセットでつけないといけないもの、緑字は環境依存なもの(いらない人もいる)./configure --extra-ldflags="-L/usr/local/lib/" --enable-gpl --enable-postproc --enable-avfilter --enable-libfaac --enable-nonfree --enable-libfaad --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libgsm --enable-libx264 --enable-pthreads --enable-libxvid --enable-encoder=libogg --enable-decoder=liba52
とりあえずconfigureが通るか確認する
make
makeまで確認しないといけないらしい(詳細はavfilterの項で)
Step 3 avfilter
参考:[さきゅぱす]さきゅばす用FFmpegの再構築方法についてsvn checkout svn://svn.mplayerhq.hu/soc/libavfilter libavfilter
でavfilterの最新版をダウンロードし、ffmpegのディレクトリにあるavfilterに上書きコピー
ffmpegのディレクトリ内から
patch < libavfilter/diffs/02_ffmpeg_filters.diff
(ファイル名は変わってるかもしれないけど、とにかく*_ffmpeg_filters.diffを適用)
Step 4 2度目のconfigureとmake
もう一度Step 2をしたあとにmake installStep 5 libavfilterをインストール
なぜか一緒にインストールしてくれなかったので、、、%ls libavfilter
%make install
補足
- dos2unixがない人へ dos2unixは改行コードをdos形式からUNIX形式に変換するコマンド、改行がUNIX形式(LF)になるなら別の方法でも良い
- インストールしたはずなのに、、、な人へ ライブラリをインストールしたはずなのにldに「not found」とか言われちゃう時
- ffmpegはオプションが変更になってるので注意 実行時の変換オプションの与え方が変更されているので注意
とりあえず、認識されているか確認
%ldconfig -p
あれ?ないよ?となったら、ディレクトリを確認し、lsコマンド等できちんと入っている事を確認した後に
%ldconfig
それでもだめならldconfigの設定を変更し、検索先を追加する
「/etc/ld.so.conf.d」内に「~~~.conf」というファイル名でライブラリのある場所の絶対パスを記述、例えば
%cat /etc/ld.so.conf.d/usr-local-lib.conf
/usr/local/lib
もう一度
%ldconfig
参考:[MobileHackerz]最新FFmpeg
参考文献
[お気に入りの動画を携帯で見よう]FFmpegのコンパイル[Ffmpeg-devel] "ERROR: x264 not found", in error I believe
[Debian GNU/Linux 3.1 on PowerMac G4]前回に引き続き faac 1.25 に再挑戦
[Craving Explorer Wiki]同梱ffmpegのlameエンコードの不具合
[さきゅぱす]さきゅばす用FFmpegの再構築方法について
[MobileHackerz]最新FFmpeg
PR