Difference between revisions of "GStreamer WebRTC Wrapper/GStreamer Pipelines/Pubnub Pipelines"

From RidgeRun Developer Connection
Jump to: navigation, search
m (Video and Audio)
m (Appendixes)
Line 145: Line 145:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
= Appendixes =
+
= Appendix =
  
 
== Find audio device ==
 
== Find audio device ==

Revision as of 14:10, 20 January 2020




Previous: GStreamer_Pipelines Index Next: Contact_us




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 ! omxvp8enc ! 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 ! omxvp9enc ! 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 ! omxh264enc 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 ! omxvp8enc ! 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 ! omxvp9enc ! 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 ! omxh264enc 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 ! omxvp8enc ! rtpvp8pay ! queue ! web. web. ! rtpvp8depay ! omxvp8dec ! 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 ! omxvp9enc ! rtpvp9pay ! queue ! web. web. ! rtpvp9depay ! omxvp9dec ! 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 ! omxh264enc insert-sps-pps=true ! rtph264pay ! queue ! web. web. ! rtph264depay ! omxh264dec ! 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 ! omxvp8enc ! rtpvp8pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web. web. ! rtpvp8depay ! omxvp8dec ! 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 ! omxvp9enc ! rtpvp9pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.  web. ! rtpvp9depay ! omxvp9dec ! 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 ! omxh264enc insert-sps-pps=true ! rtph264pay ! queue ! web. audiotestsrc is-live=true wave=8 ! opusenc ! rtpopuspay ! queue ! web.  web. ! rtph264depay ! omxh264dec ! 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.