プログラム / 2009/06/20 (Sat) / 編集 |
pwをもらえたので早速ffmpeg入れてみる、今度は3gpにも対応
死ぬほど時間かかるww
ffmpegは簡単に言えばいろんな動画や音楽を別の形式に変換するためのソフト、ここのサイトがわかりやすいかも
[eggshell blue]ついでに動画ファイルフォーマットやffmpegとの関係を纏めてみた
死ぬほど時間かかるww
ffmpegは簡単に言えばいろんな動画や音楽を別の形式に変換するためのソフト、ここのサイトがわかりやすいかも
[eggshell blue]ついでに動画ファイルフォーマットやffmpegとの関係を纏めてみた
事前準備
先に以下のコマンドを使えるようにしておくaclocal,autoheader,libtoolize,automake,autoconf
個別ライブラリのインストール
以下、すべて最新版をインストールするとなおよし。 横に並んでるのは依存関係のあるものなので、左から順番に、、、緑字は面倒だったので最新版にしなかったもの
ffmpeg (19235)
zlib
pthread
nasm,yasm,x264 : H.264形式用
faad2 (2.7),faac (1.28) : aac形式用
gsm (1.0.13)
lame (398-2) : mp3形式用
libnut
libogg,libvorbis : ogg形式用
libtheora
xvidcore (1.2.2) : Xvid形式用
a52dec
amr-nb (6.1.0.3) : 3gp形式用
amrwb (6.0.0.1) : 3gp形式用
dirac (1.0.2):.avi .mkv .ogvとからしい
speex (1.2rc1) : speex用(VoIPアプリケーションやポッドキャスト)
openjpeg (v1_3)
以下、やり方が特殊だったもの(./configure → make → make installだけじゃなかったもの)メモ
nut
ソースファイルを一部修正、「libnut/demuxer.cの16行目、ftelloをftellに変更」gsm
Makefileを自分で修正しないといけないという仕様、ヘッダファイルの保存先(デフォルトではinc)にも注意INSTALL_ROOT = /usr/local
そのあとmake
%make
%make install
speex
%./configure --enable-sse
%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
パッチ ([お気に入りの動画を携帯で見よう]Xvidのコンパイル&インストール (1.2.1以降))%patch -p1 < xvidcore-1.2.1-pthreads.diff
%patch -p1 < f1718874b.txt
でもってコンパイル
%cd 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)を書き換える。
ffmpeg-libmp3lame.patch (patch)
Step 1 avfilter
参考:[さきゅぱす]さきゅばす用FFmpegの再構築方法についてsvn checkout svn://svn.mplayerhq.hu/soc/libavfilter libavfilter
でavfilterの最新版をダウンロードし、ffmpegのディレクトリにあるavfilterに上書きコピー
ffmpegのディレクトリ内から
%patch < libavfilter/diffs/01_ffplay_filters.diff
%patch < libavfilter/diffs/02_ffmpeg_filters.diff
Step 2 コンパイルオプション
赤字の連続はセットでつけないといけないもの、緑字は環境依存なもの(いらない人もいる)%setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig
%./configure --extra-cflags="-I/usr/local/include" --extra-ldflags="-L/usr/local/lib/" --enable-gpl --enable-postproc --enable-avfilter --enable-libamr-nb --enable-libamr-wb --enable-libspeex --enable-libdirac --enable-libopenjpeg --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
%make
%make install
指定できるエンコーダ/デコーダをなるべく全部つけてみた、ただし「--enable-mlib」は登録が必要、「--enable-avisynth」は窓用、「--enable-libschroedinger」はDirac用なので「--enable-libdirac」でおけ?って感じなのでなし
Step 5 libavfilterをインストール
なぜか一緒にインストールしてくれなかったので、、、%cd libavfilter
%make install
補足
- dos2unixがない人へ dos2unixは改行コードをdos形式からUNIX形式に変換するコマンド、改行がUNIX形式(LF)になるなら別の方法でも良い
- ldのエラー(ステータス 1)な人へ その1 ライブラリをインストールしたはずなのにldに「not found」とか言われちゃう時
- ldのエラー(ステータス 1)な人へ その2 ldconfigにはあるのにそれでもダメな人へ
- 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
pkg-configが必要な設定ファイル(~~~.pc)を見つけれない場合もあります。 まずはライブラリが登録できてるか確認
pkg-config --list-all
あれ?ないよ?となったら、ディレクトリを確認し、lsコマンド等できちんと入っている事を確認した後に環境変数で設定ファイル(~~~.pc)のパスを指定
setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig
参考:[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の再構築方法について
[lowtech.ne.jp]CentOS4.4 + ffmpeg でflv から 3gp に変換する(前編)
[MobileHackerz]最新FFmpeg
PR
トラックバック
URL :
コメント