CentOS Stream 10 + libavif-toolsでJPEG→AVIF一括変換

CentOS Stream 10の環境で、JpegからAVIFに変換したときの覚書。

環境: CentOS Stream 10


1. ImageMagickをインストールして試す → AVIF未対応

ImageMagickで対応しているか確認。
# dnf install libheif libaom ImageMagick

バージョン確認
# magick --version

Version: ImageMagick 7.1.1-47 Q16-HDRI aarch64 22763 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(4.5)
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc heic jbig jng jp2 jpeg jxl lcms lqr ltdl lzma openexr pangocairo png ps raqm raw rsvg tiff webp wmf x xml zip zlib zstd
Compiler: gcc (14.2)

AVIFサポートを確認
# magick identify -list format | grep AVIF

対応していない。

ImageMagickはアンインストール。
# dnf remove libheif libaom ImageMagick


2. libavif-toolsをインストール

前の記事で試したlibavif-toolsをインストール。
参考: libavif-toolsをインストールしてJpegからAVIFへ一括変換。
# dnf install libavif-tools

バージョン確認。
# avifenc --version

Version: 1.0.4 (dav1d [dec]:1.5.1, aom [enc/dec]:v3.12.0, svt [enc]:v2.3.0)
libyuv : unavailable

変換する。
# avifenc input.jpg output.avif

下位階層まで含めて一括変換するコマンド。
# find . -name "*.jpg" -print0 | xargs -0 -I {} sh -c 'f="{}"; avifenc -q 40 -s 4 -y 420 "$f" "${f%.*}.avif"'

コマンドオプション

  • -q 40: 品質を明示的に指定(0:最低, 63:最高/可逆)
  • -s 4: デフォルト(6)より少し時間をかけて圧縮効率を上げる (0:最遅/高効率, 10:最速)
  • -y 420: ソースのJPEG形式に合わせ、ファイルサイズの肥大化を防ぐ

オプションを指定した方がファイルサイズが小さくなる。
オプションの説明はhelpを表示して、AIに要約させると分かりやすい。
# avifenc --help



▼ 関連記事