WARNING: erronous pipeline: no element "nvdsudpsrc"

• Hardware Platform ( GPU) A30X
• DeepStream Version 6.1
• TensorRT Version 8.2.5.1
• NVIDIA GPU Driver Version (valid for GPU only) 510.39.01
• Issue Type questions

I want to use nvdsudpsrc and nvdsudpsink for UDP communication.
I started the DeepStream docker container (nvcr.io/nvidia/deepstream: 6.1-devel) and ran nvdsudpsrc,by following command

gst-launch -1.0 -e nvdsudpsrc uri = udp :// 239.xx.xx.xx: xxxx local-iface-ip = 192.168.xx.xx multicast-iface = ibpXXX!
application/x-rtp, media = video, encoding-name = H 264!
queue!
rtph 264 depend!
h 264 parse!
qtmux! filesink location =./ xxx.mp4

But,it does not work and I get following error messages:

WARNING: erronous pipeline: no element “nvdsudpsrc”

Also, I executed following command
gst-inspect -1.0 nvdsudpsrc

Then I get following error message:

“No such element or plugin ‘nvdsudpsrc’”

How do I use “nvdsudpsrc” ?

The docker container has Rivermax installed.
I executed following command, before I run nvdsudpsrd.

export LOCAL_IFACE_IP=192.168.xx.xx
export RIVERMAX_LICENSE_PATH=/xxx/xxxx/License file
sudo setcap CAP_NET_RAW = ep/usr/bin/gst-launch -1.0

nvdsudpsrc component can only be used with NVIDIA Mellanox ConnectX-5 and above cards after having installed Rivermax SDK and its license.

Did you have this?

We have A30X.

This converged accelerator has ConnectX-6Dx capability.
We installed RivermaxSDK and got a license.(and set the proper environment variable)

However, we could not find nvdsudpsrc and nvdsudpsink.

can you find nvdsudpsrc plugin under lib/gst-plugins/

We could find “libnvdsgst_udp.so” under “lib/gst-plugins”.
Is the nvdsudpsrc plugin in the libnvdsgst_udp.so file?

We executed following command again:
gst-inspect -1.0 nvdsudpsrc

However,We got following error message:
“No such element or plugin ‘nvdsudpsrc”

Files under “lib/gst-plugins”:

libcustom2d_preprocess.so libnvdsgst_dewarper.so libnvdsgst_inferserver.so libnvdsgst_multistream.so libnvdsgst_osd.so libnvdsgst_tracker.so
libgstnvvideo4linux2.so libnvdsgst_dsanalytics.so libnvdsgst_jpegdec.so libnvdsgst_multistream_2.a libnvdsgst_postprocess.so libnvdsgst_ucx.so
libgstnvvideoconvert.so libnvdsgst_dsexample.so libnvdsgst_logger.so libnvdsgst_multistreamtiler.so libnvdsgst_preprocess.so libnvdsgst_udp.so
libnvdsgst_3dfilter.so libnvdsgst_eglglessink.so libnvdsgst_metautils.so libnvdsgst_nvblender.so libnvdsgst_segvisual.so libnvdsgst_videotemplate.so
libnvdsgst_audiotemplate.so libnvdsgst_infer.so libnvdsgst_msgbroker.so libnvdsgst_of.so libnvdsgst_speech.so
libnvdsgst_deepstream_bins.so libnvdsgst_inferaudio.so libnvdsgst_msgconv.so libnvdsgst_ofvisual.so libnvdsgst_text_to_speech.so

How about result of
gst-inspect -1.0 lib/gst-plugins/libnvdsgst_udp.so

I executed following command and got following message:
$gst-inspect-1.0 libnvdsgst_udp.so

Plugin Details:
Name libnvdsgst_udp.so
Description Plugin for blacklisted file
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_udp.so
Version 0.0.0
License BLACKLIST
Source module BLACKLIST
Binary package BLACKLIST
Origin URL BLACKLIST

