Доступен мультимедийный фреймворк GStreamer 1.20.0

После полутора лет разработки состоялся релиз GStreamer 1.20, написанного на языке Си кроссплатформенного набора компонентов для создания широкого спектра мультимедиа приложений, от медиаплееров и конвертеров аудио/видео файлов, до VoIP-приложений и систем потокового вещания. Код GStreamer распространяется под лицензией LGPLv2.1. Одновременно доступны обновления плагинов gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, а также обвязка gst-libav 1.20 и сервер потокового вещания gst-rtsp-server 20. На уровне API и ABI новый выпуск обратно совместим с веткой 1.0. Бинарные сборки в скором времени будут подготовлены для Android, iOS, macOS и Windows (в Linux рекомендуется использовать пакеты из дистрибутива).

Ключевые улучшения GStreamer 1.20:

  • Разработка на GitLab переведена на использование единого репозитория, общего для всех модулей.
  • Добавлена новая высокоуровневая библиотека GstPlay, которая пришла на смену API GstPlayer и предлагает сходные функции для воспроизведения контента, отличающиеся использованием для уведомления приложений шины сообщений вместо сигналов GObject.
  • Добавлена поддержка декодирования информации о прозрачности в формате WebM, которая позволяет воспроизводить видео VP8/VP9 с прозрачными областями.
  • В профили кодирования добавлена поддержка настройки дополнительных свойств, специфичных для приложений.
  • В Compositor реализована поддержка преобразования и смешивания видео в многопоточном режиме.

  • В классах depayloader и payloader унифицирована поддержка работы с дополнительными заголовками RTP (RTP Header Extensions).
  • Добавлена поддержка механизма упреждающей коррекции ошибок SMPTE 2022–1 2-D (Forward Error Correction).

  • В encodebin и transcodebin для кодеков VP8, VP9 и H.265 реализован умный режим кодирования («smart encoding»), при котором перекодировка выполняется только при необходимости, а в остальное время выполняется проброс имеющегося потока.
  • Обеспечена совместимость плагина souphttpsrc в libsoup2 и libsoup3.
  • Добавлена возможность декодирования входных данных на уровне промежуточных кадров (sub-frame), что позволяет начать декодирование не дожидаясь получения полного кадра. Поддержка данной оптимизации задействована в декодировщиках OpenJPEG JPEG 2000, FFmpeg H.264 и OpenMAX H.264/H.265.

  • При декодировании видео для протоколов RTP, WebRTC и RTSP обеспечена автоматическая обработка потери пакетов, повреждения данных и запросов ключевых кадров.
  • В упаковщики медиаконтейнеров mp4 и Matroska добавлена поддержка изменения данных кодека на лету, что позволяет изменять профиль, уровень и разрешение для входных потоков H.264/H.265.
  • Добавлен режим создания фрагментированных медиаконтейнеров mp4.
  • В порт на базе WPE (WebKit Port for Embedded) добавлена поддержка звука.
  • Добавлена возможность использования CUDA для преобразования цветового пространства, масштабирования элементов и загрузки элементов.
  • Для элементов OpenGL glupload и gldownload добавлена поддержка памяти NVMM (NVIDIA Memory Module).

  • Улучшена поддержка WebRTC.
  • Предложен новый плагин для VA-API (Video Acceleration API), поддерживающий больше декодировщиков и элементов постпроцессинга.

  • В API AppSink добавлена поддержка событий в дополнение к буферам и спискам буферов.
  • В AppSrc добавлены дополнительные настройки внутренних очередей.
  • Обновлены привязки на языке Rust и добавлено 26 новых плагинов, написанных на Rust (gst-plugins-rs).

  • Добавлены элементы aesdec и aesenc для шифрования и расшифровки с использование алгоритма AES.

  • Добавлены элементы fakeaudiosink и videocodectestsink для тестирования и отладки.
  • Улучшены средства для создания минималистичных сборок GStreamer.
  • Добавлена возможность сборки с FFmpeg 5.0.
  • Для Linux реализованы варианты кодеков MPEG-2 и VP9, работающих без сохранения состояния (Stateless).
  • Для Windows в декодировщик на базе Direct3D11/DXVA добавлена поддержка AV1 и MPEG-2.



Источник: http://www.opennet.ru/opennews/art.shtml? num=56635

© OpenNet