После года разработки состоялся релиз 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.
- Добавлен новый упаковщик медиаконтейнеров 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, сочетающий в себе возможности для конвертации и масштабирования видео.
- Улучшена поддержка видео с большой глубиной цвета.
- Добавлены элементы коррекции временных меток 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-режима.