GStreamer WebRTC Wrapper - GStreamer Pipelines - Pubnub Pipelines

From RidgeRun Developer Connection
Jump to: navigation, search




Previous: GStreamer_Pipelines Index Next: Other_WebRTC_RidgeRun_products




Description

This page presents some GStreamer examples pipeline on supported platforms using PubNub Demo.

Bring up the PubNub Demo

Open the PubNub WebRTC Demo on a Chrome or a Chromium browser.

Pubnub demo image.png
Figure 3. Pubnub Web Demo

The Pubnub ID should be used to connect the GstWebRTCWrapperbin pipeline.

Nvidia Xavier/TX2

This pipeline are creating using the Nvidia resources like cameras, video codecs.

Unidirectional

Video

VP8 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web.
VP9 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc ! nvvideoconvert ! queue ! nvv4l2vp9enc ! rtpvp9pay ! queue ! web.
H264 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2h264enc insert-sps-pps=true ! rtph264pay ! queue ! web.

Video and Audio

VP8 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.
VP9 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp9enc ! rtpvp9pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.
H264 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2h264enc insert-sps-pps=true ! rtph264pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.

Bidirectional

Video

VP8 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web. web. ! rtpvp8depay ! nvv4l2vp8dec ! nveglglessink
VP9 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc ! nvvideoconvert ! queue ! nvv4l2vp9enc ! rtpvp9pay ! queue ! web. web. ! rtpvp9depay ! nvv4l2vp9dec ! nveglglessink
H264 codec
USER_CHANNEL=123
PEER_CHANNEL=136

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2h264enc insert-sps-pps=true ! rtph264pay ! queue ! web. web. ! rtph264depay ! nvv4l2h264dec ! nveglglessink

Video and Audio

VP8 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136
AUDIO_DEVICE="plughw:0,7" # Assign your audio device 

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web. web. ! rtpvp8depay ! nvv4l2vp8dec ! nveglglessink web. ! rtpopusdepay ! opusdec ! alsasink device=$AUDIO_DEVICE
VP8 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136
AUDIO_DEVICE="plughw:0,7" # Assign your audio device 

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web. web. ! rtpvp8depay ! nvv4l2vp8dec ! nveglglessink web. ! rtpopusdepay ! opusdec ! alsasink device=$AUDIO_DEVICE
VP9 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136
AUDIO_DEVICE="plughw:0,7" # Assign your audio device

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL  start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp9enc ! rtpvp9pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.  web. ! rtpvp9depay ! nvv4l2vp9dec ! nveglglessink web. ! rtpopusdepay ! opusdec ! alsasink device=$AUDIO_DEVICE
H264 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136
AUDIO_DEVICE="plughw:0,7" # Assign your audio device

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2h264enc insert-sps-pps=true ! rtph264pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.  web. ! rtph264depay ! nvv4l2h264dec ! nveglglessink web. ! rtpopusdepay ! opusdec ! alsasink device=$AUDIO_DEVICE

WebRTC connection along xirsys CoTurn

This example includes the Xirsys credentials to enable the Xirsys CoTurn service, the xirsys credentials is also used in above pipelines as well. The user should be generated his/her xirsys credentials before continuing, see the Xirsys Credentials.

1. Open the Pubnub demo on the mobile device and follow the section Bring up the PubNub Demo

https://stephenlb.github.io/webrtc-sdk

2. Run the below pipeline setting the Xirsys credentials up.

USER_CHANNEL=123
PEER_CHANNEL=136
XIRSYS_IDENT=<ident>
XIRSYS_SECRET=<secret>
XIRSYS_CHANNEL=<channel>
XIRSYS_PATH=<path>

AUDIO_DEVICE="plughw:0,7" # Assign your audio device 

gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL ice-server::ident=$XIRSYS_IDENT ice-server::secret=$XIRSYS_SECRET ice-server::channel=$XIRSYS_CHANNEL ice-server::path=$XIRSYS_PATH start-call=true name=web nvarguscamerasrc  ! nvvideoconvert ! queue ! nvv4l2vp8enc ! rtpvp8pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web. web. ! rtpvp8depay ! nvv4l2vp8dec ! nveglglessink web. ! rtpopusdepay ! opusdec ! alsasink device=$AUDIO_DEVICE

Appendix

Find audio device

Run the command (in the terminal)

aplay -l

The output looks like

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC262 Analog [ALC262 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

The device for this is plughw:0,0. The two zeros come from the device 0 and Subdevice #0.

Xirsys Credentials

Go to Xirsys login panel

Xirsys 1.png
Figure 3. Xirsys Account.

Note: Create a Xirsys account if you do not have it.

Go to Xirsys Dashboard services.

Xirsys 2.png
Figure 4. Xirsys Dashboard.

Take the Xirsys credentials to set up the WebRTC session.

x86

Unidirectional

Video

H264 codec
USER_CHANNEL=123
PEER_CHANNEL=136
gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web videotestsrc is-live=true ! videoconvert ! queue ! x264enc ! rtph264pay ! queue ! web.

Video and Audio

H264 codec and OPUS codec
USER_CHANNEL=123
PEER_CHANNEL=136
gst-launch-1.0 webrtcwrapperbin signaler=GstPubnubSignaler signaler::user-channel=$USER_CHANNEL signaler::peer_channel=$PEER_CHANNEL start-call=true name=web videotestsrc is-live=true ! videoconvert ! queue ! x264enc ! rtph264pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.


Previous: GStreamer_Pipelines Index Next: Other_WebRTC_RidgeRun_products