Windows で ffmpeg で flv → 3gpp2 変換
3gpp2 ファイル形式について
3GPP2 - Wikipedia によると 3gpp2 自体はコンテナで、ビデオおよびオーディオのコーデックとして下記のものを使っているものを指すようです。
- ビデオコーデック: H.263 or MPEG4
- オーディオコーデック: AAC
ffmpeg の Windows バイナリのダウンロード
導入方法は 最新のFFMpegを導入しよう - 2008年度 に非常に詳しくまとめられています。私の手元には Download FFmpeg からダウンロードさせていただいた ffmpeg.rev11143.7z (若干古いですが) があります。展開すると ffmpeg.exe, ffplay.exe, pthreadGC2.dll が出てきます。
libfaac コーデックの Windows バイナリのダウンロード
Avidemux - Main Page の Windows バイナリパッケージをダウンロードすると 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%