GStreamer 1.22.0 multimedia framework available

After a year of development, GStreamer 1.22 was released, a cross-platform set of components for creating a wide range of multimedia applications, from media players and audio/video file converters, to VoIP applications and streaming systems. The GStreamer code is licensed under LGPLv2.1. Separately, updates to the gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly plugins are being developed, as well as the gst-libav binding and the gst-rtsp-server streaming server. At the API and ABI level, the new release is backwards compatible with the 1.0 branch. Binary assemblies will soon be prepared for Android, iOS, macOS and Windows (in Linux it is recommended to use packages from the distribution).

Key improvements in GStreamer 1.22:

  • Improved support for AV1 video encoding format. Added the ability to use hardware acceleration for AV1 encoding and decoding via the VAAPI/VA, AMF, D3D11, NVCODEC, QSV and Intel MediaSDK APIs. Added new RTP handlers for AV1. Improved parsing of AV1 in MP4, Matroska and WebM containers. The assemblies include elements with AV1 encoders and decoders based on the dav1d and rav1e libraries.
  • Implemented support for Qt6. Added qml6glsink element, which uses Qt6 to render video inside a QML scene.
  • Added gtk4paintablesink and gtkwaylandsink elements for rendering using GTK4 and Wayland.
  • New clients for adaptive streaming have been added that support HLS, DASH and MSS (Microsoft Smooth Streaming) protocols.
  • Provides the ability to create stripped-down assemblies that are optimized for size reduction.
  • Added support for WebRTC simulcast and Google Congestion Control.
  • A simple and self-contained plugin for sending via WebRTC is provided.
  • Added a new MP4 media container packer with support for fragmented and non-fragmented data.
  • Added new plugins for Amazon AWS storage and audio transcription services.
  • Updated bindings for the Rust language. Added 19 new plugins, effects and elements written in Rust (gst-plugins-rs). It is noted that 33% of the changes in the new GStreamer are implemented in Rust (the changes concern bindings and plugins), and the gst-plugins-rs plugin set is one of the most actively developed GStreamer modules. Plugins written in Rust can be used in programs in any language and working with them is similar to using plugins in C and C++.
  • Rust plugins are supplied as part of official binary packages for the Windows and macOS platforms (assembly and delivery are supported for Linux, Windows and macOS).
  • A WebRTC-based media server written in Rust has been implemented, supporting WHIP (WebRTC HTTP ingest) and WHEP (WebRTC HTTP egress).
  • Added the videocolorscale element, which combines video conversion and scaling capabilities.
  • Improved support for video with high color depth.
  • Added support for touch screen events to the Navigation API.
  • Added H.264/H.265 timestamp correction elements for PTS/DTS reconstruction before packaging media containers.
  • On the Linux platform, the use of DMA has been improved to work together with buffers when encoding, decoding, filtering and rendering video using hardware acceleration.
  • Integration with CUDA has been improved: the gst-cuda library and the cudaconvertscale element have been added, integration with D3D11 and NVIDIA dGPU NVMM elements has been provided.
  • Integration with Direct3D11 has been improved: a new gst-d3d11 library has been added, the capabilities of the d3d11screencapture, d3d11videosink, d3d11convert and d3d11compositor plugins have been expanded.
  • For AMD GPUs, new hardware-accelerated video encoders in H.264 / AVC, H.265 / HEVC and AV1 formats are implemented, built using the AMF (Advanced Media Framework) SDK.
  • The applemedia plugin has added support for H.265/HEVC video encoding and decoding.
  • Added support for H.265/HEVC video encoding to the androidmedia plugin.
  • The force-live property has been added to the audiomixer, compositor, glvideomixer and d3d11compositor plugins to force the live mode to be enabled.

Source: opennet.ru

Add a comment