2010年04月20日

FFmpeg rev.22912 ダウンロード

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

内蔵AACのエンコード(出力)は実験段階のため、まだ音質は良くないです。
まともに動作するようになるまでは、Nero AAC コーデックを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。

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

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

以下のライブラリをアップデートしました。
yasm-1.0.0
x264 rev.1542
rtmpdump-2.2c

今回より、gcc4.5.0を自前でビルドして使用しています。

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

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

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

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

FFmpegのコンパイルは、こちらの記事を参考にしてください。

コンパイル環境:MinGW gcc4.5.0
binutils-2.20.1-2
mingwrt-3.18
w32api-3.14

各ライブラリのバージョンは、以下の通りです。
nasm-2.08.01
yasm-1.0.0
pthreads-w32 release 2.9.0
zlib-1.2.4
bzip2-1.0.5
faac-1.28(deleted)
faad2-2.7
gsm-1.0.13
lame-3.98.4
libnut-664(deleted)
opencore-amr-0.1.2
openssl-0.9.8n
rtmpdump-2.2c
libogg-1.2.0
libvorbis-1.3.1
libtheora-1.1.1
x264 rev.1542
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-librtmp --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libx264 --disable-ffserver --disable-ffplay --disable-ffprobe --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"

※--extra-cflagsは、最適化の種類により異なります。
posted by あべちん at 00:58 | Comment(10) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
こんばんは。
突然ですが、前々から間違ったフレームレートが読み込まれます。Avisynthを使うと余計ひどくなります。QuickTimeもffshowも最新で昔のFFmpegなら、何ともありません。最新に換えると変になってしまい、新しいものが使えません。できればアドバイスをお願いします。

Posted by monta at 2010年04月21日 00:13
すみません。ffdshowですね。
Posted by monta at 2010年04月21日 00:14
いつもありがとうございます。
今回のバイナリから、h.264へのエンコード中にエラーが発生するようになってしまいました。
エラーは、処理の途中で発生します。
環境は、windows7 x64で、使用したバイナリは、ffmpeg_bin_phenom-22912.zip です。
今までのバイナリでは発生しませんでした。
エンコードのオプションは、
ffmpeg" -y -i "<%TemporaryFile%>.aac" -acodec copy -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -vcodec libx264 -threads 0 -crf 24 -level 30 -g 200 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -f mp4 "<%OutputFile%>.mp4""
です。

取り急ぎご報告まで。
Posted by V36 at 2010年04月22日 06:50
montaさん、こんにちは。管理人です。

昔のFFmpegというのは、携帯動画変換君に同封されているもののことでしょうか。

FFmpegは、各種の映像と音声コーデックが個別に開発されていて、特定のものだけダメだったりすることがあります。

入力ファイルの形式をできるだけ詳しく、FFmpegの設定などを示していただけると、ご存じの方が答えてくれるかもしれません。

音声のズレ方も、
最初から最後まで同じタイミングでずれる
最初は合っていてだんだんズレが大きくなる
などで、対策が違います。

あとは、MobileHackerzさんのKnowledgebase Wikiで解決済みだったりすることもありますので、探してみてください。

解決になっていなくてすみません。
Posted by あべちん at 2010年04月22日 18:53
V36さん、こんにちは。管理人です。

ご報告ありがとうございました。

V36さんの環境が変わっていないとすれば、一番あやしいのは、コンパイラをバージョンアップしたことですね。

次は、GCC 4.5.0と4.4.3の両方でビルドしてみます。
Posted by あべちん at 2010年04月22日 19:02
あべちんさん
エラーの内容を確認していなかったので、確認しようと思い、
なんどもエンコードを実行しましたが、エラーが再現しません。
記憶では、なにかのruntimeエラーだったと思います。

昨晩は2度エラーが発生し、再起動後も再度、エラーが出ました。
今朝も電源投入後に2度エラーを確認していましたが、今晩はな
んどやってもエラーが出ません。私特有の環境による問題かもし
れません。お騒がせしてすみません。
なにかわかったら、また報告させて頂きます。
Posted by V36 at 2010年04月22日 21:27
上のコメントを書いた後すぐに、エラーが再現しました。
エラー内容は、
Microsoft Visual C++ Runtime Library
Runtime Error!
abnormal program termination
というものでした。
エラー表示をアップしました。
http://fx.104ban.com/up/src/up16047.jpg
Posted by V36 at 2010年04月22日 22:00
V36さん、こんにちは。管理人です。

Microsoft Visual C++ Runtime Libraryといえば、
C:\WINDOWS\system32\msvcrt.dll
が、何かインストールした時に、古いバージョンに置き換わってしまったということはありませんか?

私の環境ではエラーが再現できないので、なかなか難しい問題ですね。
Posted by あべちん at 2010年04月23日 05:59
あべちんさん

返信ありがとうございます。
msvcrt.dllのバージョンを確認してみました。
ファイルバージョン:7.0.7600.16385
でした。windows7標準品の様です。

しばらく様子をみます。
エラーの頻度た高ければ、また報告させて頂きます。
Posted by V36 at 2010年04月23日 22:15
V36さん、こんにちは。管理人です。

msvcrt.dllは新しいバージョンのようですね。

何か他のソフトが動作した時にエラーになるという可能性もあります。
イベントビューアに、エラーが出た時のログが残っているかもしれません。

gcc 4.4.3と4.5.0両方でFFmpegをビルドしてアップしようかと思ったのですが、かなり面倒なので、しばらくgcc 4.5.0で行こうと思います。
Posted by あべちん at 2010年04月27日 22:08
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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