0 features:

Also, I executed following command and got following messase:
“libdpcp.so.1 = > not found” is displayed.
Does this affect anything? If so, how can I solve it?

$ldd libnvdsgst_udp.so

    linux-vdso.so.1 (0x00007ffc204ac000)
    libcudart.so.11.0 => /usr/local/cuda-11.6/lib64/libcudart.so.11.0 (0x00007f90eccbd000)
    libpthread.so.0 => /usr/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f90ecc85000)
    libgio-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007f90ecaa4000)
    librivermax.so.0 => /usr/lib/x86_64-linux-gnu/librivermax.so.0 (0x00007f90ec8fa000)
    libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007f90ec7b3000)
    libgstbase-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0 (0x00007f90ec733000)
    libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f90ec60a000)
    libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f90ec5aa000)
    libgstsdp-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstsdp-1.0.so.0 (0x00007f90ec591000)
    libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007f90ec39f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f90ecf78000)
    libdl.so.2 => /usr/lib/x86_64-linux-gnu/libdl.so.2 (0x00007f90ec399000)
    librt.so.1 => /usr/lib/x86_64-linux-gnu/librt.so.1 (0x00007f90ec38d000)
    libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f90ec387000)
    libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x00007f90ec36b000)
    libmount.so.1 => /usr/lib/x86_64-linux-gnu/libmount.so.1 (0x00007f90ec30b000)
    libselinux.so.1 => /usr/lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f90ec2e0000)
    libresolv.so.2 => /usr/lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f90ec2c4000)
    libibverbs.so.1 => /usr/lib/x86_64-linux-gnu/libibverbs.so.1 (0x00007f90ec2a0000)
    libdpcp.so.1 => not found
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f90ec0be000)
    libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007f90ebf6f000)
    libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f90ebf54000)
    libpcre.so.3 => /usr/lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f90ebedf000)
    libffi.so.7 => /usr/lib/x86_64-linux-gnu/libffi.so.7 (0x00007f90ebed3000)
    libgstrtp-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstrtp-1.0.so.0 (0x00007f90ebead000)
    libblkid.so.1 => /usr/lib/x86_64-linux-gnu/libblkid.so.1 (0x00007f90ebe56000)
    libpcre2-8.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007f90ebdc6000)
    libnl-route-3.so.200 => /usr/lib/x86_64-linux-gnu/libnl-route-3.so.200 (0x00007f90ebd4e000)
    libnl-3.so.200 => /usr/lib/x86_64-linux-gnu/libnl-3.so.200 (0x00007f90ebd29000)

Try clearing the GStreamer cache by running the command:
rm -rf ${HOME}/.cache/gstreamer-1.0
btw, did you follow Gst-nvdsudpsrc — DeepStream 6.1 Release documentation (nvidia.com) to setup?

I executed following command:
rm -rf ${HOME}/.cache/gstreamer-1.0

And,I executed following command:
gst-launch -1.0 -e nvdsudpsrc uri = udp://239.xx.xx.xx: xxxx local-iface-ip = 192.168.xx.xx multicast-iface=ibpXXX!
application/x-rtp, media = video, encoding-name = H 264!
queue!
rtph264depend!
h264parse!
qtmux! filesink location =./ xxx.mp4

However,I got following error message again:
WARNING: erroneous pipeline: no element “nvdsudpsrc”

Also, I set it up according to the DeepStream 6.1 release document.

Did you install OFED package?

I installed “MLNX_OFED_LINUX-5.6-2.0.9.0-ubuntu20.04-x86_64.iso” on the host machine.
But,I did not installed OFED on a Docker container(nvcr.io/nvidia/deepstream: 6.1 -devel).
Do I need to install OFED on Docker containers?

Yes.

What is the best way to install OFED on Docker container?
I am not able to install it with vma flag, which is needed.
Do you have any advice?

Thank you for all your help.
I was able to fix this warning.