内蔵AACのエンコード(出力)は実験段階のため、以前使用していたlibfaacに比べると音質は良くないです。
まともに動作するようになるまでは、Nero AAC コーデックを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。
また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)
ffmpeg_bin-24574.zip
ffmpeg_bin_pentium4-24574.zip (Pentium4最適化版)
ffmpeg_bin_core2-24574.zip (Core2最適化版)
ffmpeg_bin_athlon64-24574.zip (Athlon64最適化版)
ffmpeg_bin_phenom-24574.zip (Phenom最適化版)
以下のライブラリをアップデートしました。
x264 rev.1683
libvpx-0.9.1-69
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。
最適化無し版でもエラーが出る場合は、サポート外とします。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
pthreadGC2.dllは不要です。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
FFmpegのコンパイルは、こちらの記事を参考にしてください。
コンパイル環境:MinGW gcc4.5.0
binutils-2.20.51
mingwrt-3.18
w32api-3.14
各ライブラリのバージョンは、以下の通りです。
nasm-2.08.02
yasm-1.0.1
pthreads-w32 release 2.9.0
zlib-1.2.5
bzip2-1.0.5
gsm-1.0.13
lame-3.98.4
opencore-amr-0.1.2
openssl-1.0.0a
rtmpdump-2.3
libogg-1.2.0
libvorbis-1.3.1
libtheora-1.1.1
libvpx-0.9.1-69
x264 rev.1683
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-gpl --enable-version3 --enable-postproc --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libvpx --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は、最適化の種類により異なります。
この間はお世話になりました。
つかぬ事お聞きしますが、
ffmpegでmpeg-ts(AVCHD)って作ることは可能でしょうか?
普通にformatの中にmpegtsってありましたね。汗
ちなみにmpegtsにするとフレームレートが倍になるのはそういう仕様なんですかね?
一つお訊きしてもよろしいでしょうか。
「FFmpeg最新版とneroAacEncで3GP動画変換」
の変換方法ですが、完成する動画を3gpではなく、
H.264にすることは可能でしょうか。
コメントありがとうございます。
お役に立ててよかったです。
またどうぞお越しください。
FFmpegでmpegtsに変換するということがめずらしいのか、ググってみたのですが、あまり情報がありませんね。
MPEG-PSのソースをFFmpegでMPEG-TSに変換して、それをまたMPEG-PSに変換なんていうことをやってみたのですが、最後のMPEG-PSは再生できなくなってしまいました。
あまり役に立たない情報ですみません。
まず、x264やXvidは映像コーデックの種類、3GPPやMP4はファイルフォーマットの種類と分けて考えると理解できると思います。
ファイルフォーマットは、コンテナとも言われ、入れ物みたいなものです。
変換方法の例としてあげているのは、映像Xvidと音声AACの3GPPフォーマットの動画です。
映像x264と音声AACの3GPPフォーマットの動画も作成できます。
ファイルフォーマットを
-f mp4
にすれば、MP4動画になります。
リンク集の、まさみさんのブログや、MobileHackerzさんの所に設定例がありますので、いろいろ試してみてください。
ファイルフォーマットとコーデックの関係は、Wikipediaにも説明がありますので、探してみてください。
少し考えれば解るようなどうしようもない質問すいませんでした。
そういえば、もう一つお訊きしたいのですが、同じく、
「FFmpeg最新版とneroAacEncで3GP動画変換」
に書いてある2パスのコマンドラインですが、
-le -br 128000
の「le」は「lc」の間違いではなく、本当に「le」なんですか?
もしかして、leはABRでエンコードするコマンドだったりとかですか?
そうなんです。
-leは、実はreadme.txtにも載っていない裏コマンドです!
ウソです。すみません。
-lcの間違いでした。
ご指摘ありがとうございました。
わざわざコメントして頂いて感謝しております。
実は、ffmpegでエンコードした動画をIPで送信して、HDD付きのSTBでテレビ出力させるというシステムを構築しようと思いまして、そのSTBのフォーマットがMPEG-TS(H.264AVC/MP2)しか読み込めないんですよ。
なので、ご存知であればと思って聞いてみました。
ちなみに、MPEG-TSのストリームに♯0映像、♯1主音声、♯2字幕、♯3メタデータ(コンテンツ情報、作成者)などのマップの動画って作ることは可能でしょうか?
補足で、下のイスラエルのエンコーダーがffmpegの設定をwindows、linuxベースで読み込んで動くみたいです。
http://www.prweb.com/releases/2009/05/prweb2406424.htm
コレを使って動画を作ろうと思っています。