Windows で ffmpeg で flv → 3gpp2 変換

3gpp2 ファイル形式について

3GPP2 - Wikipedia によると 3gpp2 自体はコンテナで、ビデオおよびオーディオのコーデックとして下記のものを使っているものを指すようです。

  • ビデオコーデック: H.263 or MPEG4
  • オーディオコーデック: AAC

ffmpegWindows バイナリのダウンロード

導入方法は 最新のFFMpegを導入しよう - 2008年度 に非常に詳しくまとめられています。私の手元には Download FFmpeg からダウンロードさせていただいた ffmpeg.rev11143.7z (若干古いですが) があります。展開すると ffmpeg.exe, ffplay.exe, pthreadGC2.dll が出てきます。

libfaac コーデックの Windows バイナリのダウンロード

Avidemux - Main PageWindows バイナリパッケージをダウンロードすると libfaac.dll が入っています。libfaac.dll を ffmpeg.exe などと同じディレクトリに置きます。

変換

flv ファイルを変換してみます。出力ファイル名 (out.3g2) の拡張子を 3g2 にするか、-f 3g2 オプションを指定してください。

C:\>C:\opt\ffmpeg\ffmpeg.exe -i OKrskFTxG4o.flv -vcodec mpeg4 -s 352x288 -acodec libfaac out.3g2
FFmpeg version SVN-r11143, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-liba52 --enable-avisynth --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --cpu=i686 --enable-memalign-hack --extra-ldflags=-static
  libavutil version: 49.5.0
  libavcodec version: 51.48.0
  libavformat version: 52.1.0
  built on Dec  3 2007 17:42:57, gcc: 4.2.2 (mingw32)

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.92 (359/12)
Input #0, flv, from 'OKrskFTxG4o.flv':
  Duration: 00:05:00.5, start: 0.000000, bitrate: 56 kb/s
    Stream #0.0: Video: flv, yuv420p, 320x240 [PAR 0:1 DAR 0:1], 29.92 tb(r)
    Stream #0.1: Audio: mp3, 22050 Hz, mono, 56 kb/s
File 'out.3g2' already exists. Overwrite ? [y/N] y
Output #0, 3g2, to 'out.3g2':
    Stream #0.0: Video: mpeg4, yuv420p, 352x288 [PAR 0:1 DAR 0:1], q=2-31, 200 kb/s, 29.92 tb(c)
    Stream #0.1: Audio: libfaac, 22050 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 8994 fps=121 q=8.8 Lsize=    9024kB time=299.9 bitrate= 246.5kbits/s
video:7509kB audio:1390kB global headers:0kB muxing overhead 1.401407%