FFmpeg最新版(2011/11/20現在)、rev.35051(50d6f81)のWindows用バイナリを置いておきます。
内蔵AACエンコーダは、まだ実験段階のため、以前使用していたlibfaacや、neroAacEncに比べると音質は良くないです。
まともに動作するようになるまでは、neroAacEncを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。
また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)
ffmpeg_bin-35051.zip
ffmpeg_bin_pentium4-35051.zip (Pentium4最適化版)
ffmpeg_bin_core2-35051.zip (Core2最適化版)
ffmpeg_bin_athlon64-35051.zip (Athlon64最適化版)
ffmpeg_bin_phenom-35051.zip (Phenom最適化版)
以下のライブラリをアップデートしました。
libcdio-0.83-e0b2ee8
lame-3.99.2
rtmpdump-2.4-20111115 PolarSSL版
libvpx-v0.9.7-p1-161
当サイトのrev.32736以降、オプションが若干変わりました。
・-mapオプション
DVDのVOBファイルから、neroAacEncとlibx264またはlibxvidcoreの組み合わせでエンコードした場合に、
-map 1.0 -map 0.0
と指定する必要がありましたが、無くてもエラーが出なくなりました。
特に指定したい場合は、
-map 1:v -map 0:a
と、オプションの書式が変わりました。
・-acodec copy
""<%AppPath%>\cores\ffmpeg" -y -i "<%TemporaryFile%>.aac" -acodec copy -i "<%InputFile%>" -vcodec libx264 ...
という感じで、「-acodec copy」が「-i "<%InputFile%>"」の前にある場合、今までは問題なかったのですが、今回より「-i "<%InputFile%>"」の後ろに「-acodec copy」を置かないと、音声が正常にコピーされなくなってしまいました。
修正後は、
""<%AppPath%>\cores\ffmpeg" -y -i "<%TemporaryFile%>.aac" -i "<%InputFile%>" -acodec copy -vcodec libx264 ...
となります。
・-wpredpオプション
libx264でエンコードする時の「-wpredp」オプションが、「-weightp」になりました。
「-wpredp」を使用していなければ、気にしなくても良いです。
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。
最適化無し版でもエラーが出る場合は、サポート外とします。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
FFmpegのコンパイルは、以下の記事を参考にしてください。
FFmpegのコンパイル (2011/07/31) w32threads
コンパイル環境:MinGW gcc4.6.2
binutils-2.21.53
mingwrt-3.20
w32api-3.17
各ライブラリのバージョンは、以下の通りです。
nasm-2.09.10
yasm-1.2.0
zlib-1.2.5
bzip2-1.0.6
libcdio-0.83-e0b2ee8
gsm-1.0.13
libmodplug-0.8.8.4
lame-3.99.2
opencore-amr-0.1.2
vo-aacenc-0.1.1
vo-amrwbenc-0.1.1
polarssl-1.0.0
rtmpdump-2.4-20111115 PolarSSL版
libogg-1.3.0
aoTuV Beta6.03 (libvorbis-1.3.2)
libtheora-1.1.1
speex-1.2rc1
libvpx-v0.9.7-p1-161
x264 rev.2106 (make fprofiled)
xvidcore-1.3.2
最適化オプションは、以下のようにしています。
最適化無し版
--extra-cflags="-march=i686 -mtune=generic"
Pentium4最適化版
--extra-cflags="-mtune=pentium4 -mfpmath=sse -msse"
Core2最適化版
--extra-cflags="-mtune=core2 -mfpmath=sse -msse"
Athlon64最適化版
--extra-cflags="-mtune=athlon64 -mfpmath=sse -msse"
Phenom最適化版
--extra-cflags="-mtune=amdfam10 -mfpmath=sse -msse"
configureオプションは以下の通りです。
$ ./configure --enable-gpl --enable-version3 --enable-postproc --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libcdio --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-librtmp --enable-libspeex --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-w32threads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse" --optflags="-O2 -finline-functions"
※--extra-cflagsは、最適化の種類により異なります。
2011年11月21日
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/50714579
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/50714579
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
音質は少々悪くていいので
ffmpeg.exe単体でh.264+内蔵aacの動画の作成の仕方わかりますでしょうか?
自分でやってみたら音がでなくて困っています・・・
ご訪問ありがとうございます。
すでに、携帯動画変換君などは使いこなしていらっしゃるという前提で、細かい説明は省略します。
ビットレートや画面サイズなどは用途にもよりますが、例えばこんな感じで、
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vcodec libx264 -b 768k -s 320x180 -aspect 16:9 -r 29.97 -sws_flags lanczos+print_info -me_method umh -g 150 -qcomp 0.7 -qblur 0.5 -qmin 10 -qmax 51 -qdiff 4 -subq 6 -me_range 16 -coder vlc -sc_threshold 50 -flags +loop -flags2 +mixed_refs -keyint_min 30 -cmp chroma -level 30 -refs 3 -i_qfactor 0.714286 -acodec aac -strict experimental -ac 2 -ar 44100 -ab 128k -f mp4 -threads 3 "<%OutputFile%>.mp4""
この中で、
-acodec aac -strict experimental
というのが、内蔵AACを使うのに必要なオプションです。
ご参考になれば幸いです。
無事音がでるmp4に変換できました。
映像メインで音声は聞こえればいい私的コンテンツなのでこれで十分です!
ありがとうございます。
これからも利用させて頂きます。
更新頑張ってください!応援してます
管理人さん
こんにちニャ(=^∇⌒=)ノ
ちょっと質問でつ!
ini に [ -sws_flags lanczos+print_info ]が有りますが・・・
これは何のコマンドですか?
内臓 aac 聞けますね(=⌒o⌒=)ノ
[ -cutoff 19000 ]を付けてますが・・・
宜しくお願いします。。。
動作報告ありがとうございます。
内蔵AACは、初めて実装されたころに比べるとだいぶ良くなっていると思います。
需要があるかぎり更新を続けるつもりですので、今後ともよろしくお願いします。
-sws_flagsは、映像の拡大縮小についての設定です。
-sws_flags無しのデフォルトはbicubicで、
lanczos(ランチョス法)を指定した方がキレイになるらしいので付けています。
print_infoを付けると、何が使われているか画面のログに表示されます。
ffmpeg -h
で、-sws_flagsに指定できるオプションが見られるので、いろいろ試してみると面白いかも?
内蔵AACの「-cutoff」は、以前にkamedoさんが教えてくださった方法ですね。
内蔵AACはしばらく使っていなかったので、また試してみようかと思います。
管理人さん
みっどないとニャ(=^∇⌒=)ノ
管理人さんはワン派ですか?
私は(=^・^=)ニャ!派です。。。
映像の拡大縮小だったんですね!
私は aviutl99 でサイズ変更してるので使わないかな・・・
ヘルプ見てみます。。。
ありがとです(=^・^=)ノ
どちらかというと私も猫の方が好きです。
「こんにちワン」は、ポポポポーンのCMを思い出して、なんとなく言ってみました。
-sws_flagsは、映像のサイズが入力と出力で違う場合に関わってくるので、けっこう重要かもしれません。