Error: Decodebin did not pick nvidia decoder plugin

• Hardware Platform (Jetson / GPU) : Tesla T4 Gpu
• DeepStream Version : 6.4
• TensorRT Version : * TensorRT 8.6.1.6
• NVIDIA GPU Driver Version (valid for GPU only) : 535.104.12

i have successfully created and run an app using Deepstream , everything was fine. Then i done the same in a Docker container, then iam getting the following error:

deepstream_celery_1 | Error while setting IOCTL
deepstream_celery_1 | Invalid control
deepstream_celery_1 | S_EXT_CTRLS for CUDA_GPU_ID failed
deepstream_celery_1 | [2024-02-26 06:34:00,254: WARNING/MainProcess] pad_added_callback
deepstream_celery_1 | [2024-02-26 06:34:00,255: WARNING/MainProcess] gstname=
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess]
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess] video/x-raw
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess] link uridecodebin to nvstreammux : features
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess]
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess] <Gst.CapsFeatures object at 0x7f4a3e437be0 (GstCapsFeatures at 0x564d85162720)>
deepstream_celery_1 | [2024-02-26 06:34:00,256: WARNING/MainProcess] Error: Decodebin did not pick nvidia decoder plugin.

am using the same driver and cuda versions inside the container and i have installed nvidia conatiner toolkit, and i can do nvidia-smi from inside the container.

the following is my Dockerfile:

FROM ubuntu:22.04

RUN apt-get update && apt-get install -y \
    libssl3 \
    libssl-dev \
    libgstreamer1.0-0 \
    gstreamer1.0-tools \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-libav \
    libgstreamer-plugins-base1.0-dev \
    libgstrtspserver-1.0-0 \
    libjansson4 \
    libyaml-cpp-dev \
    libjsoncpp-dev \
    protobuf-compiler \
    gcc \
    make \
    git

RUN apt-get update && apt-get install -y \
    gnupg \
    software-properties-common \
    wget && \
    apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub && \
    add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /" && \
    apt-get update && \
    apt-get install -y cuda-toolkit-12-2 && \
    apt-get clean && rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y \
    libnvinfer8=8.6.1.6-1+cuda12.0 \
    libnvinfer-plugin8=8.6.1.6-1+cuda12.0 \
    libnvparsers8=8.6.1.6-1+cuda12.0 \
    libnvonnxparsers8=8.6.1.6-1+cuda12.0 \
    libnvinfer-bin=8.6.1.6-1+cuda12.0 \
    libnvinfer-dev=8.6.1.6-1+cuda12.0 \
    libnvinfer-plugin-dev=8.6.1.6-1+cuda12.0 \
    libnvparsers-dev=8.6.1.6-1+cuda12.0 \
    libnvonnxparsers-dev=8.6.1.6-1+cuda12.0 \
    libnvinfer-samples=8.6.1.6-1+cuda12.0 \
    libcudnn8=8.9.4.25-1+cuda12.2 \
    libcudnn8-dev=8.9.4.25-1+cuda12.2

RUN apt-get update && apt-get upgrade -y
RUN apt-get install -y apt-utils

RUN wget --content-disposition 'https://api.ngc.nvidia.com/v2/resources/org/nvidia/deepstream/6.4/files?redirect=true&path=deepstream-6.4_6.4.0-1_amd64.deb' -O deepstream-6.4_6.4.0-1_amd64.deb && \
    apt-get install -y ./deepstream-6.4_6.4.0-1_amd64.deb

RUN apt-get update && apt-get install -y python3-pip

RUN apt-get update && apt-get install -y cmake

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential libgl1-mesa-glx libcairo2-dev ffmpeg
RUN wget https://github.com/NVIDIA-AI-IOT/deepstream_python_apps/releases/download/v1.1.10/pyds-1.1.10-py3-none-linux_x86_64.whl && \
    pip3 install ./pyds-1.1.10-py3-none-linux_x86_64.whl

RUN apt-get install -y libgirepository1.0-dev

#copy Deepstream Python app code and required files
COPY . /app

# Set the working directory
WORKDIR /app

COPY deepstream_requirements.txt .
RUN pip3 install -r deepstream_requirements.txt
EXPOSE 5672
# Command to run your FastAPI app
CMD ["celery", "-A", "worker", "worker","--pool=solo", "--loglevel=info"]

i was earlier using Deepstream official docker image, but then i was expereinecing the gstreamer plugin issues.That’s why i changed to docker custom image

Have you installed the driver and the CUDA on your host?

yes, and iam able to do nvidia-smi from inside the container also

Tue Feb 27 09:13:59 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.12             Driver Version: 535.104.12   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla P4                       Off | 00000000:00:04.0 Off |                    0 |
| N/A   42C    P0              23W /  75W |      0MiB /  7680MiB |      2%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

