Ubuntu 10.04でffmpegコンパイル

ffmpegで動画変換をやろうと思ったが、Ubuntu は、ライセンスに厳密なので、Non-free なものは公式には含まれない。

そう言えば、motion でmpegムービーを記録しようとして、できなかった時に

libavcodec-unstripped-52
libavformat-extra-52
libavformat-unstripped-52
libavutil-unstripped-49
libswscale-extra-0
libswscale-unstripped-0

を入れたらできるようになったが、ffmpegで、3GPをmpegに変換するのができない。

そこで、ffmpegをコンパイルしてみた。

◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆
ここで行う事は、Ubuntuの提供するパッケージ管理機能に重大な影響を与えます。
自分でセキュリティホールの対処、バージョン管理ができない場合は、クラックされたりする危険があります。また、ここに書かれた事を実施した結果、PCが再起不能に陥ったとしても、わしは一切の責任を負いません。
◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆◆Caution◆

まず、ffmpeg野良ビルドする為に、開発系パッケージが必要なので、できるだけSynaptic パッケージ・マネージャで入れられるものを入れる。

libdirac-decoder0
libdirac-dev
libfaac-dev
libgsm1-dev
libmp3lame-dev
libopencore-amrnb-dev
libopencore-amrwb-dev
libspeex-dev
libtheora-dev
libxvidcore-dev
libdc1394-22-dev
libraw1394-dev

libvpxはパッケージに無いので、
http://code.google.com/p/webm/downloads/list から
libvpx-0.9.1.tar.bz2 を取得。

tar xvjf libvpx-0.9.1.tar.bz2
cd libvpx-0.9.1
./configure
make
sudo make install

libnutもパッケージに無く、x264はバージョンが古いと言われるので、

svn co svn://svn.mplayerhq.hu/nut/src/trunk libnut
cd libnut&&make
sudo make install

git clone git://git.videolan.org/x264.git
cd x264/
./configure
make
sudo make install

で、やっとffmpeg で configure ができる。ffmpegのコンパイルの参考サイト(後述)では、patchを当てているけど、マンドクセので当てない 🙂

svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure –enable-gpl –enable-nonfree –enable-pthreads –disable-debug –disable-ffserver –disable-ffplay –enable-libdirac –enable-libschroedinger –enable-libdc1394 –enable-libfaac –enable-libgsm –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –enable-zlib –enable-bzlib –enable-libopenjpeg –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-version3 –enable-libnut –enable-libspeex –enable-libvpx –enable-avfilter –enable-avfilter-lavf
make
sudo make install

ffmpeg は –prefix 指定しないと、 /usr/local/bin にインストールされるが、

noizumi@purplecat:~$ echo $PATH
/home/noizumi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

と、/usr/local の方が優先されるので、Ubuntuのパッケージと同居は可能。
ちなみに、パッケージのffmpegを削除しようとしたら、zoneminderが道連れにされるので、削除してない。

で、動画変換をやってみると、
ffmpeg -y -i MOL003.3GP -acodec libmp3lame test.mpg

[mpeg1video @ 0xa317670] MPEG1/2 does not support 15/1 fps

15fpsはmpegに変換できないのか。
エラーが赤表示で分かりやすい。

一応、パッケージのffmpegでも同じパラメータでやってみると、
/usr/bin/ffmpeg -y -i MOL003.3GP -acodec libmp3lame test.mpg

[mpeg1video @ 0x8186150]MPEG1/2 does not support 15/1 fps

結果は同じ。
うーむ…。凝ったエンコードしないなら、ffmpegコンパイルしなくても、libavcodec-unstripped-52入れた程度で良さそう。

参考にしたぺいづ
http://ubuntu.futene.net/build/ffmpeg.htm

http://d.hatena.ne.jp/amachang/20080624/1214315801

