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は、最適化の種類により異なります。
2011年04月13日
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/44264704
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/44264704
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
メジャーバージョンアップということで
オプションなどがかなり変わったようなのですが
ffmpegでWebMエンコードするときの最新オプション
設定はどのように記述すればいいのでしょうか?
0.9.6はコードネーム「Bali」と呼ばれていて
constant qualityモードが追加されるなどしているようです
以前、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の値によってどのくらいになるのか、よくわかりません。
いろいろお試しください。
FFMPEGのオプションの位置が
どこにあるのかわかりません。
どこにあるのでしょうか。
ご質問がよく分からなかったのですが、この記事の中には、FFmpegの使い方は書いておりません。
FFmpegの使い方は、左サイドバー、カテゴリの「携帯動画変換君」の過去記事、リンク集の、まさみさんのブログ、MobileHackerzさんのWikiなどに書いてあります。
いろいろお試しください。
このバージョン以下では同現象になります。
現象
音声データの抜き出しに失敗する
出来上がった動画から音声が一切含まれていない。
すべてのNHKの番組で発生しているならまだ納得もできるのですが、ごく一部の番組(近隣の具体例では「もしドラ」)が該当しております。
ちなみに音声がない動画ができた場合、ffmpegに読ませるのはtsファイルではなくVLCを使用してPS形式に変更すると正常に動画が作成されるのですが、該当動画はVLCのコンバートですら途中で落ちます。
今回事例で言うと「もしドラ」の1、2話ともに同じ状況ですので放送データ側の問題かなと。
解決策を見つけましたらまた報告に来ます。
ご報告ありがとうございます。
データの異常なのか、何らかの対策が施されてしまったのでしょうか?
ご報告をお待ちしております。
というのも、今回の場合「もしドラ」10話中録画が途中から始まってしまった1回を除いて全話で再現します。しかも、その番組の前後は正常に音声変換できているんですよね。
ちなみに再放送のもしドラでも同じ現象が発生しました。
ということは、元ソース(BDのレコード前の放送データ)に原因があるように思えます。
現時点、まだ解決策が見つかっておりません。
つか、GW他のことで時間取られて調べられませんでした。
過去類似例はやはりNHKアニメで一件あっただけです。
類似現象なら「murdoc Cutter」で切断したファイルがまれに音声が変換されないことがありますが、そういう場合はVLCなどでmpeg-psに音声のみ変換すれば正常に音声変換できました。
もしドラのファイルを真空波動研で確認しても他のファイルとの区別がつかないんですよね。
情報を集めて研究してみます。
いっそのことNHKに聞いてみる!
なんていうのはダメですね。
またご報告をお待ちしております。