忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
現代魔法(nearly equal 情報技術)を勉強中な人のメモ(チラシの裏)
/ 2024/04/24 (Wed) / 編集
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

/ 2009/05/01 (Fri) / 編集
pwに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 install


Step 5 libavfilterをインストール

なぜか一緒にインストールしてくれなかったので、、、
%ls libavfilter
%make install


補足

  1. dos2unixがない人へ
  2. dos2unixは改行コードをdos形式からUNIX形式に変換するコマンド、改行がUNIX形式(LF)になるなら別の方法でも良い
  3. インストールしたはずなのに、、、な人へ
  4. ライブラリをインストールしたはずなのにldに「not found」とか言われちゃう時

    とりあえず、認識されているか確認
    %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
  5. ffmpegはオプションが変更になってるので注意
  6. 実行時の変換オプションの与え方が変更されているので注意

    参考:[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

拍手[0回]

PR
忍者ブログ [PR]