GstWebRTC - Video Examples - x86

From RidgeRun Developer Wiki




Previous: Audio Examples - x86 Index Next: Audio + Video Examples - x86




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.

Fig.1 Snapshot of video received




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.


Previous: Audio Examples - x86 Index Next: Audio + Video Examples - x86