mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +00:00
9b1a0e5389
You can join a room and an audio-only call will be started with all peers in that room. Currently uses audiotestsrc only. BUG: With >2 peers in a call, if a peer leaves, the pipeline stops outputting data from the remaining peers to the (audio) sink. TODO: JS code to allow a browser to join the call TODO: Cleanup pipeline when a peer leaves TODO: Add ICE servers to allow calls over the Internet TODO: Perhaps setup a TURN server as well |
||
---|---|---|
.. | ||
multiparty-sendrecv/gst | ||
sendrecv | ||
signalling | ||
.gitignore | ||
LICENSE | ||
README.md |
GStreamer WebRTC demos
All demos use the same signalling server in the signalling/
directory
You will need the following repositories till the GStreamer WebRTC implementation is merged upstream:
https://github.com/ystreet/gstreamer/tree/promise
https://github.com/ystreet/gst-plugins-bad/tree/webrtc
You can build these with either Autotools gst-uninstalled:
https://arunraghavan.net/2014/07/quick-start-guide-to-gst-uninstalled-1-x/
Or with Meson gst-build:
https://cgit.freedesktop.org/gstreamer/gst-build/
sendrecv: Send and receive audio and video
- Serve the
js/
directory on the root of your website, or open https://webrtc.nirbheek.in- The JS code assumes the signalling server is on port 8443 of the same server serving the HTML
- Build and run the sources in the
gst/
directory on your machine
$ gcc webrtc-sendrecv.c $(pkg-config --cflags --libs gstreamer-webrtc-1.0 gstreamer-sdp-1.0 libsoup-2.4 json-glib-1.0) -o webrtc-sendrecv
- Open the website in a browser and ensure that the status is "Registered with server, waiting for call", and note the
id
too. - Run
webrtc-sendrecv --peer-id=ID
with theid
from the browser. You will see state changes and an SDP exchange. - You will see a bouncing ball + hear red noise in the browser, and your browser's webcam + mic in the gst app