-
-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[META] Rust Components: WebRTCSink, WHIP/WHEP integration #79
Comments
Relevant. |
https://www.100ms.live/blog/webrtc-turn-server Nope. Does not eliminate TURN. |
Does not eliminate TURN, but in most usage cases, WHIP is not used in a peer-to-peer style. For the example of Cloudflare Stream, it routes all traffic through their network before exiting as WHEP. |
From @boxerab Has anyone looked into using the Rust element webrtcsink ? https://mathieuduponchelle.github.io/2021-12-14-webrtcsink.html One nice feature is that is handles congestion control. |
To enable |
I almost included Postponing until the next major release. |
Integrated in build pipeline with GStreamer 1.24.0. |
I should probably point out that I think this should be possible without the Rust gstreamer system. WHIP is just signalling, and from a (admittedly rather quick) glance at the code, the signalling for the current webRTC system is done in python, with SDP's handed to/from GST. |
@tt2468 What do you think of this blueprint? |
WebRTCSink is a wrapper for WebRTCBin, where settings are available in https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/blob/main/net/webrtc/src/webrtcsink/imp.rs The issue of WHIP/WHEP is that there is no DataChannel for keys, cursors, and other information. Only read-only access would be possible without other transport protocols. |
The immediate property should rather be a multi-user SFU server, based on GStreamer's own signalling server. https://gstreamer.freedesktop.org/documentation/rswebrtc/index.html#usage |
When browsing this project as a potential option to replace apache guacamole in my setup, I noticed a lot of the set up and complexity comes from configuring the various WebRTC components to work effectively together. I've recently worked on some implementations of the WebRTC WHIP standard, and I think it could be an effective option to simplify things. There's options for paid hosted services, like Cloudflare Stream, and self-hosted server instances like Broadcast Box
WHIP standard: https://www.ietf.org/archive/id/draft-ietf-wish-whip-01.html
WHEP standard: https://www.ietf.org/archive/id/draft-murillo-whep-02.html
Gstreamer recently implemented WHIP support via their rust plugins, which may possibly be used to reduce implementation difficulty. Otherwise, the code from an OBS Studio PR I've worked on may be a useful reference: obsproject/obs-studio#7926
The text was updated successfully, but these errors were encountered: