Camera's Not working within jetson-inference docker

3 example’s of using csi & video within jetson-inference docker
cameras do not work within docker but are fine outside
Any clues.
Now using jetpack 5.1.1 [L4T 35.3.1]
I have had no problems in the past.

/dev/video/ WORKS FINE ON SAME SET UP ON ORIN AGX

--------jetson xavier nx-------------

/dev/Video0 param

root@xavier-nx:/jetson-inference/build/aarch64/bin# ./posenet /dev/video0
[gstreamer] initialized gstreamer, version 1.16.3.0
[gstreamer] gstCamera – attempting to create device v4l2:///dev/video0
[gstreamer] gstCamera – found v4l2 device: HD Pro Webcam C920
[gstreamer] v4l2-proplist, device.path=(string)/dev/video2, udev-probed=(boolean)false, device.api=(string)v4l2, v4l2.device.driver=(string)uvcvideo, v4l2.device.card=(string)“HD\ Pro\ Webcam\ C920”, v4l2.device.bus_info=(string)usb-3610000.xhci-2.1, v4l2.device.version=(uint)330344, v4l2.device.capabilities=(uint)2225078273, v4l2.device.device_caps=(uint)69206017;
[gstreamer] gstCamera – could not find v4l2 device /dev/video0
[gstreamer] gstCamera – device discovery failed, but /dev/video0 exists
[gstreamer] support for compressed formats is disabled
[gstreamer] gstCamera pipeline string:
[gstreamer] v4l2src device=/dev/video0 do-timestamp=true ! nvv4l2decoder name=decoder enable-max-performance=1 ! video/x-raw(memory:NVMM) ! nvvidconv flip-method=0 ! video/x-raw ! appsink name=mysink sync=false
[gstreamer] gstCamera failed to create pipeline
[gstreamer] (no element “nvv4l2decoder”)
[gstreamer] gstCamera – failed to create device v4l2:///dev/video0
posenet: failed to create input stream

csi://0

root@xavier-nx:/jetson-inference/build/aarch64/bin# ./posenet csi://0
[gstreamer] initialized gstreamer, version 1.16.3.0
[gstreamer] gstCamera – attempting to create device csi://0
[gstreamer] gstCamera pipeline string:
[gstreamer] nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=30/1, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
[gstreamer] gstCamera failed to create pipeline
[gstreamer] (no element “nvarguscamerasrc”)
[gstreamer] gstCamera – failed to create device csi://0
posenet: failed to create input stream

csi://1

root@xavier-nx:/jetson-inference/build/aarch64/bin# ./posenet csi://1
[gstreamer] initialized gstreamer, version 1.16.3.0
[gstreamer] gstCamera – attempting to create device csi://1
[gstreamer] gstCamera pipeline string:
[gstreamer] nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=30/1, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
[gstreamer] gstCamera failed to create pipeline
[gstreamer] (no element “nvarguscamerasrc”)
[gstreamer] gstCamera – failed to create device csi://1
posenet: failed to create input stream

Hi @paulrrh, it appears that you’re missing the NVIDIA-accelerated GStreamer elements that JetPack provides. The plugins for these are mounted from the host device. So I wonder if those are missing (and if JetPack was successfully installed on this device), or if a different version of GStreamer was installed/updated.

Try running these inside and outside of the container:

$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.16.3
GStreamer 1.16.3
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0

$ gst-inspect-1.0 | grep nv

nvarguscamerasrc:  nvarguscamerasrc: NvArgusCameraSrc
nvtee:  nvtee: NvTee
nveglstreamsrc:  nveglstreamsrc: nVidia EGL Stream
nvvideosinks:  nv3dsink: Nvidia 3D sink
nvjpeg:  nvjpegdec: JPEG image decoder
nvjpeg:  nvjpegenc: JPEG image encoder
nvdrmvideosink:  nvdrmvideosink: Nvidia Drm Video Sink
nvvidconv:  nvvidconv: NvVidConv Plugin
nvivafilter:  nvivafilter: NvIVAFilter Plugin
nvvideosink:  nvvideosink: nVidia Video Sink
nvv4l2camerasrc:  nvv4l2camerasrc: NvV4l2CameraSrc
nvegltransform:  nvegltransform: NvEGLTransform
nveglglessink:  nveglglessink: EGL/GLES vout Sink
nvvideo4linux2:  nvv4l2av1enc: V4L2 AV1 Encoder
nvvideo4linux2:  nvv4l2vp9enc: V4L2 VP9 Encoder
nvvideo4linux2:  nvv4l2h265enc: V4L2 H.265 Encoder
nvvideo4linux2:  nvv4l2h264enc: V4L2 H.264 Encoder
nvvideo4linux2:  nvv4l2decoder: NVIDIA v4l2 video decoder
nvcompositor:  nvcompositor: NvCompositor
$ ls -ll /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnv*

