GstWebRTC - Video Examples - x86
GstWebRTC | ||||||||
---|---|---|---|---|---|---|---|---|
WebRTC Fundamentals | ||||||||
GstWebRTC Basics | ||||||||
|
||||||||
Evaluating GstWebRTC | ||||||||
Getting the code | ||||||||
Building GstWebRTC | ||||||||
Examples | ||||||||
|
||||||||
MCU Demo Application | ||||||||
Contact Us |
This page presents video examples on x86 platform using OpenWebRTC.
Problems running the pipelines shown on this page? Please see our GStreamer Debugging guide for help. |
H264
Unidirectional Elements
Example
In this example we use rrwebrtcbin to send a video stream and rrwebrtcbin to receive the video stream.
Send Pipeline
The following pipeline will send a color bars h264 video stream:
gst-launch-1.0 rrwebrtcbin start-call=true signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ x264enc key-int-max=2 ! rtph264pay ! queue ! web.video_sink
Receive Pipeline
The following pipeline will receive the video stream and display it:
gst-launch-1.0 rrwebrtcbin start-call=false signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web web.video_src ! rtph264depay ! avdec_h264 ! videoconvert \ ! ximagesink async=true
You should be able to see a video pattern similar to Fig.1.
Bidirectional Element
Example
In this example we use two rrwebrtcbin elements, each sends a video stream and receives each other video stream.
Send-Receive Pipeline
The following pipeline starts the call:
gst-launch-1.0 rrwebrtcbin start-call=true signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ x264enc key-int-max=2 ! rtph264pay ! queue ! web.video_sink web.video_src \ ! rtph264depay ! avdec_h264 ! videoconvert ! ximagesink async=true
Send-Receive Pipeline
The following pipeline joins the call:
gst-launch-1.0 rrwebrtcbin start-call=false signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ x264enc key-int-max=2 ! rtph264pay ! queue ! web.video_sink web.video_src \ ! rtph264depay ! avdec_h264 ! videoconvert ! ximagesink async=true
You should be able to see two windows with a video pattern similar to Fig.1.
VP8
Unidirectional Elements
Example
In this example we use rrwebrtcbin to send a video stream and rrwebrtcbin to receive the video stream.
Send Pipeline
The following pipeline will send a color bars vp8 video stream:
gst-launch-1.0 rrwebrtcbin start-call=true signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ vp8enc ! rtpvp8pay ! queue ! web.video_sink
Receive Pipeline
The following pipeline will receive the video stream and display it:
gst-launch-1.0 rrwebrtcbin start-call=false signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web web.video_src ! rtpvp8depay ! vp8dec ! videoconvert ! \ ximagesink async=true
You should be able to see a video pattern similar to Fig.1.
Bidirectional Element
Example
In this example we use two rrwebrtcbin elements, each sends a video stream and receives each other video stream.
Send-Receive Pipeline
The following pipeline starts the call:
gst-launch-1.0 rrwebrtcbin start-call=true signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ vp8enc ! rtpvp8pay ! queue ! web.video_sink web.video_src ! rtpvp8depay ! \ vp8dec ! videoconvert ! ximagesink async=true
Send-Receive Pipeline
The following pipeline joins the call:
gst-launch-1.0 rrwebrtcbin start-call=false signaler=GstOwrSignaler \ signaler::server_url=https://webrtc.ridgerun.com:8443 \ signaler::session_id=1234ridgerun name=web videotestsrc is-live=true ! queue ! videoconvert ! \ vp8enc ! rtpvp8pay ! queue ! web.video_sink web.video_src ! rtpvp8depay \ ! vp8dec ! videoconvert ! ximagesink async=true
You should be able to see two windows with a video pattern similar to Fig.1.