2013年01月10日

FFmpeg rev.48664 ダウンロード

あけましておめでとうございます。
今年もよろしくお願いします。

FFmpeg最新版(2013/01/09現在)、rev.48664(5b69c07)のWindows用バイナリを置いておきます。

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

2013/01/10 23:50頃 追記
x264を、rev.2230からrev.2245に更新しました。
rev.2230のバグは修正されています。

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

ffplay_bin-48664.zip

公式サイトで、2013/01/07にFFmpeg 1.1としてリリースされたのは、git版ではrev.48518(58edabb)に相当します。

以下のライブラリをアップデートしました。
nasm-2.10.07
opus-1.0.2
libsoxr-0.0.5-20130109
libvpx-v1.2.0-1426-g27825e9

2013/01/10 23:50頃 追記
以下のライブラリをアップデートしました。
libsoxr-0.0.5-20130110
x264 rev.2245
x264のpthreads関連の更新に合わせて、FFmpegも修正しました。
ffmpeg-w32pthreads-20130110.diff

その他、mingw-w64-v1.0.6 から mingw-w64-v1.0.7 にアップデートして、全部コンパイルし直しました。

※x264 rev.2230はバグがあります。修正内容についてはこちらの記事をお読み下さい。

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

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

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

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

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


コンパイル環境:MinGW gcc-4.7.2
binutils-2.23.1
mingw-w64-v1.0.7

各ライブラリのバージョンは、以下の通りです。
nasm-2.10.07
yasm-1.2.0
zlib-1.2.7
bzip2-1.0.6
libbluray-0.2.3
libcaca-0.99.beta18
libcdio-0.90
gsm-1.0.13
libmodplug-0.8.8.4
lame-3.99.5
openjpeg-1.5.1
opus-1.0.2
opencore-amr-0.1.3
vo-aacenc-0.1.2
vo-amrwbenc-0.1.2
polarssl-1.2.3
rtmpdump-2.4-20121209 PolarSSL版
libogg-1.3.0
aoTuV Beta6.03 (libvorbis-1.3.3パッチ)
libtheora-1.1.1
speex-1.2rc1
twolame-0.3.13
libsoxr-0.0.5-20130140
libvpx-v1.2.0-1426-g27825e9
x264 rev.2245 (make fprofiled)
xvidcore-1.3.2
libiconv-1.14
freetype-2.4.10
expat-2.1.0
fontconfig-2.10.2
fribidi-0.19.5
libass-0.10.1
SDL-1.2.15

最適化オプションは、以下のようにしています。

最適化無し版
--extra-cflags="-march=i686 -mtune=generic"

Pentium4最適化版
--extra-cflags="-mtune=pentium4 -mfpmath=sse -msse" --cpu=pentium4

Core2最適化版
--extra-cflags="-mtune=core2 -mfpmath=sse -msse" --cpu=i686

Athlon64最適化版
--extra-cflags="-mtune=athlon64 -mfpmath=sse -msse" --cpu=i686

Phenom最適化版
--extra-cflags="-mtune=amdfam10 -mfpmath=sse -msse" --cpu=i686

configureオプションは以下の通りです。
$ ./configure --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr ---enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --enable-w32threads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse" --optflags="-O2 -finline-functions"

※--extra-cflagsは、最適化の種類により異なります。
posted by あべちん at 02:22 | Comment(15) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
今年もよろしくお願い致します。
あべちんさんのrev.48664(5b69c07)の公開直後に、
x264 rev.2230の例のバグ修正版が出るという皮肉w
「x264 core129 r2245 bc13772」が公開されたので、
お手数をおかけしますが、組み込み済のバイナリや、
パッチなどもあわせて公開して頂けると助かります。
Posted by 少佐 at 2013年01月10日 06:21
少佐さん、こんにちは。管理人です。
今年もよろしくお願いします。

x264は1ヶ月以上更新されてなかったのに、このタイミングとは、なんという間の悪さ(笑)

すぐアップし直したいところですが、http://x264.nl/ のcurrent revisionが変わらない時は、続けて更新が入ることがありますので、もう少し様子を見てみます。

