Ubuntu 7.10へのFFmpegのインストール

Linux上でFFmpegを使った動画変換を試しています。手元のUbuntu 7.10では、ffmpegパッケージは存在するものの、MP3やH.264のエンコーダがdisabledになっているようなので、ソースからビルドしてみました。

コーデックのインストール

事前に以下のパッケージをapt-getでインストールしました。

  • liblame0, liblame-dev: LAME MP3エンコーダ
  • libx264-54, libx264-dev: x264 H.264エンコーダ

FFmpegソースコードの入手

ビルド

  • 指定したconfigureオプション
    • --prefix=/opt/ffmpeg: アップデートを容易にするため、単独のディレクトリ以下にインストールすることを指定
    • --enable-libmp3lame: LAME MP3エンコーダを有効にする。
    • --enable-libx264: x264を有効にする。
    • --enable-gpl: GPLライセンス化で使用する。x264はGPLで配布されているために、x264との組み合わせでは必須。

上記の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
  • オーディオコーデック: MP3

どうやら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 ?)