GStreamer WebRTC Wrapper - Introduction - GstWebRTCWrapper Basics

From RidgeRun Developer Wiki


Previous: Introduction/Data_Channel Index Next: Architecture




This wiki introduces WebRTC technology support in the GStreamer framework.

What is GstWebRTCWrapperbin?

GstWebRTCWrapperbin is a GStreamer plug-in that wraps the GstWebRTCbin element developed by GStreamer providing more flexibility to be integrated on multiple WebRTC applications using customized signaling protocols, ICE serving standards and data channels.

WebRTC uses ICE servers (Interactive Connectivity Establishment), that act as intermediaries to find the most optimal network paths for communication to overcome obstacles such as NAT traversal and firewall traversal enabling devices to establish a direct connection.

The base signaler works alongside ICE servers to ensure a smooth communication setup. It serves as a central point for devices to discover and connect with each other. The base signaler facilitates the exchange of important information, including network addresses, encryption settings, and other necessary details.

WebRTC uses ICE servers to optimize network paths and establish direct connections, while base signaler act as a central point of contact to facilitate device discovery and connection establishment. These elements combine to enable real-time communication between devices.


Figure 1. GstWebRTCWrapper Main block

Why GstWebRTCWrapperbin?

Other WebRTC solutions automatically detect the video and audio sources, as well as the decoders/encoders and the other elements used to build the pipeline. This may be convenient for many applications but can be limiting for several other use cases. To mention some of them:

  • Extend existing pipeline to support WebRTC streaming.
  • Use non-standard pipeline configurations.
  • High performance pipeline tuning for resource critical systems.
  • Dynamic stream handling in a running pipeline.
  • Fine grained pipeline control.
  • Quick gst-launch prototyping.

GstWebRTCWrapperbin was developed based on these criteria. As such, the plug-in is ideal for:

  • Embedded platforms.
  • Existing media servers/applications.
  • Multiple Signaling protocols.
  • Advanced multimedia solutions.
  • Speed up the development.


Previous: Introduction/Data_Channel Index Next: Architecture