Track: WebRTC and Real-Time Applications |
Efficient Integration of GStreamer-Based Media Pipelines into External Software Components |
For over two decades, GStreamer remains a "Swiss Army knife" when building applications and services producing or handling media data. With a big – and still growing – collection of processing elements, developers can construct fairly sophisticated pipelines for audio and video, tailored to their specific use-cases. In particular, GStreamer can be a viable option for many WebRTC-based designs; for instance, when implementing hardware-based acceleration for video encoding or decoding. While the modern GStreamer already offers several good options to integrate it with external software components. Doing so may still be challenging and time-consuming, especially if it is desirable to run and control GStreamer as a separate process that can efficiently exchange media data with the main application – rather than embedding it inside the application itself and customizing the basic "appsrc" and "appsink" elements. Such a separation may be preferable, or even mandatory, for a number of reasons: From better modularity and security to specific licensing-related considerations. This talk will present a new open-source tool that aims at greatly simplifying the task of integrating GStreamer with external software components: Enabling developers to quickly add it into their designs – while allowing to launch it as a separate process, easily modify and tweak its media processing pipeline without rebuilding the main application, and to efficiently exchange media data with it. Additionally, the presentation will briefly review a companion project that uses this new tool to facilitate quickly implementing hardware-accelerated media encoding or decoding on top of the widely-used WebRTC library from Google. |
|
Presentation Video |
Presentation Notes |
Efficient_GStreamer_Integration.pdf |