“Ubuntu 10.04でffmpegコンパイル” への7件の返信

  1. はじめまして、東京在住のTKと申します。
    Ubuntu10.04 DeskTop版へFFmpegをインストールしようと思い
    貴サイトを参考にさせていただきました。
    ただ、うまくいかないところがあったので教えてください。

    まず、Synaptic パッケージ・マネージャでlibavcodec-unstripped-52~libraw1394-devを
    とりあえず全部インストしました。

    その後、libvpxはパッケージのところで ./configureをすると
    ~/ffmpeg$ ./configure -enable-libmp3lame
    Unknown option “-enable-libmp3lame”.
    See ./configure –help for available options.
    と表示されます。

    続けて makeをすると
    ~/ffmpeg$ make
    Makefile:1: config.mak: No such file or directory
    libavutil/Makefile:1: libavutil/../config.mak: No such file or directory
    libavutil/../subdir.mak:96: 警告: ターゲット libavutil/' へのコマンドを置き換えます
    libavutil/../subdir.mak:26: 警告: ターゲット
    libavutil/’ への古いコマンドは無視されます
    libavutil/../subdir.mak:96: 警告: ターゲット libavutil/' へのコマンドを置き換えます
    libavutil/../subdir.mak:96: 警告: ターゲット
    libavutil/’ への古いコマンドは無視されます
    Makefile:350: /tests/fate.mak: No such file or directory
    make: *** ターゲット `/tests/fate.mak’ を make するルールがありません. 中止.
    と表示されます。

    何が原因なのか分からないので、よろしければ教えて頂けないでしょうか?

    お忙しいと思いますが、お時間のある時にでもよろしくお願い致します。

  2. TKさんはじめまして。
    > ~/ffmpeg$ ./configure -enable-libmp3lame
    > Unknown option “-enable-libmp3lame”.

    オプション指定が間違っているようです。
    -enable-libmp3lame ではなく、 –enable-libmp3lame (先頭のハイフンは2つ)です。

    ffmpegのconfigureを実行すると、

    noizumi@purplecat:~/src/ffmpeg$ ./configure –enable-gpl –enable-nonfree –enable-pthreads –disable-debug –disable-ffserver –disable-ffplay –enable-libdirac –enable-libschroedinger –enable-libdc1394 –enable-libfaac –enable-libgsm –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –enable-zlib –enable-bzlib –enable-libopenjpeg –enable-libopencore-amrnb –enable-libopencore-amrwb –enable-version3 –enable-libnut –enable-libspeex –enable-libvpx –enable-avfilter –enable-avfilter-lavf
    install prefix /usr/local
    source path /home/noizumi/src/ffmpeg
    C compiler gcc
    ARCH x86 (generic)
    big-endian no

    (中略)

    Enabled outdevs:
    alsa oss

    License: nonfree and unredistributable
    Creating config.mak and config.h…
    noizumi@purplecat:~/src/ffmpeg$

    というように、環境を調べて、config.makとconfig.hというファイルを作って終了します。
    これが完了していないと、makeしてもコンパイルできませんので、まずは必要なパッケージやライブラリを入れて、 ffmpeg の configure が正常に終了する事を目指してください。

  3. こんにちは、お返事ありがとうございます。
    FFmpegのインストールうまくいきました!ありがとうございます!
    お返事のとおり–enable-libmp3lame のハイフンが一個だった事が原因でした。。

    実はWeb会議サーバーを動かしてまして、会議の録画にFFmpegが必要ということで
    Synaptic パッケージ・マネージャでインストールしたのですが
    「libmp3lame」を有効化したものをインストールしないといけないということが分かり
    そこでいろいろ苦労していました。
    会議録画も実際に試したところ問題なくできました!。

    本当にありがとうございました。
    これからも何かありましたらよろしくお願い致します。

  4. TKさん、うまくいったようで何よりです。
    しかし、前に試した時は、再コンパイルしなくても、Ubuntu 10.04のパッケージの ffmpeg で libmp3lame が使えてたように思います。

    ちょっと検証してみます。

  5. お返事ありがとうございます。
    もしうまくいったら やりかた教えてください。
    よろしくお願いします。

コメントを残す

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

CAPTCHA


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