AV1 Codec Library を Windows10 でビルドする


「aom が Windows 環境でビルドできないよー」と知人から言われたので、その answer としてのまとめです。
Windows 10 でビルドできた手順です。

本家の情報

AV1 Codec Library

Building the lib and applications にビルド手順が書いてありますが、その通りに実行してもうまくいかない場合があるようです。

必要なライブラリのインストール

  • CMake version 3.5 or higher.
  • git
    • あたらしめのやつで
  • perl
    • ActiveState Perl 5.24.3.2404 を使いました。
    • https://www.activestate.com/activeperl/downloads
    • バージョン 5.10.10 未満の場合 cmake が成功したかのように見えますが、よく見るとエラーが出ています。
      • aom_version.h が生成されずビルドが失敗してしまう・・・
  • nasm
    • yasmでも良いらしいですが、インストーラー形式で配布されている nasm を選択しました。
    • インストーラは「管理者で実行」しないと c:\Program Files\NASM にインストールできないので注意。
    • https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/win64/
    • 環境変数 PATH に、インストール作ディレクトリ C:\Program Files\NASM を追加します。
  • Visual Studio 2015 Community (Express)
    • 2015 は過去のバージョンのため、MSDNサブスクリプションか、無料の Dev Essentials の登録が必要です。
    • Visual Studio Community (Express) 2015 の日本語版をダウンロードし、インストールします。
    • Visual Studio 2017 では cl.exe の使用方法が変わっているらしく、うまくいきませんでした。

ビルド手順

適当な作業ディレクトリでソースコードを取得します。

$ git clone https://aomedia.googlesource.com/aom

aom\ にソースコードが取得できました。
aom\work をビルド用のディレクトリとし cmake します。

$ cd aom
$ mkdir work
$ cd work
$ cmake .. -DCONFIG_UNIT_TESTS=0

cmake の実行でエラーが出た場合、そのエラーメッセージに応じて以下のようなオプションを追加するとうまくいったりします。
一度エラーが発生した場合には aom\work の内容を全削除してから cmake の再実行をしてください。

-DAOM_TARGET_CPU=generic
-DCMAKE_CXX_COMPILER="C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe"

CMAKE_CXX_COMPILERで指定するコンパイラが存在しない場合には、以下のページが参考になると思います。

cmake が成功すると、aom\work にソリューションファイル AOM.sln と、プロジェクトファイルが多数生成されます。
AOM.sln を Visual Studio で開き、ビルドすることができます。

デバッグする場合には「スタートアッププロジェクト」を変更します。

  • エンコーダ
    • aomenc
  • デコーダ
    • aomdec

Win32 - Release でビルドするとコンパイラが落ちますが、謎。