x265.exe Multilib のビルドメモ

スポンサーリンク

 x265 の Multilib とは、一つのバイナリで 8bit, 10bit, 12bit の色深度をサポートしてエンコードを可能とする物。
 さほど気にはしていなかったけど、ソースファイル群を眺めていたら multilib.bat なるビルドを自動でやってくれるバッチファイルが入っていたので、これを少し書き換えて VSC2015 でビルドした。

必要なソフト

 Visual Studio Community 2015 でビルドするので必須。MFC も入れておくと他のソースをビルドするときにも役立つ。

 hg が必要なので tortoisehg をインストールする。
Bitbucket | The Git solution for professional teams
Collaborate on code with inline comments and pull requests. Manage and share your Git repositories to build and ship software, as a team.
 cmake も Windows 用をダウンロードしてインストールする。
CMake
 yasm はパスの通った所にコピーすれば OK
http://yasm.tortall.net/Download.html

x265 のソースを拾ってくる

 次の様にコマンドを打ってソースを拾ってくる。

hg clone https://bitbucket.org/multicoreware/x265

multilib.bat の書き換え

 ディレクトリ x265 以下 build/vc12-x86_64/multilib.bat を次の様にする。

@echo off
if "%VS140COMNTOOLS%" == "" (
  msg "%username%" "Visual Studio 14 not detected"
  exit 1
)

call "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat"

@mkdir 12bit
@mkdir 10bit
@mkdir 8bit

@cd 12bit
cmake -G "Visual Studio 14 Win64" ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF -DMAIN12=ON
if exist x265.sln (
  MSBuild /property:Configuration="Release" x265.sln
  copy/y Release\x265-static.lib ..\8bit\x265-static-main12.lib
)

@cd ..\10bit
cmake -G "Visual Studio 14 Win64" ../../../source -DHIGH_BIT_DEPTH=ON -DEXPORT_C_API=OFF -DENABLE_SHARED=OFF -DENABLE_CLI=OFF
if exist x265.sln (
  MSBuild /property:Configuration="Release" x265.sln
  copy/y Release\x265-static.lib ..\8bit\x265-static-main10.lib
)

@cd ..\8bit
if not exist x265-static-main10.lib (
  msg "%username%" "10bit build failed"
  exit 1
)
if not exist x265-static-main12.lib (
  msg "%username%" "12bit build failed"
  exit 1
)
cmake -G "Visual Studio 14 Win64" ../../../source -DEXTRA_LIB="x265-static-main10.lib;x265-static-main12.lib" -DLINKED_10BIT=ON -DLINKED_12BIT=ON
if exist x265.sln (
  MSBuild /property:Configuration="Release" x265.sln
  :: combine static libraries (ignore warnings caused by winxp.cpp hacks)
  move Release\x265-static.lib x265-static-main.lib
  LIB.EXE /ignore:4006 /ignore:4221 /OUT:Release\x265-static.lib x265-static-main.lib x265-static-main10.lib x265-static-main12.lib
)

pause

ビルドする

 multilib.bat を実行して放置しておけば x265/build/vc12-x86_64/8bit/Release/x265.exe という感じにバイナリが完成している。
 これのバージョンを確認すると無事に 8, 10, 12bit に対応した x265.exe が出来ていると確認出来た。

x265.exe --version
x265 [info]: HEVC encoder version 1.9+32-c2228fb8151d
x265 [info]: build info [Windows][MSVC 1900][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX XOP FMA4 FMA3 LZCNT BM
スポンサーリンク