Description
Frobisher Rooms
This talk presents the implementation of a video encoder analysis within GStreamer. We'll demonstrate our video-encoder-stats element that collects real-time encoding performance metrics including bitrate, processing time, CPU usage, and VMAF quality scores, attaching this data as metadata to video buffers throughout the pipeline. The presentation covers our video-compare-mixer element that...
Developing and debugging applications leveraging hardware-accelerated video decoding often requires access to specific hardware, creating a significant barrier to early development and continuous integration.
This talk introduces a new V4L2 decoder implementation that provides a software backend, effectively emulating a hardware decoder. This allows developers to write and test their...
Alpha Channel is an essential tool in modern video workflows, enabling transparency and visual effects as required in telepresence and Virtual Reality applications, or modern websites. The Versatile Video Coding (VVC/H.266) standard supports Alpha Channel natively by encoding transparency data as an independent auxiliary layer signaled via SDI and ACI SEI messages (ITU H.274).
This...
Over a year ago, we introduced WirePlumber 0.5, bringing major advancements such as the event stack for fine-grained control of PipeWire events, runtime settings to dynamically adjust behavior, and smart filters for automatic audio and video filter handling. These features marked a big step forward. However, WirePlumber is still evolving, and many use cases remain unmet.
In this talk, we’ll...
A new version of the Enhanced RTMP(v2) specification was announced earlier this year and we have one of the features, Multitrack Capabilities, implemented (!9682) in GStreamer recently (audio only for now though).
In this talk, I will briefly introduce the...
HTTP Live Streaming (HLS), a widely adopted protocol for live video streaming, and has been supported by GStreamer for a long time. HLS enables streaming of multiple formats and bit rates, allowing players to dynamically adjust their streaming quality based on network conditions for ensuring optimal viewer experience.
HLS specification has support for I-frame only playlist where each media...
Go is a modern systems programming language that offers awesome concurrency. This talk will show you why you should consider Go for your next GStreamer project.
In my master’s thesis, I explored region-based compression for sports broadcasting. We used FFmpeg because it provided a generic addroi filter for attaching ROI metadata that we could use for multiple encoders, but GStreamer currently lacks a simple way to define regions and pass them to encoders downstream, and I wanted to...
In GStreamer, the media pipeline operation is defined by threads that are continuously pushing or pulling data through the pads of the linked elements. This is an elegant and very flexible way of operating the pipeline, but there are certain drawbacks.
PipeWire follows a different approach, using a single thread that wakes up elements in a dependency-based sequence to consume and produce...
In WebRTC, data channels are used to exchange arbitrary data.
Data channels makes the perfect companion to the live video and audio features of WebRTC. Unfortunately, the throughput of the data channels is far from satisfactory in many network environments.
This presentation will summarize what Axis have been doing, are doing, and possibly will be doing to improve the performance in the...
The WebKit WPE and GTK ports are using GstWebRTC and webrtcbin as their WebRTC
backend. As the first Web engine to rely on GstWebRTC, improving spec
compatiblity is an important goal for us. During this talk we will present the
current integration status of GstWebRTC in WebKit and the achievements
accomplished since GStreamer Conference 2024.
In Pexip we’ve implemented a new base class, GstBaseIdleSrc, designed for elements that don’t need a dedicated streaming thread but only push buffers occasionally; either when signaled from the outside or on specific events. This avoids the overhead of an always-running thread and simplifies writing event-driven sources.
In this talk, we’ll introduce the motivation behind GstBaseIdleSrc,...
Abstract: Transforming Our Video Management System with GStreamer
In our journey to modernize and optimize our Video Management System (VMS), which currently manages more than 100000 cameras from various manufacturers, we've transitioned the foundation of our live RTSP camera streaming from a custom FFmpeg-based solution to GStreamer pipelines. Additionally, we have reengineered our offline...
The purpose of this talk is to present the changes made after last year’s presentation. Initially, we will show again the goal behind this project, along with the following project's changes:
- WebTransport support in GStreamer
- Optimizing GStreamer with ORC for WASM
- Upstreaming process
- Real-life usage
This talk will discuss the methods used to reduce latency in a bidirectional WebRTC pipeline, i.e., video but primarily audio in both directions. The primary topics are
- Splitting the pipeline using intersrc/intersink, discussing the global pipeline latency and how to do avoid unnecessary clock syncing. This discusses pipeline latency and what is needed to allow media streaming in two...
How we ported and brought dcsctp into GStreamer to replace the current stack (usrsctp).













