2008/09/04 追記
r15029以降、-rc_eq "blurCplx^(1-qComp)" は不要になりました。
情報ありがとうございました。> おにさん
今まで出来ていたのに、最近できなくなったという場合は、以下のオプションを適当な所に追加してください。
-rc_eq "blurCplx^(1-qComp)"
もう一つ、libxvidでこんなエラーが出る場合があります。
[libxvid @ 01349AE0]Invalid pixel aspect ratio 0/1
Video encoding failed
A>Dialog : 処理実行中にエラーが発生しました [Error:1]
その場合は、-aspectオプションも追加してください。
画面サイズに合わせて、-s 640x480 なら
-aspect 4:3
などとなります。
ffmpeg_bin-15151.zip
ffmpeg_bin_pentium4-15151.zip (Pentium4最適化版)
ffmpeg_bin_athlon64-15151.zip (Athlon64最適化版)
以下のライブラリをアップデートしました。
pthreads-w32 release 2.9.0
x264 r956
今回も、自前でビルドしたMinGW gcc4.3.2を使用しています。
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Sempronの一部など)をお使いの方は、最適化無し版を使ってみてください。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
pthreadGC2.dllは不要です。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
携帯動画変換君の設定は、こちらの記事を参考にしてください。
FFmpegのコンパイルは、こちらの記事を参考にしてください。
iPod、iPhone、携帯での動画再生におすすめの、リチウム電池内蔵AC充電器はこちら。
コンパイル環境:MinGW gcc4.3.2
各ライブラリのバージョンは、以下の通りです。
nasm-2.03.01
yasm-0.7.1
pthreads-w32 release 2.9.0
zlib-1.2.3
a52dec-0.7.4
faac-1.26
faad2-2.6.1
gsm-1.0.12
lame-398
libnut-659
libogg-1.1.3
libvorbis-1.2.0
libtheora-1.0beta3
x264 rev.956
xvidcore-1.1.3
最適化オプションは、以下のようにしています。
configureのオプションに--enable-smallを付けると、gccのオプションに-Osが付き、-O4にしても無駄なことが分かりましたので、-O4は外しました。
--enable-smallを付けなければ、gccのオプションに-O3が付きます。
最適化無し版
--extra-cflags="-mtune=generic -mno-sse2 -fno-strict-aliasing"
Pentium4最適化版
--extra-cflags="-mtune=pentium4 -mfpmath=sse -msse -fno-strict-aliasing"
Athlon64最適化版
--extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"
configureオプションは以下の通りです。
$ ./configure --enable-memalign-hack --enable-postproc --enable-swscale --enable-gpl --enable-liba52 --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libvorbis --enable-libtheora --enable-libx264 --enable-libxvid --disable-ffserver --disable-ffplay --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-static --extra-cflags="-fno-strict-aliasing"
configureのメッセージはこちら。



前に書き込みした修正ですが
2つの情報は自分では直せなかったので
ffmpegのMLに情報があったのと見つけましたMLの書き込みを見て修正しました
http://lists.mplayerhq.hu/pipermail/ffmpeg-user/2008-August/017007.html
これと
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2008-August/051924.html
これを見ました
pthreads-w32 のほうは 2.9.0にあげるのがよさそうですね
週末に試してみます
いろいろ情報が交換できて助かります
-rc_eq "blurCplx^(1-qComp)"
のオプションの件ですが、
r15029では、必要ないそうです。
http://mobilehackerz.jp/archive/wiki/index.php?%BA%C7%BF%B7FFmpeg%2FFAQ#i2307c49
私も今回からはずしてみましたが、
問題なく使えています。
MLはマメにチェックした方がよさそうですねー。
こちらこそ、蓄電さんの情報、いつも助かってます。
ではまた〜
> -rc_eq "blurCplx^(1-qComp)"
> のオプションの件ですが、
> r15029では、必要ないそうです。
あら、ホントですね。
私も試してみました。
記事の方も修正しておきます。
情報ありがとうございました。
-threads
オプションを使ってもエラーにならなくなりました。
だいぶ前にコメントを書き込んだっきりそのままですいませんでした。
あとコメントにお返事いただいてどうもありがとうございます。
あれから自分でもffmpeg他のビルドを試していていくつか気が付いた点をまたコメントさせていただきます。
・liba52 と xvid は cvs で持ってこれる新しいバージョンがあります。
xvid の cvs は ver. 1.2 でマルチスレッド対応になっているみたいです。
あと、xvid に x264 の VAQ を移植したみたいなパッチがありました。
http://forum.doom9.org/showthread.php?t=135093
・ffmpeg の configure で --enable-libfaad を指定して faad をリンクしても、
aac のデコードに libav 内蔵の aac が使われてしまうバイナリになってしまうみたいです(もう直っているかもしれませんが)。
これだと、HE-AAC とかがデコードできないので、configure の 848 行目あたりの # decoders / encoders のところに、
aac_decoder_deps="gpl !libfaad"
とか追加して faad をリンクするときは内蔵の aac デコーダは無効にするようにしたら元に戻りました。
あと、ffmpeg 本体とは関係ないんですが8月末にmsysが更新されていたので
試しにアップデートしてみたら、patch が使えなくなりました(どんなパッチでも patch failed になる)。
で、結局 patch.exe だけ msys-DTK の古いのに入っているのを使ってます。
msys のアップデートのときは一応今の環境のバックアップを取っておいたほうが良いと思います。
いろいろ長々と書いてしまってすいません。
もしご迷惑でなければ、またよろしくお願いします。
返信が遅くなってすみません。
動作報告、ありがとうございました。
pthreadをアップデートしたのが良かったのでしょうか。
また色々いじってみましたので、暇なときにでも試してみていただけるとありがたいです。
とりあえず、FFpmeg rev.15340にxvidcoreとa52decのcvs版を入れてみました。
xvidcoreのマルチスレッドは私の環境では効いてないような感じです。
コンパイルの仕方がまずいのかも?
VAQパッチとかfaadとかは、時間のあるときにボチボチ試してみます。