-rw-r--r-- 1 root root  68544 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
-rw-r--r-- 1 root root  35608 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
-rw-r--r-- 1 root root  39672 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
-rw-r--r-- 1 root root 742592 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
-rw-r--r-- 1 root root  31320 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
-rw-r--r-- 1 root root  27152 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
-rw-r--r-- 1 root root  48168 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
-rw-r--r-- 1 root root  52504 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
-rw-r--r-- 1 root root  18936 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
-rw-r--r-- 1 root root  35416 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so
-rw-r--r-- 1 root root 700712 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
-rw-r--r-- 1 root root 275328 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
-rw-r--r-- 1 root root  35488 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
-rw-r--r-- 1 root root 721312 Mar 15 07:47 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so

Thanks for the quick response.
Outside container is as follows. Virually the same as your listing
paul@xavier-nx:~$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.16.3
GStreamer 1.16.3
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0
paul@xavier-nx:~$ gst-inspect-1.0 | grep nv
nvjpeg: nvjpegenc: JPEG image encoder
nvjpeg: nvjpegdec: JPEG image decoder
opengl: glcolorconvert: OpenGL color converter
opengl: gleffects_blur: Blur with 9x9 separable convolution Effect
opengl: gleffects_laplacian: Laplacian Convolution Demo Effect
opengl: glviewconvert: OpenGL Multiview/3D conversion filter
nvarguscamerasrc: nvarguscamerasrc: NvArgusCameraSrc
ivtc: ivtc: Inverse Telecine
autoconvert: autoconvert: Select convertor based on caps
autoconvert: autovideoconvert: Select color space convertor based on caps
nvvideo4linux2: nvv4l2decoder: NVIDIA v4l2 video decoder
nvvideo4linux2: nvv4l2h264enc: V4L2 H.264 Encoder
nvvideo4linux2: nvv4l2h265enc: V4L2 H.265 Encoder
nvvideo4linux2: nvv4l2vp9enc: V4L2 VP9 Encoder
nvvideo4linux2: nvv4l2av1enc: V4L2 AV1 Encoder
nvvideosink: nvvideosink: nVidia Video Sink
nvdrmvideosink: nvdrmvideosink: Nvidia Drm Video Sink
audiofx: audioinvert: Audio inversion
nvvideosinks: nv3dsink: Nvidia 3D sink
nvivafilter: nvivafilter: NvIVAFilter Plugin
nveglglessink: nveglglessink: EGL/GLES vout Sink
closedcaption: ccconverter: Closed Caption Converter
nvvidconv: nvvidconv: NvVidConv Plugin
nvtee: nvtee: NvTee
bayer: rgb2bayer: RGB to Bayer converter
nveglstreamsrc: nveglstreamsrc: nVidia EGL Stream
audioconvert: audioconvert: Audio converter
nvegltransform: nvegltransform: NvEGLTransform
rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension
debugutilsbad: errorignore: Convert some GstFlowReturn types into others
nvcompositor: nvcompositor: NvCompositor
videoconvert: videoconvert: Colorspace converter
libav: avdec_twinvq: libav VQF TwinVQ decoder
libav: avdec_dsicinvideo: libav Delphine Software International CIN video decoder
libav: avdec_idcinvideo: libav id Quake II CIN video decoder
libav: avdec_wnv1: libav Winnov WNV1 decoder
nvv4l2camerasrc: nvv4l2camerasrc: NvV4l2CameraSrc
paul@xavier-nx:~$ ls -ll /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnv*
-rw-r–r-- 1 root root 68544 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
-rw-r–r-- 1 root root 35608 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
-rw-r–r-- 1 root root 39672 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
-rw-r–r-- 1 root root 742592 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
-rw-r–r-- 1 root root 31320 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
-rw-r–r-- 1 root root 27152 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
-rw-r–r-- 1 root root 48168 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
-rw-r–r-- 1 root root 52504 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
-rw-r–r-- 1 root root 18936 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
-rw-r–r-- 1 root root 35416 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so
-rw-r–r-- 1 root root 700712 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
-rw-r–r-- 1 root root 275328 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
-rw-r–r-- 1 root root 35488 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
-rw-r–r-- 1 root root 721312 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so
paul@xavier-nx:

