2009年12月27日

FFmpeg rev.20925 ダウンロード

FFmpeg最新版(2009/12/27現在)、rev.20925のWindows用バイナリを置いておきます。

年末で開発者のみなさんも忙しいのでしょうか。
今回はFFmpeg本体のみの更新で、目立った更新はありません。

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

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


バイナリはどれを使っても大丈夫だと思いますが、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
faac-1.28(deleted)
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のメッセージはこちら
posted by あべちん at 13:15 | Comment(16) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
初めてここのFFmpegを使わせてもらったのですがh264の変換がうまくいきません。いろいろ設定をためしてみても↓のエラーが出てしまいます;;
Error while opening encoder for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height
Posted by mai at 2009年12月30日 00:49
あべちんさん
ご無沙汰しております
蓄電です

仕事が忙しくなったのと
生活環境が変わって今年の後半はあまり
ffmpegいじれれませんでした・・
ブログも全然更新してないです_no
年末年始休みで浦島状態から追いつきそうなので自分の方のバージョンもUPできそうです
x264とかかなり変わってて大変でした・・

今年一年お世話になりました
書き込み等はしてなくても
ROMってます!

来年もよろしくお願いします
Posted by 蓄電 at 2009年12月31日 21:30
あべちんさん、あけましておめでとうございます。

さて、新しいiPodが手に入ったので、PVを入れてみようと思い、自分でコンパイルしたものを使うと、なぜか落ちるのです。
エラーで終了するのではなく、落ちるのです。半ば強制終了に近いかと。

しかし、あべちんさんのバイナリでは何事もなく進むのです。

どうも悪さをしているのはlibfaacのようで、配布用にコンパイルしている方では特に問題なく進みました。

NeroAacEncがあるので構わないのですが、一応libfaacを含めている方もいるかもしれないので、報告しておきます。

今年も一年よろしくお願いします。
Posted by Kazuki Ashiya at 2010年01月04日 10:56
ひとつ追加。

gsmを置いているページがなぜか消滅しました。ソースコードは、http://mirror.aarnet.edu.au/debian/pool/main/libg/libgsm/で入手可能ですが、万が一のことを考えて手元に置いておくほうが無難かと。
Posted by Kazuki Ashiya at 2010年01月04日 18:36
maiさん

以下のスレッドを参照してみてください。
自分はこれで解決しました。

http://blog.k-tai-douga.com/article/33758507.html#comment
Posted by KANAAN-PEPO at 2010年01月05日 18:38
maiさん、あけましておめでとうございます。管理人です。

当サイトへご訪問いただきまして、ありがとうございます。

x264のエラーについて、以下の記事の方法で解決すると思います。
http://blog.k-tai-douga.com/article/34604396.html

参考になれば幸いです。
Posted by あべちん at 2010年01月07日 11:32
蓄電さん、あけましておめでとうございます。管理人です。

お元気そうで安心しました。

私は年末から1月5日まで旅に出ていたため、お返事が遅くなってしまいました。

ニュースなんかを見ていると、不況でも仕事があるというのはありがたいことですね。

今年もよろしくお願いします。
Posted by あべちん at 2010年01月07日 11:44
Kazuki Ashiyaさん、あけましておめでとうございます。管理人です。

libfaacの情報ありがとうございました。

gsmのページ、消えちゃってますね。
何か問題でもあったのでしょうかね?

ソースコードは、個別記事の方にアップしておきます。

今年もよろしくお願いします。
Posted by あべちん at 2010年01月07日 11:49
KANAAN-PEPOさん、あけましておめでとうございます。管理人です。

コメントありがとうございました。

このx264の質問は忘れた頃にやってくるので、1つの記事にまとめました。

次のFFmpegの更新記事から、注意書きを入れておきます。

今年もよろしくお願いします。
Posted by あべちん at 2010年01月07日 11:55
こんXXは

先日からいろいろやってみて以下の現象を捕まえましたので報告しておきます。

1.NeroAacEncおよびffmpeg-15972以外のAACのエンコードをしたファイルをUniteMovieで結合すると音ずれが発生する。

yamb-2.1.0.0を使用して結合しようとするとパソコンでの再生時に結合したファイルの数だけ再生プレイヤーウィンドウが表示される。(自分の場合、MediaPlayerClassic)

本現象は、エンコードしたファイルの結合を行わなければ発生しません。
なお、QuickTimePlayerを使用しての結合では問題ない「かも」の状態です。
(テストが追いついてません;_;)

詳細がわかり次第、また追って報告に来ます。

2.KANAAN-PEPOが普段やっていること
(1)BDレコーダーで録画、BD-REからリッピングを行ってmpeg-tsを取り出す
(2)欲しい場所をmurdocCutterを使用して切り抜く
(3)VLCでmpeg-psに変換をかけてから携帯動画変換君にかける
(4)UniteMovieでばらばらのファイルを結合する

