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 付きでコンパイルしないと使えないようだ。

“Ubuntu 10.04のffmpegでlibmp3lameを使用できるようにする” への7件の返信

  1. こんにちは、TKです。
    早速の検証ありがとうございます。
    上記のとおり操作・設定しましたら
    Synapticパッケージマネージャで インストールしたFFmpegでの録画できました!

    Synapticパッケージマネージャで インストールしたFFmpegは「/usr/bin」で
    後からインストールしたFFmpegは「/usr/local/bin」だったので
    間違いなくSynapticでインストールした方で録画できていると思います。

    本当にありがとうございます。

  2. TKさんこんばんは。
    > Synapticパッケージマネージャで インストールしたFFmpegは「/usr/bin」で
    > 後からインストールしたFFmpegは「/usr/local/bin」だったので
    > 間違いなくSynapticでインストールした方で録画できていると思います。

    規定の設定だと、/usr/bin より /usr/local/bin が優先されるので、野良ビルドした方が動きます。which コマンドでどちらが使われているか分かります。
    noizumi@purplecat:~$ which ffmpeg
    /usr/local/bin/ffmpeg

    なので、ffmpeg のソースディレクトリで、
    sudo make uninstall
    と、野良ビルドした ffmpeg を削除しないと、パッケージ版は使われないと思います。

  3. お返事ありがとうございます。
    which ffmpegとしたら、やはり/usr/local/bin/ffmpegとなっていました。

    アンインストールしようと思い、下記を実行したのですが
     @Ubuntu:/usr/local/bin$ sudo make uninstall
     make: *** ターゲット `uninstall’ を make するルールがありません. 中止.
    と、なってしまうのですが・・・またコマンドの書き方が間違ってますか?

  4. sudo make uninstallについてちょっと調べてみたら

    ./configure
    make
    sudo make install
    を行ったディレクトリから行うと分かりました。

    私の場合、ホームディレクトリの中にFFmpegディレクトリがあるので
    端末で移動してsudo make uninstallを実行したところ
    @Ubuntu:~/ffmpeg$ sudo make uninstall
    rmdir “/usr/local/include”
    rmdir: /usr/local/include' を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    rmdir "/usr/local/include"
    rmdir:
    /usr/local/include’ を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    rmdir “/usr/local/include”
    rmdir: /usr/local/include' を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    rmdir "/usr/local/include"
    rmdir:
    /usr/local/include’ を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    rmdir “/usr/local/include”
    rmdir: /usr/local/include' を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    rmdir "/usr/local/include"
    rmdir:
    /usr/local/include’ を削除できませんでした: Directory not empty
    make: [uninstall-headers] エラー 1 (無視されました)
    となって終了しました。

    続いて、下記コマンドを実行すると
    @Ubuntu:~$ which ffmpeg
    /usr/bin/ffmpeg
    となりました。

    これでよろしいのでしょうか?

  5. sudo make uninstall は ffmpeg のソースディレクトリで行うので、 TK さんが行われた手順で大丈夫ですよ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください