Problems with streaming ( and receiving ) a simple usb-camera with jetson nano and gstreamer

Hello alltogether.
I am very desperate about my problems trying to get streaming of my usb-camera to work.
We have a Intel-Realsense-D415 USB3.0-camera that we try to run and stream with from the jetson nano.

The only thing that I am succesfully able to do is displaying it right away with:
“gst-launch-1.0 v4l2src device=/dev/video3 ! video/x-raw, format=YUY2 ! xvimagesink”
Running that will display the camerastream in a new window on the nano just fine.

I want to stream the cameradata over a LAN-connection, so I try to use commands like these:
“gst-launch-1.0 v4l2src device=”/dev/video3" ! “video/x-raw, width=1280, height=720, format=(string)YUY2” ! nvv4l2h264enc insert-sps-pps=true ! h264parse ! rtph264pay pt=96 ! udpsink host=169.254.127.57 port=5555 sync=false -e"

which results in this errror:
nvbuf_utils: Could not get EGL display connection
WARNING: erroneous pipeline: could not link v4l2src0 to nvv4l2h264enc0, nvv4l2h264enc0 can’t handle caps video/x-raw, width=(int)1280, height=(int)720, format=(string)YUY2

I am not a professional,
but at least I have tried many other variations, with different plugins; different caps/dataformats and more.
Often gstreamer says that it either cannot handle the caps, or it has an internal datastream error. ( But it doesnt tell me more ).

On the receiver-end of the connection I want to run:
gst-launch-1.0 -v --gst-debug-level=3 udpsrc multicast-group=169.254.127.57 auto-multicast=true multicast-iface=eth0 port=5555 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink

Doing this sending from a raspberry and receiving on windows10-laptop works fine. I cant get it to work on the with sending from jetson nano.

Please, I need some help, I have spent so much time already trying to figure this out and I just can’t find the solution.
Thank you in advance for any help very much.
Best Regards, David

Hi,
Please refer to Jetson Nano FAQ
Q: I have a USB camera. How can I lauch it on Jetson Nano?

See if you can see video preview through nvoverlaysink first.

Thank you. Sorry for the late reply, I had a cold.

When I try :
‘gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! nvoverlaysink’

I get:
‘nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock’

and nothing happens ( no screen popping up etc) until I abort it.


When I try:
‘gst-launch-1.0 nvv4l2camerasrc device=/dev/video2 ! “video/x-raw(memory:NVMM),format=UYVY,width=640,height=480,framerate=30/1” ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! nvoverlaysink’

I get:
‘nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock’

and nothing happens again.

Shouldn’t there at least pop up a window or something ?


When I try:
‘vlc v4l2:///dev/video2’

I get:
‘VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[00000055c4eae580] main libvlc: Running vlc with the default interface. Use ‘cvlc’ to use vlc without interface.
nvbuf_utils: Could not get EGL display connection
nvbuf_utils: Could not get EGL display connection
Opening in BLOCKING MODE
libGL error: MESA-LOADER: failed to open swrast (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri)
libGL error: failed to load driver: swrast
[0000007f20002bf0] glx gl error: cannot create GLX context’

In this case a VLC-Player-Window pops up and displays the camerastream fine.


Thank you very much.
Best regrds, David

Hi,
It looks like certain packages are mismatched and you hit the error:

nvbuf_utils: Could not get EGL display connection

Are yo able to do clean re-flash through SDKManager and try again?

Hmm. I am really trying, but I dont get how to flash the Jetson Nano via the SDK-Manager. I have a VMVare-Linux-Virtual-Machine running Lubuntu (on Windows 10 -Laptop) where I installed the SDK-Manager. But then I dont understand how to “connect” the target Hardware (Step 02 of the SDK-Manager-Process for Jetson-Nano installation). What does “connect” mean in this case ? How could I “connect” my Laptop and the nano ; via USB? I tried putting the nano’s micro-SD-card into the Lubuntu-OS, but that does not seem to be interpreted as “connect”. All the time it will show me “No board connected” - please have a look at the picture. Thank you very much for your help.

Hi,
We suggest run SDKManager on direct Ubuntu OS machine instead of virtual machine. Could you try to download the r32.4.3 image:
https://developer.nvidia.com/jetson-nano-sd-card-image
And write it to SD card through Etcher:

Hello. Thank you very much. So writing the current image to SD-Card / flashing it solved some of the problems.
Now I can display the camerastream on the nano-OS when connected to a screen in a player - ( I dont see the playerwindow when I am connected via XRDP, - it shows me the “could not get EGL Display connection” error then, but that is not a problem).
It works with:
gst-launch-1.0 v4l2src device=/dev/video2 ! video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! nvoverlaysink
and with:
gst-launch-1.0 nvv4l2camerasrc device=/dev/video2 ! “video/x-raw(memory:NVMM),format=UYVY,width=640,height=480,framerate=30/1” ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! nvoverlaysink

now I am still having problems going down further the pipeline with my goal of streaming it over udp to another computer.
I am using the plugin omxh264enc.

I am using it on exactly the same way as I do on a raspberry with the same camera in the same network, with the same command.

On the Raspberry-4 I can do this:
gst-launch-1.0 -v v4l2src device=/dev/video4 ! videoconvert ! omxh264enc target-bitrate=10000000 control-rate=variable ! h264parse ! "video/x-h264,width=1920,height=1080" ! rtph264pay pt=96 ! udpsink host=192.168.2.111 port=5555

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, format=(string)YUY2, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)I420, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, format=(string)I420, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, format=(string)YUY2, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640028, sprop-parameter-sets=(string)"J2QAKKwrQDwBE/LgIDxImoA\=\,KO4CXLA\=", payload=(int)96, ssrc=(uint)2232278956, timestamp-offset=(uint)352928468, seqnum-offset=(uint)31128, a-framerate=(string)30
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640028, sprop-parameter-sets=(string)"J2QAKKwrQDwBE/LgIDxImoA\=\,KO4CXLA\=", payload=(int)96, ssrc=(uint)2232278956, timestamp-offset=(uint)352928468, seqnum-offset=(uint)31128, a-framerate=(string)30
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, profile=(string)high, level=(string)4, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, parsed=(boolean)true, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 352928468
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 31128

I can do the same on the jetson-nano:

gst-launch-1.0 -v v4l2src device=/dev/video2 ! videoconvert ! omxh264enc bitrate=10000000 control-rate=variable  ! h264parse ! "video/x-h264,width=1920,height=1080" ! rtph264pay pt=96 ! udpsink host=192.168.2.111 port=5555


nvbuf_utils: Could not get EGL display connection
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, format=(string)YUY2, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== NVMEDIA: NVENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
H264: Profile = 66, Level = 40 
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, format=(string)YUY2, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)bt709, interlace-mode=(string)progressive
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = video/x-h264, alignment=(string)au, profile=(string)baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = video/x-h264, alignment=(string)au, profile=(string)baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)014240150301000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, alignment=(string)au, profile=(string)constrained-baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)01424028ffe1000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, alignment=(string)au, profile=(string)constrained-baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)01424028ffe1000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)424028, sprop-parameter-sets=(string)"Z0JAKJWgHgCJ+VA\=\,aM48gA\=\=", payload=(int)96, ssrc=(uint)2528294709, timestamp-offset=(uint)1846381683, seqnum-offset=(uint)10043, a-framerate=(string)30
/GstPipeline:pipeline0/GstUDPSink:udpsink0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)424028, sprop-parameter-sets=(string)"Z0JAKJWgHgCJ+VA\=\,aM48gA\=\=", payload=(int)96, ssrc=(uint)2528294709, timestamp-offset=(uint)1846381683, seqnum-offset=(uint)10043, a-framerate=(string)30
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0.GstPad:sink: caps = video/x-h264, alignment=(string)au, profile=(string)constrained-baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)01424028ffe1000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-h264, alignment=(string)au, profile=(string)constrained-baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)01424028ffe1000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, alignment=(string)au, profile=(string)baseline, level=(string)4, stream-format=(string)avc, width=(int)1920, height=(int)1080, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1, codec_data=(buffer)014240150301000b6742402895a01e0089f95001000468ce3c80, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: timestamp = 1846421516
/GstPipeline:pipeline0/GstRtpH264Pay:rtph264pay0: seqnum = 10048

