2011年04月20日

FFmpeg rev.29196 ダウンロード

FFmpeg最新版(2011/04/19現在)、rev.29196(e61b83d)のWindows用バイナリを置いておきます。

内蔵AACエンコーダは、まだ実験段階のため、以前使用していたlibfaacや、neroAacEncに比べると音質は良くないです。
まともに動作するようになるまでは、neroAacEncを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。

また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)

ffmpeg_bin-29196.zip
ffmpeg_bin_pentium4-29196.zip (Pentium4最適化版)
ffmpeg_bin_core2-29196.zip (Core2最適化版)
ffmpeg_bin_athlon64-29196.zip (Athlon64最適化版)
ffmpeg_bin_phenom-29196.zip (Phenom最適化版)

以下のライブラリをアップデートしました。
libvpx-0.9.6-150
x264 rev.1937

DVDのVOBファイルから、neroAacEncとlibx264またはlibxvidcoreの組み合わせでエンコードした場合に、以下のようなエラーが出る場合があります。

Stream mapping:
Stream #1.0 -> #0.0
Stream #1.1 -> #0.1
Could not write header for output file #0 (incorrect codec parameters ?)

この場合は、FFmpegのオプションに、
-map 1.0 -map 0.0
を追加してみてください。


バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。

最適化無し版でもエラーが出る場合は、サポート外とします。

zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。

携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。

FFmpegのコンパイルは、以下の記事を参考にしてください。
FFmpegのコンパイル (2011/04/12) w32threads

コンパイル環境:MinGW gcc4.6.0
binutils-2.21
mingwrt-3.18
w32api-3.17

各ライブラリのバージョンは、以下の通りです。
nasm-2.09.08
yasm-1.1.0
pthreads-w32 release 2.9.0
zlib-1.2.5
bzip2-1.0.6
gsm-1.0.13
lame-3.98.4
opencore-amr-0.1.2
vo-aacenc-0.1.0
vo-amrwbenc-0.1.0
openssl-1.0.0d
rtmpdump-2.3
libogg-1.2.2
aoTuV Beta6.02 (libvorbis-1.3.2)
libtheora-1.1.1
libvpx-0.9.6-150
x264 rev.1937 (make fprofiled)
xvidcore-1.3.1

最適化オプションは、以下のようにしています。
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-gpl --enable-version3 --enable-postproc --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libvorbis --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libxvid --enable-libvpx --enable-libx264 --disable-ffserver --disable-ffplay --disable-ffprobe --enable-avisynth --enable-small --enable-w32threads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"

※--extra-cflagsは、最適化の種類により異なります。
posted by あべちん at 02:20 | Comment(4) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
--disable-decoder="libvpx"を付けてないようですが、今はまだffmpeg内蔵Decoderの方が良いみたいです。
Posted by X5-452 at 2011年04月29日 18:19
X5-452さん、こんにちは。管理人です。

情報ありがとうございます。
--disable-decoder="libvpx"については、全く知りませんでした。

情報ソースなどご存じでしたら、教えていただけませんでしょうか。
Posted by あべちん at 2011年05月06日 14:49
はじめに見た情報は
http://hibari.2ch.net/test/read.cgi/linux/1232095273/389
で、納得できる情報を探してましたが見つかりませんでした。
http://ffmpeg.arrozcru.org/autobuilds/
↑や色んな海外サイト等をサーフィンしたところ、大半のビルダーが--disable-decoder="libvpx"を付けてました。
自分は--disable-decoder="libvpx"でしてますが・・・
今はまだffmpeg内蔵Decoderの方が"良いみたい"と言う事で。
Posted by X5-452 at 2011年05月06日 15:14
X5-452さん、こんにちは。管理人です。

私もいろいろ探したのですが、結局よくわかりませんでした。

Announcing the world’s fastest VP8 decoder: ffvp8
http://x264dev.multimedia.cx/archives/499
という記事を見つけたので、ffmpegを --disable-decoder="libvpx" オプション無しと、オプション有りでビルドして、以下の各3パターン、合計6パターンでテストしてみました。

1) -vcodec 指定なし
time ffmpeg -i sintel_trailer_1080p_vp8_vorbis.webm -vsync 0 -an -f null -

2) -vcodec vp8
time ffmpeg -vcodec vp8 -i sintel_trailer_1080p_vp8_vorbis.webm -vsync 0 -an -f null -

3) -vcodec libvpx
time ffmpeg -vcodec libvpx -i sintel_trailer_1080p_vp8_vorbis.webm -vsync 0 -an -f null -

--disable-decoder="libvpx" オプション有りで-vcodec libvpx指定は、
Unknown decoder 'libvpx'
になります。
--disable-decoder="libvpx" オプション無しで-vcodec libvpx指定の時だけ、若干デコードが遅く、それ以外はほぼ同タイムでした。

ということで、デフォルトで内蔵vp8デコーダーが使われているぽいので、--disable-decoder="libvpx" オプション無しで行くことにしました。

入力ファイル(-i)の前に-vcodec指定すると、デコーダーが切り替わるとか、初めて知りました。

いろいろとありがとうございました。
Posted by あべちん at 2011年05月08日 19:38
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/44450160
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック