FFmpeg最新版(2012/12/13現在)、rev.47813(616e6ff)のWindows用バイナリを置いておきます。
x264について、一番多く質問が寄せられるエラーの説明を記事にしましたので、思い当たる方は、ぜひご一読ください。
x264のエンコードでエラー(Error while opening encoder for output stream #0.0)
ffmpeg_bin-47813.zip
ffmpeg_bin_pentium4-47813.zip (Pentium4最適化版)
ffmpeg_bin_core2-47813.zip (Core2最適化版)
ffmpeg_bin_athlon64-47813.zip (Athlon64最適化版)
ffmpeg_bin_phenom-47813.zip (Phenom最適化版)
ffplay_bin-47813.zip
以下のライブラリをアップデートしました。
nasm-2.10.06
rtmpdump-2.4-20121209 PolarSSL版
libvpx-v1.1.0-346-g7a09f6b
fribidi-0.19.5
libsoxr-0.0.5-20121211 (新規)
※x264 rev.2230はバグがあります。修正内容についてはこちらの記事をお読み下さい。
バイナリはどれを使っても大丈夫だと思いますが、SSE2に対応していないCPU(Duron、Sempronの一部、Pentium3など)をお使いの方は、最適化無し版を使ってみてください。
最適化無し版でもエラーが出る場合は、サポート外とします。
zipファイルを解凍すると、ffmpeg.exeが出てきますので、携帯動画変換君のcoresフォルダに置くなり、単体で使うなりしてください。
携帯動画変換君のffmpeg.exeとは、オプションの互換性がありませんので、上書きする際はご注意ください。
FFmpegのコンパイルは、以下の記事を参考にしてください。
FFmpegのコンパイル (2012/07/22) w32threads
コンパイル環境:MinGW gcc-4.7.2
binutils-2.23.1
mingw-w64-v1.0.6 (sezero_20111101-w32-update-rev.5339)
各ライブラリのバージョンは、以下の通りです。
nasm-2.10.06
yasm-1.2.0
zlib-1.2.7
bzip2-1.0.6
libbluray-0.2.3
libcaca-0.99.beta18
libcdio-0.90
gsm-1.0.13
libmodplug-0.8.8.4
lame-3.99.5
openjpeg-1.5.1
opus-1.0.1
opencore-amr-0.1.3
vo-aacenc-0.1.2
vo-amrwbenc-0.1.2
polarssl-1.2.3
rtmpdump-2.4-20121209 PolarSSL版
libogg-1.3.0
aoTuV Beta6.03 (libvorbis-1.3.3パッチ)
libtheora-1.1.1
speex-1.2rc1
twolame-0.3.13
libsoxr-0.0.5-20121211
libvpx-v1.1.0-346-g7a09f6b
x264 rev.2230 (make fprofiled)
xvidcore-1.3.2
libiconv-1.14
freetype-2.4.10
expat-2.1.0
fontconfig-2.10.2
fribidi-0.19.5
libass-0.10.1
SDL-1.2.15
最適化オプションは、以下のようにしています。
最適化無し版
--extra-cflags="-march=i686 -mtune=generic"
Pentium4最適化版
--extra-cflags="-mtune=pentium4 -mfpmath=sse -msse" --cpu=pentium4
Core2最適化版
--extra-cflags="-mtune=core2 -mfpmath=sse -msse" --cpu=i686
Athlon64最適化版
--extra-cflags="-mtune=athlon64 -mfpmath=sse -msse" --cpu=i686
Phenom最適化版
--extra-cflags="-mtune=amdfam10 -mfpmath=sse -msse" --cpu=i686
configureオプションは以下の通りです。
$ ./configure --enable-gpl --enable-version3 --enable-avisynth --enable-fontconfig --enable-libass --enable-libbluray --enable-libcaca --enable-libcdio --enable-libfreetype --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr ---enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --disable-outdev=sdl --disable-ffprobe --disable-ffserver --enable-w32threads --extra-ldflags=-static --extra-cflags="-mtune=athlon64 -mfpmath=sse -msse" --optflags="-O2 -finline-functions"
※--extra-cflagsは、最適化の種類により異なります。
2012年12月14日
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/60762366
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
http://blog.sakura.ne.jp/tb/60762366
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
動作報告しておきます。
結論から言うと、46833以降発生していた、avidmuxでの結合ですがやはり結合点から以降表示が崩れます。
そこで一個テストをしてみました。
47813で正常にエンコードできたx264動画の後ろに、46392でエンコードした動画をavidmuxで結合した所正常な動画ファイルとして作成されました。
よって、結合する動画は46833でエンコードした際に見た目ヘッダ情報が正しいようにエンコードされているが、不具合の元データが作りこまれていると考えられます。
ちなみに、46833でエンコードした動画に46392でエンコードした動画を結合すると、やはり壊れました。
なんかよくわからなくなってきました。
編集済の動画をエンコードする分には問題ないようです
以上、報告です。
ご報告ありがとうございます。
一口にエンコードと言っても、H.264のプロファイルとか、Bフレームの有無とか、条件によってだいぶ違いますので、原因の特定は難しいですね。
そのうち直るかもしれませんし、直らないかもしれません。