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 playbin3:
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_%s_%u
audio/x-raw(ANY):
application/x-rtp:
audio/x-opus:
audio_%u
audio/x-raw(ANY):
application/x-rtp:
audio/x-opus:
video_%s_%u
video/x-raw(ANY):
application/x-rtp:
video/x-vp8:
video/x-h264:
video/x-vp9:
video/x-h265:
video/x-av1:
video_%u
video/x-raw(ANY):
application/x-rtp:
video/x-vp8:
video/x-h264:
video/x-vp9:
video/x-h265:
video/x-av1:
Properties
connect-to-first-producer
“connect-to-first-producer” gboolean
When enabled, automatically connect to the first peer that becomes available if no 'peer-id' is specified.
Flags : Read / Write
Default value : false
GstWebRTCSrcPad
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstPad ╰──GstProxyPad ╰──GstGhostPad ╰──GstWebRTCSrcPad
Properties
The results of the search are