webrtcsink: bring in signalling code from whipsink as a signaller
Took a crack at implementing a whip signaller for webrtcsink, using largely unmodified code from whipsink. This can't deprecate whipsink altogether yet because webrtcsink doesn't support encoded input streams yet (though I heard @thiblahute was working on that :)), but can still be useful regardless.
I tested against https://github.com/meetecho/simple-whip-server/, seems to work as expected :)
Example usage:
gst-launch-1.0 -e uridecodebin uri=file:///home/meh/Videos/spring-blender.mkv ! videoconvert ! whipwebrtcsink name=ws signaller::whip-endpoint="http://127.0.0.1:7080/whip/endpoint/room1234"
assuming an endpoint is available at this address ofc.
cc @tkanakamalla @arun :)
Merge request reports
Activity
added 6 commits
-
48786bae...a4558198 - 5 commits from branch
gstreamer:main
- 58a12f6b - webrtcsink: bring in signalling code from whipsink as a signaller
-
48786bae...a4558198 - 5 commits from branch
- Resolved by Sebastian Dröge
@slomo are you OK with the duplication of the utils code from whipsink? How would you go about sharing the code between the
webrtchttp
crate and thewebrtc
one otherwise?
- Resolved by Mathieu Duponchelle
- Resolved by Mathieu Duponchelle
- Resolved by Mathieu Duponchelle
mentioned in merge request !1194 (merged)
- Resolved by Mathieu Duponchelle
@meh I have updated this implementation in my local branch, after pulling latest changes from the main branch.
In case you want to merge those here, here is my branch. https://gitlab.freedesktop.org/tkanakamalla/gst-plugins-rs/-/tree/whipwebrtcsink?ref_type=heads
added 92 commits
-
58a12f6b...f00a1690 - 91 commits from branch
gstreamer:main
- 71d1b023 - webrtcsink: bring in signalling code from whipsink as a signaller
-
58a12f6b...f00a1690 - 91 commits from branch
Thanks again for the rebase @tkanakamalla , I tested the updated version on my end and all still works as expected, I took the occasion to also update the README with testing instructions :) Merging now, do you think we should completely remove the whipsink from
webrtchttp
, and instead expose it as a simple alias forwhipwebrtcsink
in thewebrtc
plugin?I think the alias makes sense since the newer implementation gives us encoded / raw streams, plus congestion control.
IIRC @slomo had some thoughts around retaining the original implementation, but I might be misremembering/misrepresenting that.
Yeah, that's why I wanted to wait for the encoded streams support as @arun said, now whipwebrtcsink is just a superset of whipsink feature-wise
btw @arun note that you don't get congestion control with encoded streams, probably obvious but worth making explicit :)
Edited by Mathieu Duponchelle
assigned to @gstreamer-merge-bot
mentioned in commit meh/gst-plugins-rs@49876cab
added 1 commit
- 49876cab - webrtcsink: bring in signalling code from whipsink as a signaller
assigned to @meh and unassigned @gstreamer-merge-bot
I couldn't merge this branch: CI failed! See pipeline https://gitlab.freedesktop.org/meh/gst-plugins-rs/-/pipelines/910430.
added 1 commit
- 17ffdcda - webrtcsink: bring in signalling code from whipsink as a signaller