livekitwebrtcsrc

The livekitwebrtcsrc plays streams from a LiveKit room.

The element can either subscribe to the streams published by a single peer in the room using the same signaller::producer-peer-id child property that other webrtcsrc elements use or auto-subscribe to all peers in a room by not specifying anything for that property. When in auto-subscribe mode, you can use signaller::excluded-producer-peer-ids=<a,b,c> to ignore peers a, b, and c while subscribing to all other members of the room.

Sample Pipeline

First, start the livekit server with the --dev flag to enable the test credentials.

Next, publish a stream:

gst-launch-1.0 \
videotestsrc is-live=1 \
! video/x-raw,width=640,height=360,framerate=15/1 \
! timeoverlay ! videoconvert ! queue \
! livekitwebrtcsink name=sink \
    signaller::ws-url=ws://127.0.0.1:7880 \
    signaller::api-key=devkey \
    signaller::secret-key=secret \
    signaller::room-name=testroom \
    signaller::identity=gst-producer \
    signaller::participant-name=gst-producer \
    video-caps='video/x-vp8'

Finally, watch the stream:

gst-launch-1.0 \
livekitwebrtcsrc \
  signaller::ws-url=ws://127.0.0.1:7880 \
  signaller::api-key=devkey \
  signaller::secret-key=secret \
  signaller::room-name=testroom \
  signaller::identity=gst-consumer \
  signaller::participant-name=gst-consumer \
! queue ! videoconvert ! autovideosink

Hierarchy

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

Implemented interfaces

Factory details

Authors: – Jordan Yelloz

Classification:Source/Network/WebRTC

Rank – none

Plugin – rswebrtc

Package – gst-plugin-webrtc

Pad Templates

audio_%s_%u

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

Presencesometimes

Directionsrc

Object typeGstLiveKitWebRTCSrcPad


audio_%u

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

Presencesometimes

Directionsrc

Object typeGstWebRTCSrcPad


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:

Presencesometimes

Directionsrc

Object typeGstLiveKitWebRTCSrcPad


video_%u

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

Presencesometimes

Directionsrc

Object typeGstWebRTCSrcPad


The results of the search are