2011年07月14日

FFmpeg rev.31420 ダウンロード

FFmpeg最新版(2011/07/12現在)、rev.31420(8ced6f5)のWindows用バイナリを置いておきます。

内蔵AACエンコーダは、まだ実験段階のため、以前使用していたlibfaacや、neroAacEncに比べると音質は良くないです。
まともに動作するようになるまでは、neroAacEncを使用した音声AAC動画の作成方法を、こちらの記事に書きましたので、参考にしてください。

また、x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)

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

以下のライブラリをアップデートしました。
nasm-2.09.09
libvpx-0.9.6-439
x264 rev.2019


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

最適化無し版でもエラーが出る場合は、サポート外とします。

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

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

FFmpegのコンパイルは、以下の記事を参考にしてください。
FFmpegのコンパイル (2011/04/12) w32threads

コンパイル環境:MinGW gcc4.6.1
binutils-2.21
mingwrt-3.18
w32api-3.17

各ライブラリのバージョンは、以下の通りです。
nasm-2.09.09
yasm-1.1.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.1
vo-amrwbenc-0.1.1
openssl-1.0.0d
rtmpdump-2.3
polarssl-0.99-pre5
rtmpdump-2.3 PolarSSL版
libogg-1.2.2
aoTuV Beta6.03 (libvorbis-1.3.2)
libtheora-1.1.1
speex-1.2rc1
libvpx-0.9.6-439
x264 rev.2019 (make fprofiled)
xvidcore-1.3.2

最適化オプションは、以下のようにしています。
configureのオプションに--enable-smallを付けると、gccのオプションに-Osが付きます。
--enable-smallを付けなければ、gccのオプションに-O3が付きます。

いつの間にか修正されて、
warning: dereferencing type-punned pointer will break strict-aliasing rules
というのが出なくなりましたので、-fno-strict-aliasing は削除しました。

--enable-memalign-hack は自動で判別されるようになったので、不要になりました。

最適化無し版
--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-libgsm --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-small --enable-w32threads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse"

※--extra-cflagsは、最適化の種類により異なります。
posted by あべちん at 09:16 | Comment(11) | TrackBack(0) | FFmpegダウンロード
この記事へのコメント
バイナリ頂きました。ありがとうございます。
Posted by at 2011年07月20日 14:32
こんにちは。OK.2ndと言います。
個人向WebポータルMyHome Portalをオープンソースで公開しています。
http://ok2nd.web.fc2.com/
このMyHome Portalで、動画変換にffmpegを使っています。
インストールガイドで、こちらのサイトを紹介させてもらっています。
http://ok2nd.web.fc2.com/install.html

ここからが本題です。
こんな質問をここにコメントとしてさせてもらって良いのかどうかわかりませんが。

ソニーなどのデジカメで撮影したフルハイビジョンのAVCHD(mts,m2ts)をflvに変換するのにffmpegを使っているのですが、ギザギザ(?)の画像になってしまいます。AVCHD(mts,m2ts)をflvに変換するのに最適なオプションをご存知でしたら、教えていただけませんでしょうか?
なお、動画の仕様に関しては全くの素人です。
現在指定しているオプションは「-ar 44100 -b 700k」です。
よろしくお願いいたします。
Posted by OK.2nd at 2011年07月21日 18:25
名無しさんこんにちは。管理人です。

コメントありがとうございます。
時々更新していますので、今後ともよろしくお願いします。
Posted by あべちん at 2011年07月22日 18:16
OK.2ndさん、こんにちは。管理人です。

最適なオプションと言っても、目的によって異なると思いますので、なかなか難しいですね。

「ffmpeg AVCHD m2ts」で検索すると、すでに試されている方がいらっしゃいますので、そのあたりから参考になさってみてはいかがでしょうか?

オプションの意味は、MobileHackerzさんの
「最新ffmpegの高度なオプション」
で詳しく解説されていますので、参考になると思います。

あと、元の動画がインターレースだとギザギザになったりするので、
-deinterlace
を追加すると、マシになる場合があります。

いろいろお試しください。
Posted by あべちん at 2011年07月22日 18:58
あべちんさん、こんにちは。

回答ありがとうございました。

私もネットで検索したのですが、AVIへの変換などの例が多く、FLVへの変換に関する記事は少ないです。現在のオプションもネット上にあった情報を参考にしています。

-deinterlaceは早速試してみましたが、効果がなかったようです。

どうもありがとうございました。


Posted by OK.2nd at 2011年07月22日 19:19
こんにちは。

-deinterlaceですが、もう一度冷静(?)に試してみたところ、ギザギザの解消には確かに効果がありそうです。

ありがとうございました。
Posted by OK.2nd at 2011年07月22日 19:48
OK.2ndさん

flvと言っても、中身はたいていH.264とAAC音声ですので、-vcodec libx264でmp4か3gpに変換しているサンプルを探して、
-f mp4
-f 3gp
などとなっている所を
-f flv
にして、出力動画の拡張子を.flvにすれば良いと思います。

FLV、MP4、3GP、AVIなどのフォーマット(コンテナ)は入れ物の違いで、それぞれ、入れることができるコーデックが決まっています。
Posted by あべちん at 2011年07月22日 20:02
x264派なので、あまり詳しく知りませんが、
yadifってなかったかな?

yadif=[<mode>[:<parity>]]

mode
Specify the interlacing mode to adopt, accepts one of the following values.

0: Output 1 frame for each frame.

1: Output 1 frame for each field.

2: Like 0 but skips spatial interlacing check.

3: Like 1 but skips spatial interlacing check.

Default value is 0.

parity
0 if is bottom field first, 1 if the interlaced video is top field first, -1 to enable automatic detection.

自ビルドx264のyadifは、かなり良い感じにインタレ解除できますが。ffmpegはどうでしょう?
Posted by X5-452 at 2011年07月23日 03:14
あべちんさん、こんにちは。

> -vcodec libx264でmp4か3gpに変換している......

探してみましたが、どうもピッタリ(?)という感じのものが見つからず、とりあえず見つかったものを参考に少し試してみましたが、うまくいきませんでした。時間がある時にまた試してみようと思います。ありがとうございました。
Posted by OK.2nd at 2011年07月23日 09:18
OK.2ndさん、こんにちは。管理人です。

むむ、上手く行きませんでしたか。
ここまで試したけど、ここがダメだったなど、もう少し具体的だと何か分かるかもしれませんね。

また気が向いたらお越しください。
Posted by あべちん at 2011年07月25日 13:43
X5-452さん、こんにちは。管理人です。

ffmpegのyadifは
-vf "yadif=0"
とか、
-vf "yadif=0:1"
という感じで使えます。

いっぺんに色々書くと、かえって訳が分からなくなるんではないかと思い、紹介しませんでした。
Posted by あべちん at 2011年07月25日 13:53
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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


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

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