2011年04月13日

FFmpeg rev.29060 ダウンロード

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

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

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

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

以下のライブラリをアップデートしました。
nasm-2.09.08
libvpx-0.9.6-120
vo-aacenc-0.1.0
vo-amrwbenc-0.1.0

VisualOn社のAACエンコーダーライブラリー(vo-aacenc)と、AMR-WBエンコーダーライブラリー(vo-amrwbenc)を追加しました。
携帯動画変換君の設定例を、各ライブラリーのページに書きましたので、上記リンクよりご覧ください。

その他、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-120
x264 rev.1924 (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 01:41 | Comment(8) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
libvpxが0.9.5→0.9.6になったときに、
メジャーバージョンアップということで
オプションなどがかなり変わったようなのですが
ffmpegでWebMエンコードするときの最新オプション
設定はどのように記述すればいいのでしょうか?

0.9.6はコードネーム「Bali」と呼ばれていて
constant qualityモードが追加されるなどしているようです
Posted by ac at 2011年04月13日 04:26
acさん、こんにちワン。管理人です。

以前、libvpx v0.9.5用に書いたものですが、v0.9.6も基本的に同じですので、以下の記事を参考にしてください。
http://blog.k-tai-douga.com/article/41744783.html

-crfを追加する場合は、-vbを削除してください。
-crfは、0〜63までの整数です。
-qminと-qmaxも、0〜63までの整数です。

-crfだけ小さい値にしても、-qmaxも合わせて小さい値(-crfより少し大きい値)にしないと、ビットレートが大きくならないようです。

ビットレートが、-crfの値によってどのくらいになるのか、よくわかりません。

いろいろお試しください。
Posted by あべちん at 2011年04月14日 15:09
すみません。
FFMPEGのオプションの位置が
どこにあるのかわかりません。
どこにあるのでしょうか。
Posted by KOKI at 2011年04月15日 23:23
KOKIさん、こんにちは。管理人です。

ご質問がよく分からなかったのですが、この記事の中には、FFmpegの使い方は書いておりません。

FFmpegの使い方は、左サイドバー、カテゴリの「携帯動画変換君」の過去記事、リンク集の、まさみさんのブログ、MobileHackerzさんのWikiなどに書いてあります。

いろいろお試しください。
Posted by あべちん at 2011年04月20日 06:23
NHK関係で「異常」を検知しています。
このバージョン以下では同現象になります。

現象
 音声データの抜き出しに失敗する
 出来上がった動画から音声が一切含まれていない。

すべてのNHKの番組で発生しているならまだ納得もできるのですが、ごく一部の番組(近隣の具体例では「もしドラ」)が該当しております。
ちなみに音声がない動画ができた場合、ffmpegに読ませるのはtsファイルではなくVLCを使用してPS形式に変更すると正常に動画が作成されるのですが、該当動画はVLCのコンバートですら途中で落ちます。
今回事例で言うと「もしドラ」の1、2話ともに同じ状況ですので放送データ側の問題かなと。
解決策を見つけましたらまた報告に来ます。
Posted by KANAAN-PEPO at 2011年04月27日 22:54
KANAAN-PEPOさん、こんにちは。管理人です。

ご報告ありがとうございます。
データの異常なのか、何らかの対策が施されてしまったのでしょうか?

ご報告をお待ちしております。
Posted by あべちん at 2011年05月06日 14:21
とりあえず、ffmpeg要因による原因ではなさそうです。
というのも、今回の場合「もしドラ」10話中録画が途中から始まってしまった1回を除いて全話で再現します。しかも、その番組の前後は正常に音声変換できているんですよね。
ちなみに再放送のもしドラでも同じ現象が発生しました。
ということは、元ソース(BDのレコード前の放送データ)に原因があるように思えます。
現時点、まだ解決策が見つかっておりません。
つか、GW他のことで時間取られて調べられませんでした。
過去類似例はやはりNHKアニメで一件あっただけです。
類似現象なら「murdoc Cutter」で切断したファイルがまれに音声が変換されないことがありますが、そういう場合はVLCなどでmpeg-psに音声のみ変換すれば正常に音声変換できました。

もしドラのファイルを真空波動研で確認しても他のファイルとの区別がつかないんですよね。
情報を集めて研究してみます。
Posted by KANAAN-PEPO at 2011年05月09日 21:12
KANAAN-PEPOさん、こんにちは。管理人です。

いっそのことNHKに聞いてみる!
なんていうのはダメですね。

またご報告をお待ちしております。
Posted by あべちん at 2011年05月10日 19:22
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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