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
はじめまして、東京在住の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/’ への古いコマンドは無視されますlibavutil/../subdir.mak:26: 警告: ターゲット
libavutil/../subdir.mak:96: 警告: ターゲット
libavutil/' へのコマンドを置き換えます
libavutil/’ への古いコマンドは無視されますlibavutil/../subdir.mak:96: 警告: ターゲット
Makefile:350: /tests/fate.mak: No such file or directory
make: *** ターゲット `/tests/fate.mak’ を make するルールがありません. 中止.
と表示されます。
何が原因なのか分からないので、よろしければ教えて頂けないでしょうか?
お忙しいと思いますが、お時間のある時にでもよろしくお願い致します。
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 が正常に終了する事を目指してください。
こんにちは、お返事ありがとうございます。
FFmpegのインストールうまくいきました!ありがとうございます!
お返事のとおり–enable-libmp3lame のハイフンが一個だった事が原因でした。。
実はWeb会議サーバーを動かしてまして、会議の録画にFFmpegが必要ということで
Synaptic パッケージ・マネージャでインストールしたのですが
「libmp3lame」を有効化したものをインストールしないといけないということが分かり
そこでいろいろ苦労していました。
会議録画も実際に試したところ問題なくできました!。
本当にありがとうございました。
これからも何かありましたらよろしくお願い致します。
TKさん、うまくいったようで何よりです。
しかし、前に試した時は、再コンパイルしなくても、Ubuntu 10.04のパッケージの ffmpeg で libmp3lame が使えてたように思います。
ちょっと検証してみます。
お返事ありがとうございます。
もしうまくいったら やりかた教えてください。
よろしくお願いします。