Difference between revisions of "GstWebRTC - PubNub Audio + Video Examples - x86"
m |
|||
(12 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{GstWebRTC/Head|previous=PubNub Video Examples - x86|next=PubNub Web Pages - x86|keywords=GstWebRTC Examples,WebRTC Examples,GstWebRTC GStreamer pipelines,WebRTC GStreamer pipelines,GstWebRTC PubNub Signaler,WebRTC PubNub Signaler,WebRTC Audio+Video Example, WebRTC GStreamer Audio+Video pipelines,GstWebRTC PubNub,GstWebRTC Audio+Video Example, GstWebRTC GStreamer Audio+Video pipelines,WebRTC PubNub,signaling}} | |
− | |||
− | |||
− | |||
− | {{ | ||
− | |||
− | |||
− | + | This page presents the GstRrWebRTC audio and video examples on '''x86 platform''' using PubNub. | |
− | + | <br> | |
− | + | <br> | |
− | + | {{GStreamer debug}} | |
− | This page | ||
− | |||
== H264+Opus == | == H264+Opus == | ||
Line 20: | Line 12: | ||
==== Example ==== | ==== Example ==== | ||
− | In this example we use | + | In this example, we use rrwebrtcbin to send a video stream and an audio stream, then rrwebrtcbin receive the video and audio streams. |
− | |||
− | |||
− | |||
− | |||
==== Send Pipeline ==== | ==== Send Pipeline ==== | ||
Line 31: | Line 19: | ||
USER_CHANNEL=123 | USER_CHANNEL=123 | ||
PEER_CHANNEL=123peer | PEER_CHANNEL=123peer | ||
− | gst-launch-1.0 | + | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ |
− | videotestsrc is-live=true ! x264enc | + | videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \ |
− | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web. | + | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 41: | Line 29: | ||
USER_CHANNEL=123peer | USER_CHANNEL=123peer | ||
PEER_CHANNEL=123 | PEER_CHANNEL=123 | ||
− | gst-launch-1.0 | + | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ |
− | web. | + | web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ |
− | web. | + | web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 57: | Line 45: | ||
PEER_CHANNEL=123peer | PEER_CHANNEL=123peer | ||
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ | ||
− | videotestsrc is-live=true ! x264enc | + | videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \ |
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | ||
web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ | web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ | ||
Line 69: | Line 57: | ||
PEER_CHANNEL=123 | PEER_CHANNEL=123 | ||
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ | ||
− | videotestsrc is-live=true ! x264enc | + | videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \ |
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | ||
web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ | web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ | ||
Line 81: | Line 69: | ||
==== Example ==== | ==== Example ==== | ||
− | In this example we use | + | In this example, we use rrwebrtcbin to send a video stream and an audio stream, then rrwebrtcbin receive the video and audio streams. |
==== Send Pipeline ==== | ==== Send Pipeline ==== | ||
Line 88: | Line 76: | ||
USER_CHANNEL=123 | USER_CHANNEL=123 | ||
PEER_CHANNEL=123peer | PEER_CHANNEL=123peer | ||
− | gst-launch-1.0 | + | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ |
− | videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web. | + | videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \ |
− | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web. | + | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 98: | Line 86: | ||
USER_CHANNEL=123peer | USER_CHANNEL=123peer | ||
PEER_CHANNEL=123 | PEER_CHANNEL=123 | ||
− | gst-launch-1.0 | + | gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ |
− | web. | + | web.video_src ! rtpvp8depay ! avdec_vp8 ! autovideosink \ |
− | web. | + | web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink |
</syntaxhighlight> | </syntaxhighlight> | ||
Line 132: | Line 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | }} | + | |
+ | {{GstWebRTC/Foot|previous=PubNub Video Examples - x86|next=PubNub Web Pages - x86}} |
Latest revision as of 14:35, 13 April 2020
GstWebRTC | ||||||||
---|---|---|---|---|---|---|---|---|
WebRTC Fundamentals | ||||||||
GstWebRTC Basics | ||||||||
|
||||||||
Evaluating GstWebRTC | ||||||||
Getting the code | ||||||||
Building GstWebRTC | ||||||||
Examples | ||||||||
|
||||||||
MCU Demo Application | ||||||||
Contact Us |
This page presents the GstRrWebRTC audio and video examples on x86 platform using PubNub.
Problems running the pipelines shown on this page? |
Contents
H264+Opus
Unidirectional elements
Example
In this example, we use rrwebrtcbin to send a video stream and an audio stream, then rrwebrtcbin receive the video and audio streams.
Send Pipeline
USER_CHANNEL=123
PEER_CHANNEL=123peer
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink
Receive Pipeline
USER_CHANNEL=123peer
PEER_CHANNEL=123
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink
Bidirectional elements
Example
In this example we use two rrwebrtcbins, each send a video stream and an audio stream, and receives each other video and audio streams.
Send-Receive Pipeline
USER_CHANNEL=123
PEER_CHANNEL=123peer
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \
web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink
Send-Receive Pipeline
USER_CHANNEL=123peer
PEER_CHANNEL=123
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! x264enc tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \
web.video_src ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink
VP8+Opus
Unidirectional elements
Example
In this example, we use rrwebrtcbin to send a video stream and an audio stream, then rrwebrtcbin receive the video and audio streams.
Send Pipeline
USER_CHANNEL=123
PEER_CHANNEL=123peer
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink
Receive Pipeline
USER_CHANNEL=123peer
PEER_CHANNEL=123
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
web.video_src ! rtpvp8depay ! avdec_vp8 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink
Bidirectional elements
Example
In this example we use two rrwebrtcbins, each send a video stream and an audio stream, then receives each other video and audio streams.
Send-Receive Pipeline
USER_CHANNEL=123
PEER_CHANNEL=123peer
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \
web.video_src ! rtpvp8depay ! avdec_vp8 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink
Send-Receive Pipeline
USER_CHANNEL=123peer
PEER_CHANNEL=123
gst-launch-1.0 rrwebrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \
videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \
web.video_src ! rtpvp8depay ! avdec_vp8 ! autovideosink \
web.audio_src ! rtpopusdepay ! opusdec ! autoaudiosink