Ubuntu 7.10へのFFmpegのインストール
Linux上でFFmpegを使った動画変換を試しています。手元のUbuntu 7.10では、ffmpegパッケージは存在するものの、MP3やH.264のエンコーダがdisabledになっているようなので、ソースからビルドしてみました。
コーデックのインストール
事前に以下のパッケージをapt-getでインストールしました。
ビルド
- 指定したconfigureオプション
上記のconfigureオプションで、make, make install が無事に通りました。
実行: FLV & MP3 44.1kHz
とりあえずは、以下のオプションで動画ファイルを変換できることを確認しました。
$ ffmpeg -y -i infile.mpg -f flv -vcodec flv -r 30 -b 500k -s 320x240 \ > -acodec libmp3lame -ar 44100 -ab 64k output.flv
- コンテナフォーマット: FLV (Flash Video)
- ビデオコーデック: FLV
- フレームレート: 30frame/sec
- ビットレート: 500Kbps
- 画像サイズ: 320x240
- オーディオコーデック: MP3
- サンプリングレート: 44.1kHz
- ビットレート: 64Kbps
どうやらFLVではオーディオのサンプリングレートとして48KHzを許容していないようで、オプションを変えたら以下のエラーが出ました。
$ ffmpeg -y -i infile.mpg -f flv -vcodec flv -r 30 -b 500k -s 320x240 \ > -acodec libmp3lame -ar 48000 -ab 64k output.flv FFmpeg version SVN-r11901, Copyright (c) 2000-2008 Fabrice Bellard, et al. (略) [libmp3lame @ 0x84e0cb0]flv does not support that sample rate, choose from (44100, 22050, 11025). Could not write header for output file #0 (incorrect codec parameters ?)
実行: MP4, H.264 & MP3 48kHz
x264を使ったエンコードを試すために、コンテナとしてMP4、ビデオコーデック/オーディオコーデックにそれぞれlibx264とlibmp3lameを指定してみました。こちらはサンプリングレート48kHzでも行けました。
$ ffmpeg -y -i infile.mpg -f mp4 -vcodec libx264 -r 30 -b 500k -s 320x240 \ > -acodec libmp3lame -ar 48000 -ab 64k output.mp4
コンテナをFlash Videoにして、ビデオコーデックにlibx264を指定するとエラーが出ました。最新のFLVフォーマットはH.264に対応しているはずなので、将来的にはできるようになるのでしょうか?
$ ffmpeg -y -i infile.mpg -f flv -vcodec libx264 -r 30 -b 500k -s 320x240 \ > -acodec libmp3lame -ar 44100 -ab 64k output5.mp4 FFmpeg version SVN-r11901, Copyright (c) 2000-2008 Fabrice Bellard, et al. (略) [libx264 @ 0x84e0cb0]video codec not compatible with flv Could not write header for output file #0 (incorrect codec parameters ?)