🖼️

Windowsでlibavifをビルドする

2024/01/28に公開

環境構築

CMake、Ninja、NASMの3つが必要なのでインストールします。

winget install NASM.NASM Kitware.CMake

NinjaはGitHubからninja-win.zipを選択してダウンロード後展開し、適当なフォルダにninja.exeを置いてパスを通します。[1]

nasm --version
clang --version
ninja --version

と入力してバージョン情報が出力されればOKです。

ビルド

基本はGitHubのREADME通りにコマンドを実行すればOKです。
ですが執筆時点では.\ext\libwebp\build\libsharpyuv.libとして生成されるべきファイルが.\ext\libwebp\build\sharpyuv.libとして生成されてしまいその後のCMakeに失敗するので、renコマンドで名前を変更しています。
それ以外のコマンドはREADMEに書いてあるものと一緒です。

git clone -b v1.0.3 https://github.com/AOMediaCodec/libavif.git
cd libavif/ext
./aom.cmd
./libyuv.cmd
./libsharpyuv.cmd
./libjpeg.cmd
./zlibpng.cmd
cd ..
ren .\ext\libwebp\build\sharpyuv.lib libsharpyuv.lib
cmake -S . -B build -DBUILD_SHARED_LIBS=OFF -DAVIF_CODEC_AOM=ON -DAVIF_LOCAL_AOM=ON -DAVIF_LOCAL_LIBYUV=ON -DAVIF_LOCAL_LIBSHARPYUV=ON -DAVIF_LOCAL_JPEG=ON -DAVIF_LOCAL_ZLIBPNG=ON -DAVIF_BUILD_APPS=ON
cmake --build build --parallel

.\ext\aom\build.libavif以下にaom.libが、.\build\Release以下にavif.libが生成されます。
また、以下のコマンドでavifenc.exeavifdec.exeが生成できます。

msbuild ".\build\libavif.sln" /m /verbosity:minimal /p:Configuration=Release
脚注
  1. 一応winget install Ninja-build.Ninjaが使えるはずですが、筆者の環境では失敗したので直接入れる方法をとっています。 ↩︎

GitHubで編集を提案

Discussion