GstWebRTC Pipelines
⬅ Getting Started with GstWebRTC | ⬆ Contents |
Problems running the pipelines shown on this page? |
Introduction
This is an example wiki to show the GstWebRTC usage through example pipelines who show the capabilities and features that you could enjoy using our plugins. If you are not on track about what GstWebRTC is, first review this wiki GstWebRTC Introduction and the come back to give it a try to the examples.
But if you already read about it, so lets start.
We are going to separate the examples in three main sections, one for the configuration webrtcsink + webrtcsrc, another for the webrtcsink + OpenWebrtc, and the last one for the webrtcsrc + OpenWebrtc configuration. For each element, the main configurations will be showed, but if you want to test or create your own pipeline you are free to do it.
Important Considerations
- Its important to have a constant internet connection, without internet the tests won't work.
- RidgeRun has its own server running the OpenWebRTC signaler and web application in webrtc.ridgerun.com:8080.
- All the tests have been done in Firefox, other browsers could face issues or bad behaviours.
- If you are facing issues with any pipeline or configuration please contact us to support@ridgerun.com.
WebRTCsink and WebRTCsrc common properties
- start-call: Its used to set which endpoint is in charge of start the call and to send the offer SDP to the another one. This property must be set to true to only one endpoint.
- signaler: This property is in charge of setting the desired signaler to use in the application as a GObject. Each signaler has their own child properties, you should be careful to set the correct ones.
- stun-server: Property used to set the STUN server address and port in case you want to change to use your own or a different one. Usage: <stun-server-address>:<stun-server-port>
- turn-server: Property used to set the TURN server address and port in case you want to change to use your own or a different one. Usage: <user>:<password>@<turn-server-address>:<stun-server-port>
- certificate-pem: With this property you are able to set you own certificate and private key (in PEM format) for the DTLS negotiation.
WebRTCsink + WebRTCsrc
With this configuration you can test the functionality of both plugins.
Only video
H264
gst-launch-1.0 webrtcsink start-call=true signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! x264enc key-int-max=2 ! rtph264pay ! queue ! web.video
gst-launch-1.0 webrtcsrc start-call=false signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web web.video ! rtph264depay ! avdec_h264 ! videoconvert ! ximagesink async=true
Vp8
gst-launch-1.0 webrtcsink start-call=true signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! vp8enc ! rtpvp8pay ! queue ! web.video
gst-launch-1.0 webrtcsrc start-call=false signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web web.video ! rtpvp8depay ! vp8dec ! videoconvert ! ximagesink async=true
Only audio
Opus
gst-launch-1.0 webrtcsink start-call=true signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web audiotestsrc is-live=true wave=8 ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay ! web.audio
gst-launch-1.0 webrtcsrc start-call=false signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web web.audio ! rtpopusdepay ! opusdec ! audioconvert ! alsasink async=false
Video + Audio
H264 + Opus
gst-launch-1.0 webrtcsink start-call=true signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! x264enc key-int-max=2 ! rtph264pay ! web.video audiotestsrc is-live=true wave=8 ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay ! web.audio
gst-launch-1.0 webrtcsrc start-call=false signaler::server_url=http://webrtc.ridgerun.com:8080 signaler::session_id=1234ridgerun name=web web.video ! rtph264depay ! avdec_h264 ! videoconvert ! ximagesink async=false web.audio ! rtpopusdepay ! opusdec ! audioconvert ! alsasink async=false
WebRTCsink + OpenWebRTC
With this configuration you are able to only send data to the OpenWebRTC web page, it won't negotiate or receive anything incoming from the other endpoint.
Only video
Only audio
Video + Audio
WebRTCsrc + OpenWebRTC
With this configuration you are able to only receive data from the OpenWebRTC web page, it won't negotiate or send anything to the other endpoint.
Only video
Only audio
Video + Audio
⬅ Getting Started with GstWebRTC | ⬆ Contents |