GstWebRTC - PubNub Audio + Video Examples - x86: Difference between revisions
No edit summary |
mNo edit summary |
||
(15 intermediate revisions by 4 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 49: | Line 37: | ||
==== Example ==== | ==== Example ==== | ||
In this example we use two | 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 ==== | ==== Send-Receive Pipeline ==== | ||
Line 56: | Line 44: | ||
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.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 68: | Line 56: | ||
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 \ | ||
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 106: | Line 94: | ||
==== Example ==== | ==== Example ==== | ||
In this example we use two | 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 ==== | ==== Send-Receive Pipeline ==== | ||
Line 113: | Line 101: | ||
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.video_sink \ | videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \ | ||
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | ||
Line 125: | Line 113: | ||
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 \ | ||
videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \ | videotestsrc is-live=true ! vp8enc ! rtpvp8pay ! web.video_sink \ | ||
audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio_sink \ | ||
Line 132: | Line 120: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | |||
{{GstWebRTC/Foot|previous=PubNub Video Examples - x86|next=PubNub Web Pages - x86}} |
Latest revision as of 19: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? |
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