x264 の 64bit バイナリを Windows 上でビルドする 2017

2021/02/11 追記

昨秋あたり移行、エンコード時にエラーを出すようになった!という場合は以下参照で。デフォルト文字コードが変更になってます。
x264 UTF-8になったとかそんなところのメモ - ..たれろぐ..

以下本文

先トピでの x264 の 64bit 版を作る場合はこちら。
先トピを書いた後に試してみたら 64bit 版もほぼ同手順でできたので。

基本は先トピと同じなので、違う点のみの記載です。

msys2 の準備

展開した先の mingw64.exe を実行する。

ビルドに必要なパッケージのインストール時に 32bit版(i686) gccではなく、64bit版(x86_64)のgcc を指定する。

$ pacman -S git make tar automake autoconf libtool pkg-config mingw-w64-x86_64-gcc

nasm のビルド&インストールと GPAC のビルド

nasm, GPAC それぞれで configure 時の prefix 指定を mingw32 → mingw64 に変更。

$ ./configure --prefix=/mingw64

もし、先に 32bit 版をコンパイルしていた場合は、

$ make clean

で掃除してから make し直すこと。

x264 のビルド

configure 時の host オプションを i686-w64-mingw32 → x86_64-w64-mingw32 に変更。
--extra-ldflags="-static -static-libgcc" オプションを追加。
(--extra-ldflags オプションを付けないと cmd.exe 上での実行時に標準出力にメッセージ類が出なくなる)

$ ./configure --extra-cflags="-pipe -march=native" --extra-ldflags="-static -static-libgcc" --enable-strip --host=x86_64-w64-mingw32
platform:      X86_64 ここが X86_64 になっているか確認
byte order:    little-endian
system:        WINDOWS
cli:           yes
libx264:       internal
shared:        no
static:        no
asm:           yes
interlaced:    yes
avs:           avisynth
lavf:          no
ffms:          no
mp4:           gpac
gpl:           yes
thread:        win32
opencl:        yes
filters:       crop select_every
lto:           no
debug:         no
gprof:         no
strip:         yes
PIC:           no
bit depth:     8
chroma format: all

You can run 'make' or 'make fprofiled' now.

これで make すると 64bit の x264.exe が作成されます。

本当に 64bit バイナリかどうかを調べる場合は以下参照で。
Windows 実行ファイルが32ビットか64ビットか確認する方法 - Qiita

参考

  • Cygwinmingwでfdk-aacとx265が使える64bit版ffmpegをビルドする - つーさのくーかん http://tu3.jp/01061
    • コンパイルオプション --extra-ldflags="-static -static-libgcc" に気付くきっかけ
    • なんでこのオプション付けないと cmd.exe 上で標準出力が出ないのか謎(msys上では出る)