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_%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:
GstWebRTCSrcPad
GObject ╰──GInitiallyUnowned ╰──GstObject ╰──GstPad ╰──GstProxyPad ╰──GstGhostPad ╰──GstWebRTCSrcPad
Properties
The results of the search are