Найти тему
Проект OpenNet

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

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

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

  • Улучшена поддержка формата кодирования видео AV1. Добавлена возможность использования аппаратного ускорения кодирования и декодирования AV1 через API VAAPI/VA, AMF, D3D11, NVCODEC, QSV и Intel MediaSDK. Добавлены новые RTP-обработчики для AV1. Улучшен разбор AV1 в контейнерах MP4, Matroska и WebM. В состав сборок включены элементы с кодировщиками и декодировщиками AV1 на базе библиотек dav1d и rav1e.
  • Реализована поддержка Qt6. Добавлен элемент qml6glsink, использующий Qt6 для отрисовки видео внутри сцены QML.
  • Добавлены элементы gtk4paintablesink и gtkwaylandsink для отрисовки с использованием GTK4 и Wayland.
  • Добавлены новые клиенты для адаптивного стриминга, поддерживающие протоколы HLS, DASH и MSS (Microsoft Smooth Streaming).
  • Предоставлена возможность создания урезанных сборок, оптимизированных для сокращения размера.
  • Добавлена поддержка WebRTC simulcast и Google Congestion Control.
  • Предоставлен простой и самодостаточный плагин для отправки через WebRTC.
  • Добавлен новый упаковщик медиаконтейнеров MP4 с поддержкой фрагментированных и не фрагментированных данных.
  • Добавлены новые плагины для хранилища Amazon AWS и сервисов транскрипции звука.
  • Обновлены привязки для языка Rust. Добавлено 19 новых плагинов, эффектов и элементов, написанных на Rust (gst-plugins-rs). Отмечается, что 33% из изменений в новом GStreamer реализованы на Rust (изменения касаются привязок и плагинов), а набор плагинов gst-plugins-rs является одним и наиболее активно развиваемых модулей GStreamer. Плагины, написанные на языке Rust, могут использоваться в программах на любых языках и работа с ними аналогична использованию плагинов на C и C++.
  • Обеспечена поставка плагинов на Rust в составе официальных бинарных пакетов для платформ Windows и macOS (сборка и поставка поддерживается для Linux, Windows и macOS).
  • Реализован написанный на Rust медиасервер на базе WebRTC, поддерживающий WHIP (WebRTC HTTP ingest) и WHEP (WebRTC HTTP egress).
  • Добавлен элемент videocolorscale, сочетающий в себе возможности для конвертации и масштабирования видео.
  • Улучшена поддержка видео с большой глубиной цвета.
  • В API Navigation добавлена поддержка событий от сенсорных экранов.
  • Добавлены элементы коррекции временных меток H.264/H.265 для реконструкции PTS/DTS перед упаковкой медиаконтейнеров.
  • На платформе Linux улучшено применение DMA для совместной работы с буферами при кодировании, декодировании, фильтрации и отрисовке видео с применением аппаратного ускорения.
  • Улучшена интеграция с CUDA: добавлены библиотека gst-cuda и элемент cudaconvertscale, обеспечена интеграция с элементами D3D11 и NVIDIA dGPU NVMM.
  • Улучшена интеграция с Direct3D11: добавлена новая библиотека gst-d3d11, расширены возможности плагинов d3d11screencapture, d3d11videosink, d3d11convert и d3d11compositor.
  • Для GPU AMD реализованы новые аппаратно ускоренные кодировщики видео в форматах H.264 / AVC, H.265 / HEVC и AV1, построенные с использованием SDK AMF (Advanced Media Framework).
  • В плагин applemedia добавлена поддержка кодирования и декодирования видео H.265 / HEVC.
  • В плагин androidmedia добавлена поддержка кодирования видео H.265 / HEVC.
  • В плагины audiomixer, compositor, glvideomixer и d3d11compositor добавлено свойство force-live для принудительного включения live-режима.