内蔵AACのエンコード(出力)は実験段階のため、まだ音質は良くないです。
まともに動作するようになるまでは、Nero AAC コーデックを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。
また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)
ffmpeg_bin-23100.zip
ffmpeg_bin_pentium4-23100.zip (Pentium4最適化版)
ffmpeg_bin_core2-23100.zip (Core2最適化版)
ffmpeg_bin_athlon64-23100.zip (Athlon64最適化版)
ffmpeg_bin_phenom-23100.zip (Phenom最適化版)
以下のライブラリをアップデートしました。
zlib-1.2.5
x264 rev.1583
今回も、gcc4.5.0を自前でビルドして使用しています。
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。
最適化無し版でもエラーが出る場合は、サポート外とします。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
pthreadGC2.dllは不要です。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
FFmpegのコンパイルは、こちらの記事を参考にしてください。
コンパイル環境:MinGW gcc4.5.0
binutils-2.20.1
mingwrt-3.18
w32api-3.14
各ライブラリのバージョンは、以下の通りです。
nasm-2.08.01
yasm-1.0.0
pthreads-w32 release 2.9.0
zlib-1.2.5
bzip2-1.0.5
faad2-2.7
gsm-1.0.13
lame-3.98.4
opencore-amr-0.1.2
openssl-1.0.0
rtmpdump-2.2d
libogg-1.2.0
libvorbis-1.3.1
libtheora-1.1.1
x264 rev.1583
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 --disable-avfilter --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaad --disable-decoder=aac --enable-libgsm --enable-librtmp --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libxvid --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 rev.23043からavfilterがサポートされているのですが、Xvidのエンコード(-acodec libxvid)の時、-aspectを指定しても
Invalid pixel aspect ratio 0/1
というエラーが出るようになってしまいました。
とりあえず原因が判明するまで、configureオプションに
--disable-avfilter
を追加して、avfilterを無効にしています。
上記のような表示が出てしまいます。
please use vf=pad
-padbottom を使っているのが
原因のようなのですが、代替する
方法は有るのでしょうか。
コメントありがとうございます。
avfilterを有効にすると、
-vf "pad=640:480:0:0"
というようなことができるらしいです。
オプションが「-vfilter」と書かれていますが、現在は「-vf」に変更されています。
http://ffmpeg.org/libavfilter.html
ですが、本文で書いたように、libxvidのエンコードができなくなってしまったので、avfilterは無効にしてあります。
avfilterを有効にしても、libxvidのエンコードでエラーにならないようにしたいと思いますので、原因調査中です。
分かりしだいアップデートしますので、それまでは、以前のバージョンをお使いください。
申し訳ありませんが、よろしくお願いします。
携帯動画変換君でffmpeg2として使わせていただいてます。
自分はコンパイル等のことは全くの初心者なのですが変換時にlibfaacが見つからないと出てエラーが起こってしまいました。
よく見るとlibfaacを削除されていらっしゃいますね。
今後入れる予定はないのでしょうか?
自分用以外には入れてないのですね
配布用に入れると何か問題があるのでしょうか?
教えていただきたいです
ちょうど1年ぐらい前にFAACのコードがLGPLに違反してることが分かり、
libfaacを含んだFFmpegを配布することができなくなってしまました。
http://blog.k-tai-douga.com/article/29147623.html
http://archives.free.net.ph/message/20090427.234537.0908798b.ja.html
自分の環境だけかもしれませんが
WMVファイルの変換がおかしいです。
WMVファイルの音声部分(WMA)をWAVEに変換するときに
10秒ぐらいで変換が終了しているみたいです。
変換君付属のffmpegだとうまく変換できるみたいです。
自分でコンパイルしてみますね
管理人です。
通りすがりさん
代わりに回答してくださって、ありがとうございました。
私の回答が遅めなので、とても助かります。
cloverさん
特に自分用というのはなくて、Athlon64最適化版+neroAacEncの組み合わせで使用しています。
内蔵のaacエンコーダが開発中で、ちょっとずつマシにはなってきているので、期待しています。
neroAacEncに読み込ませるため、音声だけwavに変換するときの携帯動画変換君の設定は、以下のようになっています。
wav 16bit 44.1kHzの場合です。
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -vn -acodec pcm_s16le -ac 2 -ar 44100 "<%OutputFile%>.wav""
参考にしていただければ幸いです。
「-t」 オプションで時間を指定して、さらに
WMAファイル音声をwavに変換する時におかしくなります。
VOBファイルとかだと問題なかったので気付きませんでした。
他の方は問題ないのでしょうか?
-t、その他の設定値はどうなっていますか?
実際の設定値を書いていただいた方が、確実な回答が得られると思います。
Command0=""<%AppPath%>\cores\ffmpeg" -ss 00:00:00.00 -t 03:00:49.00 -y -i "<%InputFile%>" -vn -ac 2 -ar 48000 -vol 512 -f wav "<%OutputFile%>.wav""
です。
あべちんさんの設定に-tコマンドを追加しても発生します。
もしかして、avisync経由になってませんか?
自分のところの環境ではavisync経由を止めて直接ffmpegに読み込ませていると正常に処理されますが。
>avisync経由になってませんか?
ご指摘の通り経由してました。
昔「WMVファイルを携帯動画変換君で使用する」
という記事を参考にしていじってました。
今はffmpegで直接WMVファイルを読み込めるんですね。
Ext0=WMV:\cores\AVS_Skelton.avs
などの部分を変更したらうまくいきました。
ありがとうございます
KANAAN-PEPOさん
おぉ、すばらしい!
avisynthとは、全く思いつきませんでした。
情報ありがとうございました。
skotさんも、問題解決されたようで良かったです。
って、綴り間違ってますね(^^;;)
そう言われてみると、微妙に綴りが違ってますね。
このサイトの情報も色々な所からの寄せ集めみたいなものですが、私一人では限界がありますので、教えていただけると、とても助かります。
今後ともよろしくお願いします。
唐突で申し訳ありませんが64bit版のffmpegの公開予定はないでしょうか?
わざわざ「名無し」さんと名乗っていらっしゃるのは、題名のないと言いながら「題名のない音楽会」という題名が付いているTV番組のような感じでしょうか。
それはさておき、この件については要望される方が時々いらっしゃるのですが、管理人に64bit OSの環境がないため、今のところ予定はございません。
いずれ、64bit OSが一般的になったら対応する必要があると考えております。
ということで、ご理解いただければ幸いです。
それと名前は書かなくてもよかったんですね。
ネット上で文章を投稿するのが初めてだったのでマナーがわからずに申し訳ありません。
あれは冗談で、特に深い意味はありませんので、あまり気になさらないでください。
マナーとしては、何かしらお名前を書いていただいた方が良いと思います。
ニックネームなど、なんでも良いので決めておかれるとよいのではないでしょうか。
一緒に行っていた友達に時間を確認しようと、
ちょっと待ってくれるように頼んだら、5秒くらいして、すぐ切られた・・・・。
NYってこんなもんなんでしょうか・・・。
また新手のスパムコメントですね。
極端に安いTory Burchなんて、たぶん偽物ですので、皆さんだまされないでくださいね。
なんか、面白いので残しておきます。