2009年07月25日

FFmpeg rev.19505 ダウンロード

FFmpeg最新版(2009/7/24現在)、rev.19505のWindows用バイナリを置いておきます。

内蔵AACのエンコード(出力)はまだ音が変です。
まともに動作するようになるまでは、Nero AAC コーデックを使用した、音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。

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

以下のライブラリをアップデートしました。
nasm-2.07
x264 rev.1185

ffmpeg/libavcodec/libx264.c は、rev.19310より以前のものにrevertしています。

今回より、自前でビルドしたMinGW gcc4.4.1を使用しています。

バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Sempronの一部など)をお使いの方は、最適化無し版を使ってみてください。

zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
pthreadGC2.dllは不要です。

携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。

FFmpegのコンパイルは、こちらの記事を参考にしてください。
※コンパイル手順は現在の物と若干変わっています。近々修正します。

コンパイル環境:MinGW gcc4.4.1

各ライブラリのバージョンは、以下の通りです。
nasm-2.07
yasm-0.8.0
pthreads-w32 release 2.9.0
zlib-1.2.3
bzip2-1.0.5
faac-1.28
faad2-2.7
gsm-1.0.13
lame-398-2
libnut-662
opencore-amr-0.1.1
libogg-1.1.4
libvorbis-1.2.3
libtheora-1.0
x264 rev.1185
xvidcore-1.2.2

最適化オプションは、以下のようにしています。
configureのオプションに--enable-smallを付けると、gccのオプションに-Osが付き、-O4にしても無駄なことが分かりましたので、-O4は外しました。
--enable-smallを付けなければ、gccのオプションに-O3が付きます。

最適化無し版
--extra-cflags="-mtune=generic -mno-sse2 -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-postproc --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfaad --disable-decoder=aac --enable-libgsm --enable-libmp3lame --enable-libnut --enable-libvorbis --enable-libtheora --enable-libxvid --enable-libx264 --disable-ffserver --disable-ffplay --enable-avisynth --enable-small --enable-pthreads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse -fno-strict-aliasing"

※--extra-cflagsは、最適化の種類により異なります。

configureのメッセージはこちら
posted by あべちん at 18:13 | Comment(15) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
携帯動画変換君で使うために
ffmpeg入れてみたのですが、
エラーになりwmvだけが読み込めませんでした。

こちらの ttp://ffdshow.faireal.net/mirrorffmpeg/

ffmpeg.rev12665.7z を入れてみたらwmv読み込めました。

なぜでしょうか・・・
Posted by ボス at 2009年07月26日 21:18
wmvというのもコーデックが何種類かありますので、まずはエラーになったwmvのコーデックが何か教えていただけますか。
Posted by Kazuki Ashiya at 2009年07月27日 16:54
こちらになります。

[sn2009071607_hd_300.wmv]
428x240 24Bit Windows Media Video 9 15.00fps 314.00kb/s
Windows Media Audio 9.1 44.10kHz 16Bit 1ch 32.02kb/s
[WindowsMedia] 00:04:22 (262.00sec) / 11,650,074Bytes
真空波動研SuperLite 051211

やwindows moviemakerで作った動画もです。

Posted by at 2009年07月27日 17:52
携帯動画変換君のiniパラメータそのままでffmpegだけ更新しただなんてことはないですよね
Posted by at 2009年07月27日 22:52
すみません↑の説明間違ってました。
ffmpeg_bin-19505.zip これを入れてiniを変えた
ただけでは、wmvどころか、aviなども全てエラーでした。


★私がやったと★

変換君0.34のcoresフォルダに ffmpeg_bin19505.zipのffmpeg.exeを上書き。
iniを↓のように変更
Command0=""<%AppPath%>\cores\ffmpeg" -flags bitexact -y -i "<%InputFile%>" -timestamp "<%TimeStamp%>" -vcodec libxvid -s 704x396 -r 29.97 -b 2000k -acodec libmp3lame -ac 2 -ar 48000 -ab 128k -f avi "<%OutputFile%>.avi""