****************** INSIDE CONTAINER********************
LAST COMMAND SAME AS YOURSELF AND ALSO OUTSIDE CONTAINER
root@xavier-nx:/jetson-inference# gst-inspect-1.0 --version

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.313: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.337: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.350: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.366: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.387: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.400: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.423: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.439: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.455: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.473: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 09:58:48.523: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING *: 09:58:48.544: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so’: /lib/aarch64-linux-gnu/libGLdispatch.so.0: cannot allocate memory in static TLS block
gst-inspect-1.0 version 1.16.3
GStreamer 1.16.3
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0
root@xavier-nx:/jetson-inference#
root@xavier-nx:/jetson-inference# gst-inspect-1.0 | grep nv
nvdrmvideosink: nvdrmvideosink: Nvidia Drm Video Sink
nvtee: nvtee: NvTee
ivtc: ivtc: Inverse Telecine
autoconvert: autoconvert: Select convertor based on caps
autoconvert: autovideoconvert: Select color space convertor based on caps
audiofx: audioinvert: Audio inversion
closedcaption: ccconverter: Closed Caption Converter
bayer: rgb2bayer: RGB to Bayer converter
audioconvert: audioconvert: Audio converter
rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension
debugutilsbad: errorignore: Convert some GstFlowReturn types into others
videoconvert: videoconvert: Colorspace converter
libav: avdec_twinvq: libav VQF TwinVQ decoder
libav: avdec_dsicinvideo: libav Delphine Software International CIN video decoder
libav: avdec_idcinvideo: libav id Quake II CIN video decoder
libav: avdec_wnv1: libav Winnov WNV1 decoder
root@xavier-nx:/jetson-inference# ls -ll /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnv

-rw-r–r-- 1 root root 68544 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
-rw-r–r-- 1 root root 35608 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
-rw-r–r-- 1 root root 39672 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
-rw-r–r-- 1 root root 742592 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
-rw-r–r-- 1 root root 31320 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
-rw-r–r-- 1 root root 27152 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
-rw-r–r-- 1 root root 48168 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
-rw-r–r-- 1 root root 52504 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
-rw-r–r-- 1 root root 18936 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
-rw-r–r-- 1 root root 35416 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so
-rw-r–r-- 1 root root 700712 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
-rw-r–r-- 1 root root 275328 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
-rw-r–r-- 1 root root 35488 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
-rw-r–r-- 1 root root 721312 Mar 19 15:14 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so
root@xavier-nx:/jetson-inference#

What is the best option to solve the problem without havineg to reflash the system. Remove gstreamer and reinstall ?
Thanks for you help so far.

OK, try running this inside the container before you run the commands:

export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0

Then try gst-inspect-1.0 | grep nv again in the container, and see if the NVIDIA elements are listed now. Then you can try jetson-inference again.

I suspect that your OpenGL drivers got replaced at some point with the Mesa/SGI graphics drivers (i.e. via an apt package upgrade or similar) because that libGLdispatch message wouldn’t typically happen.

Dusty
Thanks once again

I ran the commands below as you asked and csi camera’s worked.
THEN
I rebooted and pluged in USB camera as well now they don’t.

BEFORE*********************************

root@xavier-nx:/jetson-inference# export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0

root@xavier-nx:/jetson-inference# gst-inspect-1.0 | grep nv

(gst-plugin-scanner:23): GStreamer-WARNING **: 07:24:15.872: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstlibav.so’: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block

