Ubuntu 10.04のffmpegでlibmp3lameを使用できるようにする

Ubuntu 10.04でffmpegコンパイルのコメントで、libmp3lame を使う為に ffmpeg をコンパイルしようとされている方がおられた。

しかし、、前回テストした時に、パッケージのffmpeg も libmp3lame が使えていたはずで、果たしてコンパイルが必要なのか?が気になったので、VirtualBoxにUbuntu 10.04を入れてインストールテストしてみた。

Synapticパッケージマネージャで ffmpeg をインストール指定。

ffmpeg に依存するパッケージをSynapticパッケージマネージャで unstripped をキーワードに検索して指定する

libavcodec-unstripped-52 (これを指定すると libmp3lame0がインストールされる)
libavdevice-unstripped-52
libavfilter-unstripped-0
libavformat-unstripped-52
libavutil-unstripped-49
libpostproc-unstripped-51
libswscale-unstripped-0

全部指定して「適用」を実行すると、ffmpegの他、次のパッケージがインストールされる。

インストールが完了したら、

noizumi@noizumi-desktop:~/share$ ffmpeg -formats |grep mp3
FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: –extra-version=4:0.5.1-1ubuntu1 –prefix=/usr –enable-avfilter –enable-avfilter-lavf –enable-vdpau –enable-bzlib –enable-libgsm –enable-libschroedinger –enable-libspeex –enable-libtheora –enable-libvorbis –enable-pthreads –enable-zlib –disable-stripping –disable-vhook –enable-runtime-cpudetect –enable-gpl –enable-postproc –enable-swscale –enable-x11grab –enable-libdc1394 –enable-shared –disable-static
libavutil     49.15. 0 / 49.15. 0
libavcodec    52.20. 1 / 52.20. 1
libavformat   52.31. 0 / 52.31. 0
libavdevice   52. 1. 0 / 52. 1. 0
libavfilter    0. 4. 0 /  0. 4. 0
libswscale     0. 7. 1 /  0. 7. 1
libpostproc   51. 2. 0 / 51. 2. 0
built on Mar  4 2010 12:35:30, gcc: 4.4.3
DE mp3             MPEG audio layer 3
EA    libmp3lame      libmp3lame MP3 (MPEG audio layer 3)
D A    mp3             MP3 (MPEG audio layer 3)
D A    mp3adu          ADU (Application Data Unit) MP3 (MPEG audio layer 3)
D A    mp3on4          MP3onMP4
text2movsub remove_extra noise mov2textsub mp3decomp mp3comp mjpegadump imxdump h264_mp4toannexb dump_extra
noizumi@noizumi-desktop:~/share$

–enable-libmp3lame が有効になっていなくても、コーデックに libmp3lame が使用できるようになるようだ。
試しに mpeg1、mp2の動画ファイルの音声をmp3に変換してみると、

noizumi@noizumi-desktop:~/share$ ffmpeg -i bl25.mpg -vcodec copy -acodec libmp3lame -ab 128k test.mpg

Input #0, mpeg, from ‘bl25.mpg’:
Duration: 00:28:26.29, start: 0.500000, bitrate: 3804 kb/s
Stream #0.0[0x1e0]: Video: mpeg1video, yuv420p, 1280×720 [PAR 1:1 DAR 16:9], 104857 kb/s, 29.97 tbr, 90k tbn, 29.97 tbc
Stream #0.1[0x1c0]: Audio: mp2, 44100 Hz, stereo, s16, 128 kb/s
Output #0, mpeg, to ‘test.mpg’:
Stream #0.0: Video: mpeg1video, yuv420p, 1280×720 [PAR 1:1 DAR 16:9], q=2-31, 104857 kb/s, 90k tbn, 29.97 tbc
Stream #0.1: Audio: libmp3lame, 44100 Hz, stereo, s16, 128 kb/s

無事変換できて、プロパティで確認すると、ちゃんとmp3になっていた。

Xvidエンコードテスト
$ ffmpeg -i bl25.mpg -vcodec libxvid -acodec libmp3lame -ab 128k test.avi

はOK。

libfaac0パッケージを入れてH.264のAACエンコードテスト
$ ffmpeg -i bl25.mpg -vcodec libx264 -vpre hq -acodec libfaac -ab 128k test.mp4

Unknown encoder ‘libfaac’

はダメ。
今流行りのH.264、AACのMP4のファイルを作ろうとすると、–enable-libfaac 付きでコンパイルしないと使えないようだ。