webrtcsrc

webrtcsrc is the source counterpart of the webrtcsink element and can be used to receive streams from it, it can also be used to easily playback WebRTC streams coming from a web browser.

To try the element, you should run webrtcsink as described in its documentation, finding its peer-id (in the signalling server logs for example) and then run:

gst-launch-1.0 webrtcsrc signaller::producer-peer-id=<webrtcsink-peer-id> ! videoconvert ! autovideosink

or directly using playbin:

gst-launch-1.0 playbin3 uri="gstwebrtc://localhost:8443?peer-id=<webrtcsink-peer-id>"

Decoding

To be able to precisely negotiate the WebRTC SDP, webrtcsrc is able to decode streams. During SDP negotiation we expose our pads based on the peer offer and right after query caps to see what downstream supports. In practice in uridecodebinX or playbinX, decoding will happen in decodebinX but for the case where a videoconvert is placed after a video_XX pad, decoding will happen inside webrtcsrc.

Hierarchy

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstElement
                ╰──GstBin
                    ╰──GstBaseWebRTCSrc
                        ╰──webrtcsrc

Implemented interfaces

Factory details

Authors: – Thibault Saunier

Classification:Source/Network/WebRTC

Rank – primary

Plugin – rswebrtc

Package – gst-plugin-webrtc

Pad Templates

audio_%u

audio/x-raw(ANY):
application/x-rtp:
audio/x-opus:

Presencesometimes

Directionsrc

Object typeGstWebRTCSrcPad


video_%u

video/x-raw(ANY):
application/x-rtp:
video/x-vp8:
video/x-h264:
video/x-vp9:
video/x-h265:

Presencesometimes

Directionsrc

Object typeGstWebRTCSrcPad


GstWebRTCSrcPad

GObject
    ╰──GInitiallyUnowned
        ╰──GstObject
            ╰──GstPad
                ╰──GstProxyPad
                    ╰──GstGhostPad
                        ╰──GstWebRTCSrcPad

The results of the search are