LiveKit Support for GStreamer WebRTC Elements
Action | Key |
---|---|
Play / Pause | K or space |
Mute / Unmute | M |
Toggle fullscreen mode | F |
Select next subtitles | C |
Select next audio track | A |
Toggle automatic slides maximization | V |
Seek 5s backward | left arrow |
Seek 5s forward | right arrow |
Seek 10s backward | shift + left arrow or J |
Seek 10s forward | shift + right arrow or L |
Seek 60s backward | control + left arrow |
Seek 60s forward | control + right arrow |
Seek 1 frame backward | alt + left arrow |
Seek 1 frame forward | alt + right arrow |
Decrease volume | shift + down arrow |
Increase volume | shift + up arrow |
Decrease playback rate | < |
Increase playback rate | > |
Seek to end | end |
Seek to beginning | beginning |
You can right click on slides to open the menu
Share this media
HLS video stream
You can use an external player to play this stream (like VLC).
HLS video stream
Subscribe to notifications
When subscribed to notifications, an email will be sent to you for all added annotations.
Your user account has no email address.
Information on this media
24 views
The GStreamer Rust plugins include generic source and sink elements for unidirectional WebRTC communications with no application code necessary in many cases. However, each WebRTC server has its own signalling protocol and to interact with any specific WebRTC implementation, a client must be implemented to perform WebRTC signalling over that protocol. A signalling protocol client as well as both a source and sink element have been implemented that interoperate with the LiveKit WebRTC server.
This presentation will discuss the implementation of both the source and sink elements and the complexities associated with them. Furthermore, it will introduce some extra features specific to LiveKit that have been implemented in addition to basic WebRTC communications.
The first feature added was video simulcasts which allows the sink to send multiple versions of the same video track to the LiveKit server at multiple qualities while the LiveKit server will choose what version to send to each receiver in the same room based on each receiver's network connection quality and preferences. The presentation will discuss how it was implemented as well as the internal design changes needed to support this feature.
Also, support for LiveKit's end-to-end encryption scheme was implemented for use cases that do not trust the key exchange and point-to-point encryption associated with a WebRTC Selective Forwarding Unit. The presentation will discuss the cryptographic filter elements, how they are integrated with the webrtcsrc and webrtcsink elements, and the codec-specific challenges encountered during development of this feature.
Creation date:
Oct. 7, 2024
Speakers:
Jordan Yelloz
License:
CC BY-SA 3.0
Links:
Other media in the channel "GStreamer Conference 2024"
38 views, 38 this year, 1 this monthWindows Graphics Stack Improvements – Direct3D12November 8th, 2024
64 views, 64 this year, 3 this monthGStreamer and display clock synchronizationOctober 25th, 2024
22 views, 22 this year, 1 this monthHDR in GTKOctober 25th, 2024
40 views, 40 this year, 5 this monthGStreamer and VROctober 25th, 2024
17 views, 17 this year, 1 this monthlibrice: a sans-IO ICE networking libraryOctober 25th, 2024
60 views, 60 this year, 3 this monthHLS master playlist management made easyOctober 25th, 2024