VineSeed の ffmpeg で 3gp を扱ってみる
携帯電話の音声や動画の規格って、取説にもかかれていないのねん。なので、 mp4 コンテナを作るとき、 ffmpeg のパラメーターは試行錯誤そのものです。
VineSeed で手軽に 3gp を扱えるようにしてみました。
とは言っても、 AMR のライブラリがいつまでサポートされるのかよく分からないので、 self-build 化まで考えていません。そこまで 3gp に興味がないです。
mp4 で以下にハイクオリティーでエンコードできるかには興味があるんですけどね。
ffmpeg に --enable-libamr-nb --enable-libamr-wb --enable-nonfree を対応させる
まず、 AMR Codecs as Shared Libraries http://www.penguin.cz/~utx/amr から amrwb, amrnb のソースをダウンロードしてきます。そして、以下の nosrc.rpm を使ってビルドし、インストールします。
ダウンロード: amrwb-7.0.0.3-2vl5mp.nosrc.rpm on so-net
ダウンロード: amrnb-7.0.0.2-2vl5mp.nosrc.rpm on so-net
つぎに、 self-build-ffmpeg のソースを apt-get で取ってきて、以下の手順で ffmpeg をリビルドします。
$ apt-get source self-build-ffmpeg $ rpmbuild -ba --define _with_amr:1 ~/rpm/SOURCES/ffmpeg.spec
3gp -> flv -> mp4 へ変換してみる
試しに 3gp を flv や mp4 などへ変換してみます。
$ ffmpeg -y -i hoge.3gp -ar 44100 hoge.flv $ ffmpeg -y -i hoge.flv -sameq -vcodec libx264 -acodec libfaac -f mp4 hoge.mp4 (ffmpeg-mh だと、) $ ffmpeg-mh -y -i hoge.flv -vcodec xvid -bitexact -fixaspect -s 320x240 \ -r 14.985 -b 190 -acodec aac -ac 2 -ar 16000 -ab 32 -f mp4 hoge.mp4