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

Kate

Administrator
Команда форума
После полутора лет разработки состоялся релиз 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 c 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.
 
Сверху