Об этом проекте

libavif — это портируемая реализация формата AV1 Image File Format (AVIF) на C, предназначенная для удобной интеграции в другие проекты. Она поддерживает кодирование и декодирование всех поддерживаемых AV1 форматов YUV и битовых глубин, включая альфа-канал. Вместе с библиотекой поставляются утилиты командной строки: avifenc для кодирования и avifdec для декодирования. Базовое использование командной строки: avifenc -q 75 input.[jpg|png|y4m] output.avif avifdec output.avif decoded.png Запустите avifenc --help для полного списка опций. Примеры использования API находятся в каталоге examples; включение опции CMake AVIF_BUILD_EXAMPLES собирает и запускает их. Установка доступна через распространённые менеджеры пакетов: vcpkg в Windows, Homebrew или MacPorts в macOS, apt в Linux на базе Debian, yum в Linux на базе Red Hat и pacman в MSYS2 UCRT64. Официальные бинарные сборки для Windows публикуются на странице releases. Рекомендуется использовать помеченные релизы, а не ветку main. Для сборки требуется CMake. Зависимости управляются флагами CMake, такими как AVIF_CODEC_AOM и AVIF_LIBYUV, которые принимают значения OFF, SYSTEM или LOCAL. По умолчанию ни один кодек AV1 не включён; необходимо выбрать хотя бы один из libaom (кодер и декодер), dav1d (декодер), libgav1 (декодер), rav1e (кодер) и SVT-AV1 (кодер). Libyuv необязателен, но настоятельно рекомендуется для более быстрых преобразований цветового пространства и по умолчанию имеет значение SYSTEM. Тесты можно собрать с помощью AVIF_BUILD_TESTS; тесты на основе GoogleTest требуют AVIF_GTEST, а тесты фаззинга используют fuzztest. Покрытие кода доступно через AVIF_ENABLE_COVERAGE и цель avif_coverage при установленных clang и LLVM. Примеры команд сборки охватывают компоновку с установленными зависимостями и сборку всего с нуля. Библиотека написана на C99, большинство тестов — на C++14. Форматирование использует clang-format для исходных файлов и cmake-format для файлов CMake. Проект выпускается под лицензией BSD.