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 в бэкенде своих проектов и сервисов.
Компьютерный доктор
Релиз FFmpeg 7.0 Dijkstra
В 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 в бэкенде своих проектов и сервисов.
Источник