After a year of development, the release of GStreamer 1.26 is presented, 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 distributed under the LGPLv2.1 license. Updates for the gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly plugins, as well as the gst-libav wrapper and gst-rtsp-server streaming server, are being developed separately. At the API and ABI level, the new release is backward compatible with the 1.0 branch. Binaries will soon be prepared for Android, iOS, macOS, and Windows (on Linux, it is recommended to use packages from the distribution).
Key improvements in GStreamer 1.26:
- The encoder and decoder for the VVC (Versatile Video Coding) video format have been added, also known as the H.266 video compression standard, developed jointly by the MPEG (ISO/IEC JTC 1) and VCEG (ITU-T) working groups, with participation from companies such as Apple, Ericsson, Intel, Huawei, Microsoft, Qualcomm, and Sony. H.266 succeeds H.265 (HEVC) and provides high efficiency for transmitting and storing all screen resolutions (from SD and HD to 4K and 8K), supports video with extended dynamic range (HDR, High Dynamic Range), and 360-degree panoramic video.
- The encoder and decoder for the LCEVC (Low Complexity Enhancement Video Coding) video coding standard have been added, implementing an additional layer with metadata to improve the quality of existing H.26x and MP4/ISOBMFF codecs.
- The encoder and decoder for the JPEG XS image format have been added, which is positioned as a lightweight image coding system that provides minimal latency during encoding and decoding and is focused on optimizing the transmission of very high-quality image sequences (up to 8K). JPEG XS allows for significant reductions in the required bandwidth of the communication channel without noticeable quality loss to the human eye.
- The ability to substitute and extract hidden subtitles for H.264 and H.265 formats has been added.
- Support for adaptive streaming based on HLS (HTTP Live Streaming) and DASH (Dynamic Adaptive Streaming over HTTP) protocols has been improved. New multimedia data sinks hlscmafsink and hlssink3 have been added for outputting CMAF (fMP4) and MPEG-TS fragments, as well as hlsmultivariantsink for variable output.
- The MPEG-TS multimedia container packer and unpacker has been updated to support H.266, JPEG XS, AV1, and VP9 codecs, as well as SMPTE ST-2038 and ID3 metadata.
- Packers and unpackers for the H.266/VVC codec have been added to the Matroska and ISO MP4 formats. Unpackers for video in Hap and Lagarith formats have been added to MP4.
- Support for SMPTE 2038 has been added, a system for attaching additional data and metadata to multimedia containers.
- Integration with the Vulkan graphics API has been improved. Enhanced memory management, color space selection, device control, and fullscreen capabilities have been added. Support for Vulkan extensions for accelerating H264 and H265 video decoding has been introduced. The performance of the encoder utilizing Vulkan has been increased.
- Integration with OpenGL has been improved. Support for additional color space conversion formats and pixel formats has been added. Support for importing streams using DMABufs has also been added.
- Integration with the Qt6 library and QML has been improved.
- Components for integration with CUDA and the NVIDIA Video Codec SDK have been expanded. An AV1 encoder based on the NVCODEC API has been added.
- A gst-d3d12 library with encoders and decoders based on the Direct3D 12 API has been implemented.
- Support for MIKEY key management on the client-side has been added to the RTSP stack.
- Support for reordering audio channels has been added to audioconvert.
- OpenGL/WGL support on the Windows platform has been added to the GTK3-based plugin.
- Support for JPEG and PNG formats has been added to the imagefreeze element.
- The pitch element has been implemented with the capability to play in reverse.
- Authentication mechanisms on RTP servers have been improved in the rtmp2 element. Support for authentication in Limelight CDN has been added.
- Elements to accelerate H.266 (VVC) decoding, as well as VP8 and JPEG encoding, have been added to the VA-API integration plugin.
- Elements for working with streams based on the QUIC protocol (raw QUIC, RTP-over-QUIC, and WebTransport) have been added.
- The gst-plugins-rs set has added 23 new elements or plugins written in Rust. Plugins written in Rust can be used in programs written in any language and work similarly to C and C++ plugins.
Source: opennet.ru
