Failed To Load Plugin (nvinfer) - Deepstream

Please provide complete information as applicable to your setup.

• Hardware Platform: Jetson Nano/Xavier NX
• DeepStream Version: 5.1
• JetPack Version 4.6.1(Nano) / 4.5.1(Xavier)
• TensorRT Version: 8.0.1-1+cuda10.2

I am unable to launch a gst-launch with nvinfer. I have tried it from the command line

$ gst-launch-1.0 v4l2src device=/dev/video0 \
> ! image/jpeg, width=1280, height=720, framerate=30/1 \
> ! jpegparse \
> ! nvv4l2decoder \
> ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 gpu-id=0 nvbuf-memory-type=0 \
> ! nvinfer config-file-path=/opt/nvidia/deepstream/deepstream-5.1/samples/configs/deepstream-app/config_infer_primary.txt batch-size=1 unique-id=1 \
> ! queue \
> ! nvvideoconvert \
> ! nvdsosd \
> ! nvegltransform \
> ! fakesink

(gst-plugin-scanner:9340): GStreamer-WARNING **: 16:08:06.783: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_osd.so': libnvinfer.so.7: cannot open shared object file: No such file or directory

(gst-plugin-scanner:9340): GStreamer-WARNING **: 16:08:06.815: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferserver.so': libnvinfer.so.7: cannot open shared object file: No such file or directory

(gst-plugin-scanner:9340): GStreamer-WARNING **: 16:08:06.820: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so': libnvparsers.so.7: cannot open shared object file: No such file or directory

(gst-plugin-scanner:9340): GStreamer-WARNING **: 16:08:06.829: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferaudio.so': libnvparsers.so.7: cannot open shared object file: No such file or directory
WARNING: erroneous pipeline: no element "nvinfer"

And also from the samples l4t container

$ sudo docker run -it --rm --net=host --runtime nvidia -w /opt/nvidia/deepstream/deepstream-5.1 -v /tmp/.X11-unix/:/tmp/.X11-unix nvcr.io/nvidia/deepstream-l4t:5.1-21.02-samples

$/opt/nvidia/deepstream/deepstream-5.1# gst-inspect-1.0 nvinfer
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)

(gst-plugin-scanner:14): GStreamer-WARNING **: 04:30:36.918: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_osd.so': /usr/lib/aarch64-linux-gnu/libnvinfer.so.7: file too short

(gst-plugin-scanner:14): GStreamer-WARNING **: 04:30:37.013: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferserver.so': /usr/lib/aarch64-linux-gnu/libnvinfer.so.7: file too short

(gst-plugin-scanner:14): GStreamer-WARNING **: 04:30:37.037: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_infer.so': /usr/lib/aarch64-linux-gnu/libnvparsers.so.7: file too short

(gst-plugin-scanner:14): GStreamer-WARNING **: 04:30:37.068: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferaudio.so': /usr/lib/aarch64-linux-gnu/libnvparsers.so.7: file too short
No such element or plugin 'nvinfer'

Any ideas on how to resolve. I have tried it on multiple devices (Nano\Xavier). But no luck so far.

Hi,
We have not delivered DeepStream SDK for Jetpack 4.6. Could you try Jetpack 4.5.1?

Hi there,

We have tried 4.5.1 as well (on a Xavier NX) and no luck so far.

Hi,
You may clean gstreamer cache and try again:

$ rm .cache/gstreamer-1.0/registry.aarch64.bin

And do you use SD card version of Jetson Nano/Xavier NX? The emmc version has 16GB and it is not enough for installing DeepStream SDK.

Hey @DaneLLL ,

I completely rebuilt the device with a fresh image of Jetpack 4.5.1 and DeepStream 5.1 and it’s now working with the following command

gst-launch-1.0 filesrc location = ../../streams/sample_1080p_h264.mp4 ! qtdemux ! h264parse ! nvv4l2decoder ! m.sink_0 nvstreammux name=m batch-size=1 width=1280 height=720 gpu-id=0 nvbuf-memory-type=0 ! nvinfer config-file-path=config_infer_primary_nano.txt batch-size=1 unique-id=1 ! queue ! nvvideoconvert ! nvdsosd ! nvvideoconvert ! nvv4l2h264enc bitrate=20000000 ! h264parse ! mp4mux ! filesink location=test.mp4 -e

Not sure what was going on before.