FFmpeg最新版(2010/1/14現在)、rev.21211のWindows用バイナリを置いておきます。
x264は安定しているのか、開発者の皆さんもお休み中なのか、今回もFFmpeg本体のみの更新です。
その他、内蔵AACのエンコード(出力)は実験段階のため、まだ音質は良くないです。
まともに動作するようになるまでは、Nero AAC コーデックを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。
また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)
ffmpeg_bin-21211.zip
ffmpeg_bin_pentium4-21211.zip (Pentium4最適化版)
ffmpeg_bin_core2-21211.zip (Core2最適化版)
ffmpeg_bin_athlon64-21211.zip (Athlon64最適化版)
ffmpeg_bin_phenom-21211.zip (Phenom最適化版)
2010/1/16 追記
x264のエンコードで、「-threads 0」とした時の自動判別が機能していませんでした。
修正した物をアップし直しましたので、「-threads 0」を指定してエンコードが遅くなったという方は差し替えてくださいますよう、お願いします。
以下、自力でコンパイルしている方向けの情報です。
---------- ここから ----------
FFmpeg rev.20955の修正で、削らなくて良いコードまで削ってしまったようです。
Do not explicitely set thread_count in the codec context.
This is already done by avcodec_thread_init().
この修正のうち、余計に削ったコードを元に戻すパッチです。
ffmpeg-thread_count.diff
---------- ここまで ----------
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。
最適化無し版でもエラーが出る場合は、サポート外とします。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
pthreadGC2.dllは不要です。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
FFmpegのコンパイルは、こちらの記事を参考にしてください。
コンパイル環境:MinGW gcc4.4.2
各ライブラリのバージョンは、以下の通りです。
nasm-2.07
yasm-0.8.0
pthreads-w32 release 2.9.0
zlib-1.2.3
bzip2-1.0.5
faad2-2.7
gsm-1.0.13
lame-398-2
libnut-664
opencore-amr-0.1.2
libogg-1.1.4
libvorbis-1.2.3
libtheora-1.1.1
x264 rev.1376
xvidcore-1.2.2
最適化オプションは、以下のようにしています。
configureのオプションに--enable-smallを付けると、gccのオプションに-Osが付きます。
--enable-smallを付けなければ、gccのオプションに-O3が付きます。
最適化無し版
--extra-cflags="-march=i686 -mtune=generic -fno-strict-aliasing"
Pentium4最適化版
--extra-cflags="-mtune=pentium4 -mfpmath=sse -msse -fno-strict-aliasing"
Core2最適化版
--extra-cflags="-mtune=core2 -mfpmath=sse -msse -fno-strict-aliasing"
Athlon64最適化版
--extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"
Phenom最適化版
--extra-cflags="-mtune=amdfam10 -mfpmath=sse -msse -fno-strict-aliasing"
configureオプションは以下の通りです。
$ ./configure --enable-memalign-hack --enable-postproc --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaad --disable-decoder=aac --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libx264 --disable-ffserver --disable-ffplay --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"
※--extra-cflagsは、最適化の種類により異なります。
configureのメッセージはこちら。
こんばんは!
あけおめ(=^・^=)ノ
早速 ffmpeg_bin_core2-21211.zip (Core2最適化版)を使いエンコしました。
ところがエンコ速度が遅いです。
iniに[-threads 0]を入れて有ります。
libx264でエンコです。
CPU使用率を見ると30%ぐらいでFFmpeg rev.20925だと80%以上いきます。
ひょっとして私だけ??
ヽ(д`ヽ)。。オロオロ。。(ノ´д)ノ
Core2ってことはCPUも2つですよね?
だったら両方犠牲になりますが -threads 2にしてみては?
速攻で修正しました。
( ・д・)/−−=≡(((卍 シュッ!!
ファイル名は同じですので、上書きしていただければ良いと思います。
FFmpeg rev.20955のアップデートで、余計な修正が入っていたようです。
ご報告ありがとうございました。
コメントありがとうございます。
libx264は、-threads 0 と指定すると、自動で判別して
(CPUのコア数 x 3) / 2
に、thread数を変換してくれるようになっているのですが、ちゃんと機能していなかったようです。
修正したものをアップし直しましたので、今度は大丈夫だと思います。
こんにちは!
Kazuki Ashiyaさん
ありがとうです。
うちのは4つなんです。
だから2つにしたら遅くなります(=^・^=)ノ
管理人さん
直りました!!
20925の方が黒(髪の毛)と赤が濃く感じ・・・
21211はちょっと薄いかな?でもシャープな感じです。
ありがとうございます。(=⌒o⌒=)ノ
Core2をダウンロードさせて頂いたのですが、Carvingで変換する際pspへの変換に失敗してしまいます。
mpegへの変換には問題ありませんでした。
Carvingは使ったことがありませんので、分かりません。
失敗すると言っても、エラーで強制終了するとか、出力された動画が不正なデータで再生できないなど色々ありますので、もっと詳しく状況が分かれば、対策方法も見つかるかもしれません。