(gst-plugin-scanner:23): GStreamer-WARNING **: 07:24:16.043: Failed to load plugin ‘/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstchromaprint.so’: /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block
nvjpeg: nvjpegdec: JPEG image decoder
nvjpeg: nvjpegenc: JPEG image encoder
nvarguscamerasrc: nvarguscamerasrc: NvArgusCameraSrc
nvvideo4linux2: nvv4l2av1enc: V4L2 AV1 Encoder
nvvideo4linux2: nvv4l2vp9enc: V4L2 VP9 Encoder
nvvideo4linux2: nvv4l2h265enc: V4L2 H.265 Encoder
nvvideo4linux2: nvv4l2h264enc: V4L2 H.264 Encoder
nvvideo4linux2: nvv4l2decoder: NVIDIA v4l2 video decoder
nvvideosink: nvvideosink: nVidia Video Sink
nvdrmvideosink: nvdrmvideosink: Nvidia Drm Video Sink
nvvideosinks: nv3dsink: Nvidia 3D sink
nvivafilter: nvivafilter: NvIVAFilter Plugin
nveglglessink: nveglglessink: EGL/GLES vout Sink
nvvidconv: nvvidconv: NvVidConv Plugin
nvtee: nvtee: NvTee
nveglstreamsrc: nveglstreamsrc: nVidia EGL Stream
nvegltransform: nvegltransform: NvEGLTransform
nvcompositor: nvcompositor: NvCompositor
nvv4l2camerasrc: nvv4l2camerasrc: NvV4l2CameraSrc
ivtc: ivtc: Inverse Telecine
autoconvert: autovideoconvert: Select color space convertor based on caps
autoconvert: autoconvert: Select convertor based on caps
audiofx: audioinvert: Audio inversion
closedcaption: ccconverter: Closed Caption Converter
bayer: rgb2bayer: RGB to Bayer converter
audioconvert: audioconvert: Audio converter
rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension
rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
debugutilsbad: errorignore: Convert some GstFlowReturn types into others
videoconvert: videoconvert: Colorspace converter

****************************AFTER

root@xavier-nx:/jetson-inference/build/aarch64/bin# video-viewer csi://1
[gstreamer] initialized gstreamer, version 1.16.3.0
[gstreamer] gstCamera – attempting to create device csi://1
[gstreamer] gstCamera pipeline string:
[gstreamer] nvarguscamerasrc sensor-id=1 ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=30/1, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
[gstreamer] gstCamera failed to create pipeline
[gstreamer] (no element “nvarguscamerasrc”)
[gstreamer] gstCamera – failed to create device csi://1
video-viewer: failed to create input stream


root@xavier-nx:/jetson-inference/build/aarch64/bin# gst-inspect-1.0 | grep nv
nvdrmvideosink: nvdrmvideosink: Nvidia Drm Video Sink
nvtee: nvtee: NvTee
ivtc: ivtc: Inverse Telecine
autoconvert: autoconvert: Select convertor based on caps
autoconvert: autovideoconvert: Select color space convertor based on caps
audiofx: audioinvert: Audio inversion
closedcaption: ccconverter: Closed Caption Converter
bayer: rgb2bayer: RGB to Bayer converter
audioconvert: audioconvert: Audio converter
rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension
debugutilsbad: errorignore: Convert some GstFlowReturn types into others
videoconvert: videoconvert: Colorspace converter
libav: avdec_twinvq: libav VQF TwinVQ decoder
libav: avdec_dsicinvideo: libav Delphine Software International CIN video decoder
libav: avdec_idcinvideo: libav id Quake II CIN video decoder
libav: avdec_wnv1: libav Winnov WNV1 decoder
root@xavier-nx:/jetson-inference/build/aarch64/bin# export LD_PRELOAD=/
root@xavier-nx:/jetson-inference/build/aarch64/bin# gst-inspect-1.0 | grep nv
ERROR: ld.so: object ‘/’ from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
ERROR: ld.so: object ‘/’ from LD_PRELOAD cannot be preloaded (cannot read file data): ignored.
nvdrmvideosink: nvdrmvideosink: Nvidia Drm Video Sink
nvtee: nvtee: NvTee
ivtc: ivtc: Inverse Telecine
autoconvert: autoconvert: Select convertor based on caps
autoconvert: autovideoconvert: Select color space convertor based on caps
audiofx: audioinvert: Audio inversion
closedcaption: ccconverter: Closed Caption Converter
bayer: rgb2bayer: RGB to Bayer converter
audioconvert: audioconvert: Audio converter
rtponvif: rtponviftimestamp: ONVIF NTP timestamps RTP extension
rtponvif: rtponvifparse: ONVIF NTP timestamps RTP extension
debugutilsbad: errorignore: Convert some GstFlowReturn types into others
videoconvert: videoconvert: Colorspace converter
libav: avdec_twinvq: libav VQF TwinVQ decoder
libav: avdec_dsicinvideo: libav Delphine Software International CIN video decoder
libav: avdec_idcinvideo: libav id Quake II CIN video decoder
libav: avdec_wnv1: libav Winnov WNV1 decoder
root@xavier-nx:/jetson-inference/build/aarch64/bin#

