GstWebRTC - PubNub Audio + Video Examples - x86: Difference between revisions
No edit summary |
No edit summary |
||
Line 20: | Line 20: | ||
==== Example ==== | ==== Example ==== | ||
In this example we use webrtcsink to send a video stream and webrtcsrc | In this example we use webrtcsink to send a video stream and an audio stream, then webrtcsrc receive the video and audio streams. | ||
<pre style="background-color:yellow"> | <pre style="background-color:yellow"> | ||
Line 106: | Line 106: | ||
==== Example ==== | ==== Example ==== | ||
In this example we use two webrtcbins, each send a video stream and an audio stream, | In this example we use two webrtcbins, each send a video stream and an audio stream, then receives each other video and audio streams. | ||
==== Send-Receive Pipeline ==== | ==== Send-Receive Pipeline ==== |
Revision as of 19:53, 20 February 2018
Problems running the pipelines shown on this page? |
← |
⌂ Home |
→ |
This page links to the GstWebRTC audio and video examples using PubNub.
H264+Opus
Unidirectional elements
Example
In this example we use webrtcsink to send a video stream and an audio stream, then webrtcsrc receive the video and audio streams.
It seems that browsers do not get along with x264 because of SEI NAL units sent with the stream. As a workaround, we set key-int-max=1 and avoid the SEI insertions.
Send Pipeline
USER_CHANNEL=123 PEER_CHANNEL=123peer gst-launch-1.0 webrtcsink rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ videotestsrc is-live=true ! x264enc aud=false key-int-max=1 tune=zerolatency intra-refresh=true ! "video/x-h264,profile=constrained-baseline,level=(string)3.1" ! rtph264pay ! web.video \ audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio
Receive Pipeline
USER_CHANNEL=123peer PEER_CHANNEL=123 gst-launch-1.0 webrtcsrc rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ web.video ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink \ web.audio ! rtpopusdepay ! opusdec ! autoaudiosink
Bidirectional elements
Example
In this example we use two webrtcbins, 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 webrtcbin rtcp-mux=true start-call=true signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ videotestsrc is-live=true ! x264enc aud=false key-int-max=1 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 webrtcbin rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ videotestsrc is-live=true ! x264enc aud=false key-int-max=1 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 webrtcsink to send a video stream and an audio stream, then webrtcsrc receive the video and audio streams.
Send Pipeline
USER_CHANNEL=123 PEER_CHANNEL=123peer gst-launch-1.0 -v webrtcsink 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 \ audiotestsrc is-live=true ! opusenc ! rtpopuspay ! web.audio
Receive Pipeline
USER_CHANNEL=123peer PEER_CHANNEL=123 gst-launch-1.0 -v webrtcsrc rtcp-mux=true start-call=false signaler::user-channel=$USER_CHANNEL signaler::peer-channel=$PEER_CHANNEL name=web \ web.video ! rtpvp8depay ! avdec_vp8 ! autovideosink \ web.audio ! rtpopusdepay ! opusdec ! autoaudiosink
Bidirectional elements
Example
In this example we use two webrtcbins, 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 -v webrtcbin 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 -v webrtcbin 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
← |
⌂ Home |
→ |