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

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

/ 2009/06/20 (Sat) / 編集
pwをもらえたので早速ffmpeg入れてみる、今度は3gpにも対応

死ぬほど時間かかる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


補足

  1. dos2unixがない人へ
  2. dos2unixは改行コードをdos形式からUNIX形式に変換するコマンド、改行がUNIX形式(LF)になるなら別の方法でも良い
  3. ldのエラー(ステータス 1)な人へ その1
  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. ldのエラー(ステータス 1)な人へ その2
  6. ldconfigにはあるのにそれでもダメな人へ

    pkg-configが必要な設定ファイル(~~~.pc)を見つけれない場合もあります。 まずはライブラリが登録できてるか確認
    pkg-config --list-all
    あれ?ないよ?となったら、ディレクトリを確認し、lsコマンド等できちんと入っている事を確認した後に環境変数で設定ファイル(~~~.pc)のパスを指定
    setenv PKG_CONFIG_PATH /usr/local/lib/pkgconfig
  7. ffmpegはオプションが変更になってるので注意
  8. 実行時の変換オプションの与え方が変更されているので注意

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

拍手[0回]

PR
忍者ブログ [PR]