あと、
Fix pthread_join emulation on win32 and BeOS
http://git.videolan.org/gitweb.cgi?p=x264.git;a=commitdiff;h=55b5162d7ad9a70e2b6ae5ba3f743a35c2135aaf
この修正は、FFmpegの
libavcodec/w32pthreads.h
でも同じことをしているので、FFmpegにも修正が入るかもしれません。

ということですので、少々お待ち下さい。
Posted by あべちん at 2013年01月10日 20:55
少佐さん

とりあえず、x264をrev.2245に差し替え、ちょっと修正してアップしました。

ご確認くださいませ。
Posted by あべちん at 2013年01月10日 23:59
了解です。
キリのいいタイミングで構いませんのでw
Posted by 少佐 at 2013年01月11日 00:34
いつもffmpeg使わせていただいてます。
変換君を使ってx264の動画を変換しているのですが、以下のようなiniでrev.47289までは変換できていましたが、rev.47813,48664で変換エラーとなってしまいます。x264のバージョンアップで何か使ってはいけない命令が追加されたのでしょうか・・・


Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 48000 "<%TemporaryFile%>.wav""
Command1=""<%AppPath%>\cores\neroAacEnc" -lc -br 128000 -if "<%TemporaryFile%>.wav" -of "<%TemporaryFile%>.aac""
Command2=""<%AppPath%>\cores\ffmpeg" -threads 4 -y -i "<%TemporaryFile%>.aac" -i "<%InputFile%>" -map 1:v:0 -map 0:0 -pass 1 -passlogfile "2pass-log" -acodec copy -vcodec libx264 -coder vlc -level 31 -s 1280x720 -aspect 16:9 -r 24000/1001 -b:v 1024k -me_method hex -me_range 16 -subq 1 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -fast-pskip 1 -flags +mv4+loop+bitexact -cmp +chroma -partitions pi4x4,pp8x8,pp4x4 -f mp4 "<%TemporaryFile%>.m4a""
Command3=""<%AppPath%>\cores\ffmpeg" -threads 4 -y -i "<%TemporaryFile%>.aac" -i "<%InputFile%>" -map 1:v:0 -map 0:0 -pass 2 -passlogfile "2pass-log" -acodec copy -vcodec libx264 -coder vlc -level 31 -s 1280x720 -aspect 16:9 -r 24000/1001 -b:v 1024k -me_method hex -me_range 16 -subq 1 -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 -qcomp 0.6 -qmin 10 -qmax 51 -qdiff 4 -fast-pskip 1 -flags +mv4+loop+bitexact -cmp +chroma -partitions pi4x4,pp8x8,pp4x4 -f mp4 "<%TemporaryFile%>.m4a""
Command4=""<%AppPath%>\cores\ATOMChanger" "<%TemporaryFile%>.m4a" "<%OutputFile%>.MP4" "Camouflage_MP4_for_PSP.ini""
Command5="rm "2pass-log-0.log""
Command6=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -f image2 -ss 5 -vframes 1 -s 320x180 -an "<%OutputFile%>.THM""
Command7="cmd /c "del "<%TemporaryFile%>*.*"""

以下がエラーログです。
+chromaオプションがだめっぽいのでしょうか・・・
そこらへんをいじって再試行しても様々なエラーが出てだめっぽいのです。。。

Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isom
creation_time : 2013-01-09 18:46:08
Duration: 00:22:59.99, start: 0.000000, bitrate: 1600 kb/s
Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 1423 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc
Metadata:
creation_time : 2013-01-09 18:46:07
handler_name : L-SMASH Video Media Handler
Stream #1:1(jpn): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 173 kb/s
Metadata:
creation_time : 2013-01-09 18:15:22
handler_name : Sound Media Handler
[NULL @ 044CF460] [Eval @ 0028EB7C] Undefined constant or missing '(' in 'chroma'
[NULL @ 044CF460] Unable to parse option value "+chroma"
[NULL @ 044CF460] Error setting option cmp to value +chroma.
Output #0, mp4, to 'C:\Users\TANUTANU\AppData\Local\Temp\2BCF0E8F-6E0BB6FF-FB757E95-FDCFB5D3.m4a':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: M4A mp42isom
encoder : Nero AAC codec / 1.5.4.0
Chapter #0.0: start 0.054667, end 1380.053333
Metadata:
title :
Stream #0:0(und): Video: none, yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=10-51, pass 1, 90k tbn, 23.98 tbc
Metadata:
creation_time : 2013-01-09 18:46:07
handler_name : L-SMASH Video Media Handler
Stream #0:1(und): Audio: aac, 48000 Hz, stereo, 127 kb/s
Metadata:
creation_time : 2013-01-12 07:19:05
handler_name : Sound Media Handler
Stream mapping:
Stream #1:0 -> #0:0 (h264 -> libx264)
Stream #0:0 -> #0:1 (copy)
Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
A>Dialog : 処理実行中にエラーが発生しました [Error:1]
T>Finished.
Posted by たぬたぬ at 2013年01月12日 16:28
-cmp +chromaをなくしたらいけました。
あと-partitions のオプションの書き方も間違えていました。。。

