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 avifdecInstall 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が影響しているかもしれない。
▼ 関連記事