5 апреля 2024 года состоялся релиз открытого мультимедиа-пакета релиз FFmpeg 7.0 под кодовым названием Dijkstra для Linux, Windows и macOS. Предыдущая мажорная версия проекта вышла в ноябре 2023 года.
В FFmpeg 7.0 входит набор приложений и коллекция библиотек для операций над различными мультимедиа-форматами (запись, преобразование и декодирование звуковых и видеоформатов). Исходный код проекта распространяется под лицензиями LGPL и GPL. Разработка FFmpeg ведётся сообществом смежно с проектом MPlayer.
В FFmpeg 7.0 разработчиками проведён крупнейший рефакторинг кода за многие годы, который стал огромным достижением для проекта, включая поддержку multi-threading CLI, демультиплексора DVD-Video, начальную поддержку AOMedia IAMF для модели и форматов иммерсивного звука, средство рендеринга Vulkan для ffplay и многие другие изменения.
По информации OpenNET, основные изменения, дополнения и обновления в коде FFmpeg 7.0:
в утилите командной строки ffmpeg обеспечено параллельное выполнение операций распаковки/упаковки медиаконтейнеров, декодирования, кодирования и применения фильтров;
реализована поддержка кодирования и декодирования видео в формате MPEG-5 (EVC — Essential Video Coding), используя внешнюю библиотеку libxevd;
добавлены распаковщики и упаковщики медиаконтейнеров (demuxer/muxer) для формата QOA (Quite OK Audio), применяемого для передачи звука без потери качества. Утверждается, что декодирование QOA осуществляется быстрее Ogg-Vorbis в три раза при достижении в QOA более высокого качества и уровня сжатия по сравнению с ADPCM;
добавлены распаковщики и упаковщики медиаконтейнеров (demuxer/muxer) для формата IAMF (Immersive Audio Model and Format), определяющего контейнер для распространения объёмного звука. Формат предусматривает передачу дополнительной информации, необходимой для работы алгоритмов воссоздания звуковой сцены и микширования звука, а также учитывает распространение звуковых сигналов в трехмерном пространстве для воссоздания звучания, максимально близкого к естественному. Обеспечена поддержка метаданных IAMF для форматов MP4 и ISOBMFF;
добавлен экспериментальный декодировщик для формата VVC (Versatile Video Coding), известного также как стандарт сжатия видео H.266, разработанный совместно рабочими группами MPEG (ISO/IEC JTC 1) и VCEG (ITU-T), при участии таких компаний, как Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm и Sony. H.266 идёт на смену H.265 (HEVC) и обеспечивает высокую эффективность передачи и хранения всех экранных разрешений (от SD и HD до 4K и 8K), поддерживает видео с расширенным динамическим диапазоном (HDR, High Dynamic Range) и панорамное видео в режиме 360 градусов;
реализована возможность использования API D3D12VA (Direct 3D 12 Video Encoding) для аппаратного ускорения декодирования форматов H264, HEVC, VP9, AV1, MPEG-2 и VC1;
в утилиту ffplay добавлена поддержка аппаратного ускорения декодирования, используя API Vulkan и libplacebo;
добавлена поддержка протокола Content URI, используемого в платформе Android;
повышены требования к окружению для сборки — для компиляции FFmpeg теперь необходим компилятор с поддержкой стандарта C11. В одном из следующих выпусков в качестве минимально поддерживаемой версии планируют использовать C17;
для кодировщиков на базе QSV (Intel Quick Sync Video) метод управления битретом по умолчанию изменён с VBR (переменный битрейт) на CQP (постоянный битрейт);
добавлен новый распаковщик медиаконтейнеров DVD-Video, основанный на использовании библиотек libdvdnav и libdvdread от проекта VideoLAN;
в реализацию формата flv добавлена возможность передачи метаданных в пакетах (PacketTypeMetadata);
добавлен кодировщик DXV DXT1;
добавлен декодировщик LEAD MCMP;
добавлены упаковщики медиаконтейнеров (muxer) RCWT (Raw Captions with Time) и AEA;
для форматов MP4 и ISOBMFF реализована возможность включения метаданных AVE (Ambient Viewing Environment);
реализована поддержка технологии AFGS1 (AOMedia Film Grain Synthesis 1), используемой в спецификации AV1 Film Grain и предназначенной для повышения эффективности зернистых изображений;
добавлена поддержка статичных (still) изображений в форматах HEIF и AVIF, а также мозаичных статичных изображений;
для формата AV1 реализован профиль Dolby Vision;
обеспечена поддержка проброса метаданных HDR10 при кодировании через библиотеки libx264, libx265 и libsvtav1;
добавлены оптимизации для ускорения работы с форматом HEVC на архитектурах AArch64 и Loongarch. Внесены оптимизации производительности для ускорения кодирования и декодирования форматов AAC, FLAC, JPEG-2000, LPC, RV4.0, SVQ, VC1 и VP8 на системах с архитектурой RISC-V;
добавлен бэкенд dnn для создания фильтров, использующих модели машинного обучения, загружаемые при помощи libtorch;
добавлен bitstream-фильтр showinfo для отладочного вывода информации о пакетах;
добавлен обработчик qrencodesrc для вставки QR-кодов.
20 декабря 2020 года проекту FFmpeg исполнилось 20 лет. Первый коммит для набора свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио- и видеозаписи в различных форматах, был написан автором проекта Фабрисом Белларом (Fabrice Bellard) 20 декабря 2000 года. Многие IT-компании, включая Google и YouTube, используют FFmpeg в бэкенде своих проектов и сервисов.
Источник: habr.com