これでhttp://ffdshow.faireal.net/mirror/ffmpeg/
のFFmpegならwmv以外は変換可能。
ffmpeg_bin19505.zipでは 全てエラー。
やったことはこれだけです。
Posted by ボス at 2009年07月28日 14:07
無事解決出来ました。。。
AVS_Skeltonに
# 3GP_Converter AVS-Mode skelton
DirectShowSource("<%InputFile%>", fps=29.970, convertfps=true)
return last
を入れて他のffmpeg入れれば全部読めました。
ご迷惑おかけしました。
Posted by ボス at 2009年07月28日 15:16
No libfaac! :(

再度libfaacでビルドできるか?
Posted by Dave Nicoll at 2009年08月02日 09:02
こんにちは。

Hi, Dave.

Though I'm not the admin of this website, I have the answer for your question and it's undoubtedly "No".

A pre-built binary including libfaac support is no longer publicly redistributable.
This restriction was introduced at revision 18715.
http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2009-April/022503.html
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2009-April/068819.html

If you want to use the recent ffmpeg with libfaac support, you have to build it your own.
Or you may want to use an earlier (before r18715) revision.
http://blog.k-tai-douga.com/article/29147623.html
Posted by golgol at 2009年08月02日 21:13
Thanks golgol

Am I missing something? How does FFMPEG create MP4 files now? I was using it to create videos for the iPod, but without AAC support it's not possible.

I've tried building FFMPEG before, but with little success - my builds are nowhere near as good as the ones available here.

-Dave.
Posted by Dave Nicoll at 2009年08月03日 11:31
場違いかもしれないんですけど教えてほしいんですけど・・。
携帯動画変換君でここのFFmpeg rev.18607を使わせてもらってるのですが、ビットレートをあんまり守ってくれません・・。設定は
[Item0]
Title=AVC 256kbps/AAC 128kbps
Command0=""<%AppPath%>\cores\ffmpeg" -y -i "<%InputFile%>" -s 320x240 -vcodec libx264 -r 30 -b 256k -acodec libfaac -ac 2 -ar 44100 -ab 128k -f mp4 "<%OutputFile%>.m4v""
こんな感じなんです。。
ニコニコ動画用に作ったりするには、ビットレート守ってくれないと困るんですけどどうしたら良いんでしょうか・・。 -b 256k -bt 256k って感じにもしてみましたが、ファイルの容量が数バイト(?)変わっただけでした・・。
Posted by ・3・ at 2009年08月05日 00:05
こんにちは。

Hi, Dave.

FFMPEG does not drop libfaac support yet and its license change affects only the redistributability of pre-built binary including libfaac. So you can still use libfaac via FFMPEG if you build your own as I mentioned in the previous post. If you want to try building again, see and follow the instructions bellow.
http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page


However, if you use latest pre-built binary which does not include libfaac support, you need an other AAC encoder such as FAAC frontend, NeroAACEnc, etc. For example,

1) create video only MP4 with FFMPEG (use -an)
2) decode source audio track into WAV with FFMPEG (use -vn and .wav extension for the output filename)
3) transcode created WAV to audio only MP4 with other AAC encoder (e.g., faac.exe -b 128 -o audio.mp4 audio.wav)
4) combine the created MP4s into single file, which can be done by using FFMPEG with the following command line.

ffmpeg -i video.mp4 -i audio.mp4 -vcodec copy -acodec copy output.mp4

-golgol
Posted by golgol at 2009年08月05日 14:58
> ・3・さん

1pass のビットレート指定で指定した値にきっちり収まらないのは良くあることです。ビットレートを指定した値にきっちり合わせたい場合は 2pass でエンコードしてください。
それから、ニコニコ動画のような制限のきついところ向けの動画を作るのであれば、オプションに -qmax 51 を入れてください。ffmpeg のデフォルト値である -qmax 31 だといくらがんばっても無理な場合がありますので。

ただ、そういうような用途に使うのであれば、ffmpeg を通してエンコードしないで普通に x264 の CLI 版や AviUtl の x264 出力プラグインを使うことをお勧めします。ニコニコ動画のまとめ Wiki とかにも使い方が書いてあると思いますので。
Posted by golgol at 2009年08月05日 15:05
golgolさん、こんにちは。管理人です。
私がサボってる間に、代わりに回答していただいて、ありがとうございます。

特に、英語があまり得意ではないのでとても助かりました。
Posted by あべちん at 2009年08月06日 16:19
・3・さん、こんにちは。管理人です。

golgolさんが代わりに回答してくださった通りですが、あと、MobileHackerz Knowledgebase Wikiで、たいていのことは解決できたりします。
http://mobilehackerz.jp/archive/wiki/

ご参考まで。
Posted by あべちん at 2009年08月06日 16:31
golgolさん
あべちんさん

ありがとうございます。
2-Pass -bt -qmax 51を追加したところ、
ビットレートがしっかり動いてくれるようになりました。
wikiもしっかり読みたいと思います。
ほんとにありがとうございました。
Posted by ・3・ at 2009年08月07日 19:57
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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