Could you check the lib in your docker with ldd /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4linux2.so?

sure,:

deepstream_user@16dcabaec355:/app$ ldd /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4 linux2.so
/usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4:
ldd: /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4: No such file or directory
linux2.so:
ldd: ./linux2.so: No such file or directory```

Could you try that again? There is no space in the libgstnvvideo4linux2.so.

Hello, I have the same error show, but I fixed them. My experience is when this error show during I infer the video, using

ffmpeg -i view_4-od_video.mp4 -c:v libx264 -preset fast -crf 22 -c:a aac -b:a 128k new_video.mp4

when I infer the streaming, make sure the sound stream not input.

yes,`

deepstream_user@75c1bf5e33f3:/app$ ldd /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libgstnvvideo4linux2.so
	linux-vdso.so.1 (0x00007fffebf49000)
	libnvbufsurface.so => ///opt/nvidia/deepstream/deepstream-6.4/lib/libnvbufsurface.so (0x00007f6125c5f000)
	libnvbufsurftransform.so => ///opt/nvidia/deepstream/deepstream-6.4/lib/libnvbufsurftransform.so (0x00007f6123c8c000)
	libgstnvcustomhelper.so => ///opt/nvidia/deepstream/deepstream-6.4/lib/libgstnvcustomhelper.so (0x00007f6123c87000)
	libgstallocators-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstallocators-1.0.so.0 (0x00007f6123c73000)
	libgstnvdsseimeta.so => ///opt/nvidia/deepstream/deepstream-6.4/lib/libgstnvdsseimeta.so (0x00007f6123c6e000)
	libgstreamer-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so.0 (0x00007f6123b1b000)
	libgstbase-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstbase-1.0.so.0 (0x00007f6123a96000)
	libgstvideo-1.0.so.0 => /usr/lib/x86_64-linux-gnu/libgstvideo-1.0.so.0 (0x00007f61239d1000)
	libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f6123897000)
	libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f6123837000)
	libv4l2.so.0 => /usr/lib/x86_64-linux-gnu/libv4l2.so.0 (0x00007f6123732000)
	libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x00007f6123507000)
	libnvbuf_fdmap.so => ///opt/nvidia/deepstream/deepstream-6.4/lib/libnvbuf_fdmap.so (0x00007f6123502000)
	libcudart.so.12 => /usr/local/cuda-12.2/lib64/libcudart.so.12 (0x00007f6123200000)
	libcuda.so.1 => /usr/lib/x86_64-linux-gnu/libcuda.so.1 (0x00007f6121400000)
	libnppc.so.12 => /usr/local/cuda-12.2/lib64/libnppc.so.12 (0x00007f6121000000)
	libnppig.so.12 => /usr/local/cuda-12.2/lib64/libnppig.so.12 (0x00007f611e800000)
	libnppidei.so.12 => /usr/local/cuda-12.2/lib64/libnppidei.so.12 (0x00007f611da00000)
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f611d7d4000)
	libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f61234e0000)
	libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f61234d9000)
	libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x00007f6123119000)
	libunwind.so.8 => /usr/lib/x86_64-linux-gnu/libunwind.so.8 (0x00007f61234bc000)
	libdw.so.1 => /usr/lib/x86_64-linux-gnu/libdw.so.1 (0x00007f612306d000)
	liborc-0.4.so.0 => /usr/lib/x86_64-linux-gnu/liborc-0.4.so.0 (0x00007f6120f7b000)
	libpcre.so.3 => /usr/lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f611e78a000)
	libffi.so.8 => /usr/lib/x86_64-linux-gnu/libffi.so.8 (0x00007f61234af000)
	libv4lconvert.so.0 => /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0 (0x00007f611e6fb000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f6125cc1000)
	libdl.so.2 => /usr/lib/x86_64-linux-gnu/libdl.so.2 (0x00007f61234a8000)
	libpthread.so.0 => /usr/lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6123068000)
	librt.so.1 => /usr/lib/x86_64-linux-gnu/librt.so.1 (0x00007f6123063000)
	liblzma.so.5 => /usr/lib/x86_64-linux-gnu/liblzma.so.5 (0x00007f61213d5000)
	libelf.so.1 => /usr/lib/x86_64-linux-gnu/libelf.so.1 (0x00007f61213b7000)
	libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x00007f612139b000)
	libbz2.so.1.0 => /usr/lib/x86_64-linux-gnu/libbz2.so.1.0 (0x00007f6120f68000)
deepstream_user@75c1bf5e33f3:/app$ 

Ok, how did you solve it? I am facing this issue within a docker container only, when i run this normally everything works fine. How you resolved the issue?

Re-encoding the video with ffmpeg and removing the audio stream when inputting from the camera can solve the problem.

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