まず、(3)なんですが、ffmpegがmpeg-tsの音声を100%かならず取り出すことができないという問題があります。よって、VLC変換をかけてmpeg-psにしているというわけです。
あと、murdocCutterを使用してもファイルの結合部が再エンコードされるため切り出し+結合という手段をとっています。
yambでは、動画部分と音声部分の長さが表示できるのですが、確かにほんのわずかですが長さに食い違いが発生していることを確認しています。

何かいい方法がないか探しているところです。
現在は、ffmpeg-15972を使用してエンコードするとこの現象が発生しないのでこのバージョンを使用している状態です。
(その場しのぎですね)

ちなみに、UniteMovieで結合の際に使われているMP4BOX.exeは2.4.0(UniteMovie標準)、2.5.0、2.6.0ともに音ずれが発生するのを確認しています。

エンコード前にファイルの結合を行っていればたぶん問題ないと思いますが、結合ノイズなしにうまくいく方法を自分が今まで調べてなかったのでこんな顛末になっております。
気にとめていただいたら幸いです。
なお、分割状態のエンコード済みファイルで見る限りでは音ずれは「ない」んですよね。
頭が痛いです・・・・(^^;;)

Posted by KANAAN-PEPO at 2010年01月07日 18:28
KANAAN-PEPOさん、こんにちは。管理人です。

ご報告ありがとうございました。
その後どうなったか、続きのご報告をお待ちしております。
Posted by あべちん at 2010年01月11日 17:45
まだ暫定的ですが、次の方法をとっています。
1.動画の結合をMurducCutterを使う
 次の方法を使えば綺麗に結合できることを確認しました。
(1)必要なところを切り抜く
(2)切り抜いたところを動画一覧に登録、結合したい動画の全領域をcliplistに登録、すべてが終わったら[clipping]を実行する
2.ffmpeg-20925の登録したエンコードスクリプトで実行してみる->運がよければ綺麗な動画が完成する
3.運が悪い場合、音声がない、動画の登録に失敗することがあるので、VLCでMPEG-PSに変換、ffmpeg-15972を使用したエンコードスクリプトを実行する

というところです。
QuickTimeで合成できることも確認できたのですが、MP4ファイルではなくMOVに変換されるか、再エンコードされるので適さないと判断しました。

どうしても分割したファイルを合成する必要がある場合は、ffmpeg-15972を使用するのがよいようです。
Posted by KANAAN-PEPO at 2010年01月13日 12:15
一点訂正します。
分割したmpeg-tsファイルをMurdocCutterでつなげても、切り取りしたときと同じエンコードノイズが乗ることがある、ことを今日確認しました。
前にやったときはたまたまたGOPの位置がよかったと言うだけのようです。
Posted by KANAAN-PEPO at 2010年01月13日 20:51
KANAAN-PEPOさん、こんにちは。管理人です。

FFmpegの問題というよりは、x264か、Xvidか、外部エンコードライブラリの問題なのでしょうかね?

お時間があれば、x264、Xvid、内蔵mpeg4(-vcodec mpeg4)など、変えてみてはいかがでしょうか。
Posted by あべちん at 2010年01月14日 13:35
>FFmpegの問題というよりは、x264か、Xvidか、外部エンコードライブラリの問題なのでしょうかね?
外部エンコードもですけど、微妙な音ずれが残ってる状態はx264の問題のような気がしますね。
一応、いろいろやってみて無難なものを見つけました。
結合ですけど、同じくオープンソースのavidemuxで結合するとかなり綺麗な動画ができあがります。
残念なのはavidemuxでの切断は結構切断面が汚いんですよね。そのあたりはmurdocCutterに軍配が上がります。
その代わり、まだ試してませんが先にエンコードを済ませてMP4をフレームで切れる可能性がavidemuxにはあります。
いろいろやっていくと時間かかりますよね。

とりあえず、x264だけじゃなくxvidとかのテストも余裕があればやってみます。
Posted by KANAAN-PEPO at 2010年01月15日 15:03
なんども連投済みません

ふと気づいたので同じエンコード済みH.264ファイルをUniteMovieとavidemuxで結合した結果をyambを使って動画部分と音声部分の長さを確認してみました。
その結果、avidemuxは0.秒以下の差しかないのにUniteMovieでは3秒以上の差が出ました。
ソース動画が同じですから、使っているツールの差というところというのは断定的かと思います。
ただ、ffmpeg-15972で作成したものは問題ないところからするとx264ライブラリの問題ととらえて間違いないと思います。
いろいろ調べていろいろな手段を試せましたので今回のは意味があるかなと。
お役に立てていただければ幸いです。
Posted by KANAAN-PEPO at 2010年01月15日 20:02
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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