eingusteのblog

Windows向けFFmpegバイナリを個人的にビルド(コンパイル)してます。その更新情報など。

カテゴリ: 外部ライブラリ

昨日、少しだけですがFFmpegに必要なライブラリの再構築を行いました。
お知らせしたとおり、コンパイラ(ビルド環境)を変更しましたので、32bit版、64bit版ともに一通りビルドしなおし中です。
zlib-1.2.8	OK
bzip2-1.0.6	OK
GMP-6.1.0	OK
nettle-3.2	OK
libtasn1-4.8	OK
GnuTLS 3.4.13	OK
x264		OK
x265		OK
libiconv-1.14	OK
以上、です。

libvpx-1.5.0のインストール手順のメモです。

git clone https://chromium.googlesource.com/webm/libvpx

mkdir -p libvpx-build
cd libvpx-build
../libvpx/configure --target=x86_64-win64-gcc --disable-unit-tests --disable-examples --disable-docs --enable-runtime-cpu-detect --as=yasm --enable-multithread --enable-vp8 --enable-vp9 --enable-webm-io --enable-libyuv --enable-postproc --enable-vp9-postproc --disable-shared --enable-static --enable-multi-res-encoding --enable-vp9-temporal-denoising --enable-temporal-denoising --extra-cflags="-pipe -O"
make make install
 

32bit版はconfigureのtargetオプションを--target=x86-win32-gccにします。

32bit版では--extra-cflags="-pipe"にしています。

64bit版で--extra-cflags="-pipe -O"にしているのは、2016-03-27時点のlibvpxのソースではffmpegでクラッシュしたためです。

2016-03-30時点のソースではクラッシュしないようなので、64bit版も--extra-cflags="-pipe"に戻しました。

以上

GnuTLS-3.4.10のインストール手順のメモです。

まずgmplib-6.1.0からインストールします。

wget --no-check-certificate https://gmplib.org/download/gmp/gmp-6.1.0.tar.lz
tar xf gmp-6.1.0.tar.lz
cd gmp-6.1.0
./configure --build=i686-w64-mingw32 --enable-cxx
make
make install
(64bit版はconfigureのbuildオプションを--build=x86_64-w64-mingw32にします。)


次にnettle-3.2をインストールします。

wget ftp://ftp.gnu.org/gnu/nettle/nettle-3.2.tar.gz
tar xf nettle-3.2.tar.gz
cd nettle-3.2
./configure --disable-shared --disable-openssl --build=i686-w64-mingw32
make
make install
(64bit版はconfigureのbuildオプションを--build=x86_64-w64-mingw32にします。)


最後にGnuTLS-3.4.10をインストールします。
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4/gnutls-3.4.10.tar.xz
tar xf gnutls-3.4.10.tar.xz
cd gnutls-3.4.10
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --disable-shared --disable-cxx --disable-doc --disable-nls --disable-gtk-doc-html --without-p11-kit --disable-guile --with-included-libtasn1 --build=i686-w64-mingw32
sed -i.orig -e "/Libs.private:/s/$/ -lcrypt32/" lib/gnutls.pc
make make install-strip

(64bit版はconfigureのbuildオプションを--build=x86_64-w64-mingw32にします。)

CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure --disable-shared --disable-cxx --disable-doc --disable-nls --disable-gtk-doc-html --without-p11-kit --disable-guile --with-included-libtasn1 --build=x86_64-w64-mingw32

以上

外部ライブラリにlibgme(game-music-emu-6.0)を追加しました。(バージョン1.2.8以外)
以下、安定版バイナリ一覧です。

32bit版
FFmpeg 2.4.1 "Fresnel"(x86)(7z) 10.8M
FFmpeg 2.3.3 "Mandelbrot"(x86)(7z) 10.6M
FFmpeg 2.2.8 "Muybridge"(x86)(7z) 10.2M
FFmpeg 1.2.8 "Magic"(x86)(7z) 8.65M

64bit版
FFmpeg 2.4.1 "Fresnel"(x64)(7z) 11.1M
FFmpeg 2.3.3 "Mandelbrot"(x64)(7z) 11.0M
FFmpeg 2.2.8 "Muybridge"(x64)(7z) 10.6M
FFmpeg 1.2.8 "Magic"(x64)(7z) 8.93M

PS
外部ライブラリx265はversion 1.3+282-32f50df7fa76、libvpxはv1.3.0-4425-gd4713f1です。
2014-09-30 13:00ごろ、外部ライブラリx265をversion 1.3+288-5a6845566d14、libvpxをv1.3.0-4430-ge6479c8に更新しました。
2014-10-01 07:00ごろ、外部ライブラリx265をversion 1.3+296-49aaafeb707a、libvpxをv1.3.0-4442-gb1b6fd8に更新しました。
2014-10-01 16:00ごろ、外部ライブラリx265をversion 1.3+315-d0fa09e9cca5、libvpxをv1.3.0-4450-g10c7876に更新しました。
2014-10-02 07:00ごろ、外部ライブラリx265をversion 1.3+317-2a55baeb89cf、libvpxをv1.3.0-4453-gfeee7d9に更新しました。
2014-10-02 14:15ごろ、外部ライブラリlibvpxをv1.3.0-4469-g439bd09に更新しました。
2014-10-02 16:45ごろ、外部ライブラリx265をversion 1.3+330-50490cd35e57に更新しました。

64bit版のlibx265でエンコード終了時に不正終了していることが分かりました。
そのためリビジョンを遡って、不正終了しないリビジョンで更新を止めることにします。
32bit版のffmpegでは発生していないので、64bit版のみの処置です。
現在、どのリビジョンで不正終了しないか調査中です。
更新が出来次第、こちらでお知らせします。

追記
8093リビジョンまで遡ることになりました。これは9月17日のリビジョンです。
バージョンはx265 version 1.3+221-c07038ca0e07となります。
64bit版のx265はこのリビジョンでしばらく更新をとめます。
git版は次回更新以降、反映させます。
安定版は今夜、更新しました。

追記2
リビジョン8115、x265 version 1.3+243-ee76b64fd051で64bit版の不正終了が直りましたので、再びリビジョンを更新します。最新の安定版は更新しました。

↑このページのトップヘ