Sorry to be a pain but I’m obviously missing a trick.

PRRH

@paulrrh try export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0:/lib/aarch64-linux-gnu/libgomp.so.1

Thanks again.

Did the above outside container
result
root@xavier-nx:/jetson-inference/build/aarch64/bin# video-viewer csi://0
[gstreamer] initialized gstreamer, version 1.16.3.0
[gstreamer] gstCamera – attempting to create device csi://0
[gstreamer] gstCamera pipeline string:
[gstreamer] nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=30/1, format=(string)NV12 ! nvvidconv flip-method=2 ! video/x-raw ! appsink name=mysink
[gstreamer] gstCamera failed to create pipeline
[gstreamer] (no element “nvarguscamerasrc”)
[gstreamer] gstCamera – failed to create device csi://0
video-viewer: failed to create input stream
root@xavier-nx:/jetson-inference/build/aarch64/bin#

also did above inside container same result.

You need to run that inside the container, not outside - try it like this:

# run these commands inside container
export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0:/lib/aarch64-linux-gnu/libgomp.so.1
gst-inspect-1.0 | grep nv   # confirm that NVIDIA elements are found
video-viewer csi://0

Thanks
Magic it works for both csi://0 & csi://1
but unfortunatly not for
video-viewer /dev/video0
and so it should not as it should be

video-viewer /dev/video2

Thanks for your help so far.
As soon as I exit the container and re-enter the problem re-occurs
What Next ?

Keep running the command

export LD_PRELOAD=/lib/aarch64-linux-gnu/libGLdispatch.so.0:/lib/aarch64-linux-gnu/libgomp.so.1
every time I go into container ?
or what’s the answer.

Thanks in anticiptation
paulrrh

Yes - export LD_PRELOAD=/lib/aarch64-linux-gnu/libgomp.so.1 is already part of the Dockerfile (see here), but on your system it seems to need /lib/aarch64-linux-gnu/libGLdispatch.so.0 also (I think that may have been upgraded/replaced on your host)

So you can either run that export command when you start the container, or modify the Dockerfile and rebuild it with docker/build.sh (or create your own Dockerfile that uses jetson-inference as base container)

Or you can use a docker commit to save you changes to the container. Or you can change the way the container is started so that it doesn’t exit (i.e. by removing -rm from the docker run command in the docker/run.sh script). So there are several ways to make the change persistent.

Dusty
Thanks for all your help, so many options to fix problem all of which I understand, all though I’m not sure what I have done in the past to change the system. The only other software I have been using is Visual studio code where I some python code for using the cameras to which I had change version of python fix the problems
Thanks once again for all of you time.

Just as an aside is there a easy way to access the cameras on my NX from my
AGX Orin
Have a good day
PaulRRH

Perhaps some packages got installed at some point which changed the underlying OpenGL graphics drivers - you could check glxinfo (from the mesa-utils package) to see if the nvidia driver is still listed and if you get that libGLdispatch.so error. You could try this both inside and outside of the container and compare the results.

Typically this would be done over an encoded network stream like RTP, RTSP, or WebRTC (probably just RTP or RTSP in this case, since presumably you want to do processing on the NX-connected camera from your Orin and WebRTC is mostly for viewing video from the browser)

These various network streaming protocols like RTP/RTSP/ect are supported in jetson-inference: https://github.com/dusty-nv/jetson-inference/blob/master/docs/aux-streaming.md

So you could run video-viewer on your NX, stream it out over RTP/RTSP, and then run detectnet/ect on Orin and receive the RTP/RTSP.

Thanks for all your help. I’ll consider the matter closed for a while no doubt I’ll will be back.
Your help has been most appreciated.
PaulRRH

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.