libavifをソースからビルドしてavifencコマンドを実行

dnf経由でlibavif-toolsをインストールしてavifencを実行したけど、webpとファイルサイズが変わらなかったので、最新をビルドしてみたときの覚書。

前は失敗したので、GitHubのREADMEを参考にすることにした。
参考: libavif-toolsをインストールしてJpegからAVIFへ一括変換。

環境: CentOS Stream 9, libavif v1.1.1

ビルドに必要なツールとライブラリをインストール。
# dnf install cmake zlib-devel libpng-devel libjpeg-devel libaom-devel
# dnf install libstdc++-static glibc-static

既にgit clone済みなので最新をチェックアウトする。
# cd /opt/software/libavif/
# git checkout v1.1.1

ビルド実行。
DAVIF_LIBYUV=LOCALだとビルド失敗したのでOFFにした。
# cd ../
# cmake -S libavif -B libavif/build -DBUILD_SHARED_LIBS=OFF -DAVIF_CODEC_AOM=LOCAL -DAVIF_LIBYUV=OFF -DAVIF_LIBSHARPYUV=LOCAL -DAVIF_JPEG=LOCAL -DAVIF_ZLIBPNG=LOCAL -DAVIF_BUILD_APPS=ON -DCMAKE_C_FLAGS_RELEASE="-static" -DCMAKE_EXE_LINKER_FLAGS="-static"
# cmake --build libavif/build --parallel

通った。
インストールする。
# cd libavif/build/
# make install

[ 39%] Performing build step for 'libjpeg'
[ 11%] Built target jpeg16-static
[ 32%] Built target simd
[ 53%] Built target jpeg12-static
[100%] Built target jpeg-static
[ 39%] No install step for 'libjpeg'
[ 39%] Completed 'libjpeg'
[ 42%] Built target libjpeg
[ 45%] Built target avif_static
[ 63%] Built target zlibstatic
[ 63%] Built target png_genfiles
[ 84%] Built target png_static
[ 93%] Built target avif_apps_obj
[ 93%] Built target avif_apps
[ 96%] Built target avifenc
[100%] Built target avifdec
Install the project...
-- Install configuration: "Release"
-- Installing: /usr/local/bin/avifenc
-- Installing: /usr/local/bin/avifdec
-- Installing: /usr/local/lib64/libavif.a
-- Installing: /usr/local/lib64/pkgconfig/libavif.pc
-- Installing: /usr/local/include/avif/avif.h
-- Installing: /usr/local/include/avif/avif_cxx.h

確認。
# cd
# avifenc --version

Version: 1.1.1 (aom [enc/dec]:3.9.1)
libyuv : unavailable

変換実行。
# cd /project/
# avifenc home/key-visual.jpg home/key-visual.avif

一括変換。
# find . -name "*.jpg" -print0 | xargs -0 -I {} sh -c 'f="{}"; avifenc "$f" "${f%.*}.avif"'

ファイルサイズは変わらない…。
DAVIF_LIBYUVが影響しているかもしれない。


▼ 関連記事