[ロ] CentOS4.4 + ffmpeg でflv から 3gp に変換する(後編)

このエントリーをはてなブックマークに追加
はてなブックマーク - [ロ] CentOS4.4 + ffmpeg でflv から 3gp に変換する(後編)
Facebook にシェア
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]

後編アップまでにずいぶん時間がかかってしまったよ。今週は怒涛の忙しさだった・・・。
前編はこちら⇒[ロ] CentOS4.4 + ffmpeg でflv から 3gp に変換する(前編)
さてさて、今回FLVを3pgに変換したい!という欲望のままにネットで調べまくってコンパイル。失敗しては検索してまた別のを試す。って感じでどうにか必要な作業がわかってきたのですが、そもそも何でこんなにいろいろインストールしなくちゃいけないの?
という疑問がわいてきました。ブログにまとめている最中にね・・・。
Streaming Media Guid さんの 3GPP & 3GPP2 がよくまとまっていてわかりやすいです。
3pg,3gpp2 形式のファイルは音声コーデックにAMR、AACを使い、ビデオコーデックにMPEG4、H.264を使うということらしいです。
そうなってくるとなぞなのは、lamemp3, xvid ですがこれは携帯用じゃなくて、普通に音声MP3+動画divx形式の一般的なPC用ですね。
それでは、続きのSTEP4〜8までいってみましょー。

STEP4. FAACインストール

http://www.audiocoding.com/modules/mydownloads/singlefile.php?cid=3&lid=20
上記サイトから「faac-18102004.tar.gz」というファイルをダウンロードしてきたんだけど、今閲覧しようとするとPermissionDeniedになっていて見られない。向こうの設定ミスか、IPでけられているのかな・・・。よくわからないので、そのときダウンロードしたものをfaac-18102004.tar.gz においておきます。


$ tar xvzf ./faac-18102004.tar.gz
$ cd faac
$ sh ./bootstrap
$ ./configure
$ make
$ sudo make install

STEP5. FAAD2インストール

FAACと同じサイトからファイルをダウンロード。
同じく現在ダウンロードできないのでfaad2-15092004.tar.gzからどうぞ。


$ tar xvzf ./faad2-15092004.tar.gz
$ mkdir faad2
$ mv ./faad2-15092004.tar.gz ./faad2
$ cd faad2
$ tar xvzf ./faad2-15092004.tar.gz
$ sh bootstrap
$ ./configure
$ make
$ sudo make install

前回configure したときには「./configure CC=gcc32」でエラーでなかったはずなんだけど、別マシンで試したら「./configure」じゃないとコンパイルでエラーになった。

STEP6. x264 コーデックインストール

x264コーデックをコンパイルするときに必要なnasmを、先にyumでインストールしておく。


$ yum -y install nasm
$ wget http://downloads.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20070413-2245.tar.bz2
$ bzip2 -dc ./x264-snapshot-20070413-2245.tar.bz2 | tar xvf -
$ cd x264-snapshot-20070413-2245
$ ./configure  --enable-pthread --enable-shared
$ make
$ sudo make install

STEP7. xvid コーデックインストール


$ wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
$ tar xvzf ./xvidcore-1.1.0.tar.gz
$ cd xvidcore-1.1.0/build/generic
$ ./configure
$ make
$ sudo make install

STEP8. ffmpeg インストール


$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
$ cd ffmpeg

※FC4 だと特に気にせずこのままコンパイル&インストールでffmpeg がインストールできたのですが、Cent4.4だとエラーが発生するため、コード書き換えないとコンパイルができません。


$ vi ./libavutil/internal.h
    273 /*static av_always_inline long int lrintf(float x)*/
    274 static __inline__ long int lrintf(float x)

libavutil/internal.h の 273 行目(SVNから持ってきているのですでに変更されているかもしれません。)をコメントアウトして、その下の行に上記274行目のように追記。


$ ./configure --enable-gpl --enable-libmp3lame --enable-libamr-nb --enable-libamr-wb  
    --enable-xvid --disable-ffplay --disable-ffserver --enable-libfaac
    --enable-libfaad --enable-x264 --enable-shared
$ make


あれ、俺が前やったときには「–enable-amr-nb –enable-amr-wb」だったんだけど、別マシンで試したら「–enable-libamr-nb –enable-libamr-wb」じゃないとだめだった。
んー、記録間違いかなぁ。


# ln -s /usr/local/lib/libamrnb.so.2 /usr/lib/libamrnb.so.2
# ln -s /usr/local/lib/libfaac.so.0 /usr/lib/libfaac.so.0
# ln -s  /usr/local/lib/libamrwb.so /usr/lib/libamrwb.so
# ln -s  /usr/local/lib/libamrwb.so.2 /usr/lib/libamrwb.so.2
# ln -s  /usr/local/lib/libamrwb.so.0 /usr/lib/libamrwb.so.0
# ln -s  /usr/local/lib/libmp3lame.so.0 /usr/lib/
# ln -s  /usr/local/lib/libfaad.so.0 /usr/lib/libfaad.so.0
# ln -s  /usr/local/lib/libavformat.so.51 /usr/lib/libavformat.so.51
# ln -s  /usr/local/lib/libavcodec.so.51 /usr/lib/libavcodec.so.51
# ln -s  /usr/local/lib/libavutil.so.49 /usr/lib/libavutil.so.49


インストール後にffmpeg を実行するとライブラリがないとエラーになったので必要に応じて上記のようにシンボリックリンクを張った。


ffmpeg -i movie.flv -y -async 1 -vcodec mpeg4 -s 240x176 -r 29.97 -b 512 -acodec aac -ac 1 -ar 48000 -ab 96 -f 3gp MOL002.3gp

movie.flv というflvファイルをMOL002.3gpという携帯で見られる動画形式に変換。これをminiSDに入れて携帯からためしに見てみると・・・OKばっちりです。
以上〜〜。

Popular Posts:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*