chromaオプションはあまりこだわってはいませんでしたが、今まで変換できていたものができなくなると少し嫌ですね。。。
Posted by たぬたぬ at 2013年01月12日 16:53
たぬたぬさん、こんにちは。管理人です。

試してみたところ、どのrev.からか分かりませんが、chromaの前に「+」が付いているとエラーになりますね。
-cmp chroma
にすれば大丈夫でした。

x264もいつからか分かりませんが、chroma_meはデフォルトで1になっています。

または、
-x264opts chroma_me=1 でON
-x264opts chroma_me=0 でOFF
ということもできます。

あと、ログなど、テキストの量が多いものは、pastebinなどを利用していただけると助かります。
Posted by あべちん at 2013年01月12日 22:48
ああ、なるほど・・・ +が余計でしたか・・・
しかもいつの間にか1がデフォルトになっていたのですね。
ご教授ありがとうございます。

テキストの件はすみませんでした、次回からpastebin使わせていただきます。
Posted by たぬたぬ at 2013年01月13日 10:47
たぬたぬさん

pastebinは、コメントしてくださる皆様にお願いしたいことですので、あまり気になさらないでくださいね。

-cmp chroma は、x264でデフォルト1になっているだけかと思ったら、明記した時としてない時でエンコードした動画のサイズが違ったので、他に何か影響しているようです。

動画に記録されるx264のオプションはどちらも同じでした。

-cmp chroma は付けておいた方が良さそうです。
Posted by あべちん at 2013年01月13日 14:31
素人ですので詳しいことはわかりませんが参考までにご報告。

このバージョンで、ビデオフィルタのYadifについて、従来の記述でエラーが出ました。検索したところ同様の報告がありました。
https://ffmpeg.org/trac/ffmpeg/ticket/2128
パッチもある?みたいです。

あんまり皆さんYadif使ってないのかな?
Posted by ありがたく使わせてもらってる者 at 2013年01月20日 17:47
ありがたく使わせてもらってる者さん、こんにちは。管理人です。

情報ありがとうございます。
今までyadifについてのコメントが無かったということは、あまり使われていないのかもしれません。

日付を見たら、FFmpeg rev.48664をアップしてからまもなくyadifの修正が入ってるんですね。

次は修正されていますので、いつになるか分かりませんが、しばらくお待ち下さい。
Posted by あべちん at 2013年01月23日 01:06
「FFmpeg」の旧バージョンに複数の脆弱性
21日にリリースされたv1.0.2で修正済み
http://www.forest.impress.co.jp/docs/news/20130129_585472.html
Posted by bc at 2013年01月30日 23:15
お世話になっております。

ffmpegの -map の使い方を教えてください。
Webを見ると、 0.1:0.0 の書き方と 0:1 の様な書き方の2通りがでています。
それぞれ、どの様な意味を持っているのでしょうか。
Posted by y,y at 2013年02月03日 16:31
bcさん、こんにちは。管理人です。

情報ありがとうございます。

2013/02/03時点の最新版をアップしましたので、ご利用下さい。
Posted by あべちん at 2013年02月03日 18:40
y,yさん、こんにちは。管理人です。

-mapオプションについては、私も完璧に使いこなしているわけではありませんので、なかなか説明するのは難しいです。

DVDで日本語と英語の音声が入っているような場合、どちらを取り出すか選択できたりするのですが、細かいことまではよく分かりません。
申し訳ありません。
Posted by あべちん at 2013年02月03日 18:54
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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