Both seem to work well.
But on the receiver side, (a windows-10-laptop), I am runnning a poweshell in admin-mode with the following command, the same command for either a streaming raspberry-4 or a streaming jetson-nano.

Trying to receive from the raspberry-4, a player shows up and Displays the Video on the receiver machine:

    gst-launch-1.0 -v udpsrc multicast-group=192.168.2.111  port=5555 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! queue ! videoconvert ! autovideosink       

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = application/x-rtp, encoding-name=(string)H264, payload=(int)96, media=(string)video, clock-rate=(int)90000
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, encoding-name=(string)H264, payload=(int)96, media=(string)video, clock-rate=(int)90000
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0, level=(string)4, profile=(string)high
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0, level=(string)4, profile=(string)high, pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0, level=(string)4, profile=(string)high, pixel-aspect-ratio=(fraction)1/1, width=(int)1920, height=(int)1080, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)01640028ffe1001127640028ac2b403c0113f2e0203c489a8001000528ee025cb0, level=(string)4, profile=(string)high
/GstPipeline:pipeline0/avdec_h264:avdec_h264-0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstD3DVideoSink:autovideosink0-actual-sink-d3dvideo.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0.GstGhostPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1
/GstPipeline:pipeline0/GstVideoConvert:videoconvert0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)1080, interlace-mode=(string)progressive, multiview-mode=(string)mono, multiview-flags=(GstVideoMultiviewFlagsSet)0:ffffffff:/right-view-first/left-flipped/left-flopped/right-flipped/right-flopped/half-aspect/mixed-mono, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)0/1

Trying to receive from the jetson-nano, not much happens and no player-window with no video-streaming:
gst-launch-1.0 -v udpsrc multicast-group=192.168.2.111 port=5555 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! queue ! videoconvert ! autovideosink

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = application/x-rtp, encoding-name=(string)H264, payload=(int)96, media=(string)video, clock-rate=(int)90000
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, encoding-name=(string)H264, payload=(int)96, media=(string)video, clock-rate=(int)90000

We have tried to investigate, try out different things, come up with ideas etc. We can only GUESS, but we do not really know where the trick or the problem stems from.

Do you one more time have any suggestions what we can do ?
Thank you again very much for your kind help.
Best regards, David :D

For streaming your USB cam to RTP/UDP, on Jetson you may try:

gst-launch-1.0 -v v4l2src device=/dev/video2 ! nvvidconv ! omxh264enc bitrate=10000000 control-rate=variable insert-vui=1 ! h264parse ! video/x-h264,width=1920,height=1080,stream-format=byte-stream ! rtph264pay config-interval=1 pt=96 ! udpsink host=224.1.1.1 port=5555 auto-multicast=true

You would be able to read the stream from any host with gstreamer on same LAN (unless firewall filters out or special LAN settings):

gst-launch-1.0 -v udpsrc multicast-group=224.1.1.1 auto-multicast=true port=5555 ! application/x-rtp, media=video, encoding-name=H264 ! rtpjitterbuffer ! rtph264depay ! h264parse ! avdec_h264 ! xvimagesink

# On Jetson, using HW decoding. xvimagesink may work over ssh with X forwarding.
gst-launch-1.0 -v udpsrc multicast-group=224.1.1.1 auto-multicast=true port=5555 ! application/x-rtp, media=video, encoding-name=H264 ! rtpjitterbuffer ! rtph264depay ! h264parse ! omxh264dec ! nvvidconv ! xvimagesink

or create a test.sdp file:

m=video 5555 RTP/AVP 96
c=IN IP4 224.1.1.1
a=rtpmap:96 H264/90000

and run:

vlc test.sdp
1 Like

Your solution works like a charm. Thank you so so much for your help. Our quality of life is now much improved due to your help. I owe you some beer :D Thank you very much.