Ускорение через Vulkan и NVIDIA Optical Flow
Выход FFmpeg 9.1 знаменует собой значительный шаг вперед в аппаратном ускорении обработки видео. Ключевой новинкой стал Vulkan-кодировщик для формата APV (Advanced Professional Video). Этот безроялти-кодек теперь может использовать шейдеры GPU для кодирования, что особенно важно для профессиональных рабочих процессов, требующих высокой производительности.
Параллельно с этим, разработчики внедрили фильтр vf_fruc_vulkan, использующий NVIDIA Optical Flow для интерполяции кадров. FRUC (Frame Rate Up-Conversion) позволяет эффективно повышать частоту кадров, что критично для плавности видео и создания slow-motion эффектов без потери качества.
Расширение поддержки кодеков и форматов
FFmpeg 9.1 значительно расширяет спектр поддерживаемых аудио- и видеоформатов. Среди самых заметных добавлений — поддержка AAC (существенно улучшенный энкодер), xHE-AAC (через libfdk-xhe-aac), DSD и LPCM для DVD-Audio. Также добавлены декодеры для форматов DSD, Rhetorex ADPCM, ADPCM IMA Citrix, Panasonic RW2 и Infinity IMM6.
Для работы с изображениями и специфическими контейнерами внедрены:
- Кодирование и декодирование ASTC (через libastcenc) с поддержкой контейнеров .astc и KTX 1.0.
- Поддержка H.264 data partitioning для более гибкой работы с битстримом.
- Новый muxer для протокола inline-изображений iTerm2.
Нейросети и оптимизация
Важным улучшением для AI-инференса стала поддержка D3D12 DirectML zero-copy для бэкенда ONNX Runtime. Это позволяет избегать лишних копирований данных между памятью GPU и CPU, ускоряя работу моделей машинного обучения, интегрированных в пайплайны обработки медиа.
Сводная таблица ключевых изменений
| Категория | Нововведение / Улучшение | Значение |
|---|---|---|
| Видео (Vulkan) | APV Vulkan encoder, H.265 Vulkan encode optimizations | Аппаратное ускорение кодирования для APV и оптимизация H.265 |
| Видео (NVIDIA) | vf_fruc_vulkan (Optical Flow) | Интерполяция кадров с использованием оптического потока NVIDIA |
| Аудио | AAC (улучшено), xHE-AAC, DSD, DVD-Audio LPCM | Поддержка современных и Hi-Res аудиоформатов |
| Изображения | ASTC (libastcenc), KTX 1.0 | Работа с текстурами для игр и 3D-графики |
| AI/ML | D3D12 DirectML zero-copy (ONNX Runtime) | Ускорение нейросетевого инференса за счет отсутствия копирования памяти |
| asf_o demuxer | Чистка устаревшего кода |
Как получить
Код FFmpeg 9.1 уже доступен в ветке 9.1 release branch проекта. Пользователям рекомендуется обновиться для получения доступа к новым возможностям ускорения и поддержки актуальных медиаформатов.
Источник: Phoronix ↗
