Nvidia Gstreamer plugins (nvenc, nvdec) decode H265 video error

Hi everyone,
I installed Nvidia Gstreamer plugins in my docker as the link:
[1] Link
[2] Link

  1. With H264 video, it is OK, my pipeline gst-launch-1.0 filesrc location=h264_video.mp4! qtdemux ! h264parse ! nvdec ! fpsdisplaysink
  2. With H265 video, my pipeline gst-launch-1.0 filesrc location=h265_video.mp4 ! qtdemux ! h265parse ! nvdec ! fpsdisplaysink , then it is NOTOK. I get the error:
0:00:00.235014522   439 0x55a8dad47f70 ERROR                  nvdec gstnvdec.c:329:parser_sequence_callback:<nvdec0> failed to create decoder
0:00:00.235029386   439 0x55a8dad47f70 ERROR                  nvdec gstnvdec.c:671:handle_pending_frames:<nvdec0> no decoder

I don’t know to solve it. Please help me. Thanks!

they are not nvdec, nvenc (where do you get them?), they are nvv4l2decoder , nvv4l2h264enc , nvv4l2h265enc

please refer to https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_FAQ.html?highlight=faq#how-can-i-construct-the-deepstream-gstreamer-pipeline

Hi @mchi , my PC is

  • NVIDIA Driver 470.86
  • CUDA version V10.0.130
  • GEFORCE RTX 2080 Ti

I refer by the link https://developer.nvidia.com/nvidia-video-codec-sdk/download

I do not use DeepStream. Thanks!

I can’t find where in the doc mentions nvdec and nvenc GStreamer plugin, can you please be more specific?

Hi @mchi ,
Currently, I am trying and checking performance of different decoding (avdec_h264 (CPU), nvdec(GPU)).
I searched the link NVIDIA VIDEO Codec SDK.

My enviroment:

  • NVIDIA Driver 470.86
  • CUDA version V10.0.130
  • GEFORCE RTX 2080 Ti
  • Gstreamer 1.14.5
  • Ubuntu 18.04.4 LTS

Install

  • Download Video Codec SDK in LINK
  • Extract file and move Interfaces and Libs to /usr/local/cuda
  • Build nvenc, nvdec gstreamer plugins:
$ git clone git://anongit.freedesktop.org/git/gstreamer/gst-plugins-bad
$ cd gst-plugins-bad
$ git checkout 1.14.5
$ cp /usr/local/cuda/include/cuda.h sys/nvenc
$ cp path/to/video/codec/sdk/Interface/nvEncodeAPI.h sys/nvenc
$ cp path/to/video/codec/sdk/Interface/cuviddec.h sys/nvenc
$ cp path/to/video/codec/sdk/Interface/nvcuvid.h sys/nvdec
$ NVENCODE_CFLAGS="-I/path/to/gst-plugins-bad/sys/nvenc" ./autogen.sh --with-cuda-prefix="/usr/local/cuda" --disable-gtk-doc
$ cd sys/nvenc
$ make && make install
$ cd sys/nvdec
$ make && make install

Check installation

$ gst-inspect-1.0 | grep nvenc
nvenc:  nvh264enc: NVENC H.264 Video Encoder
$ gst-inspect-1.0 | grep nvdec
nvdec:  nvdec: NVDEC video decoder

Last, i check performance with H264 video and H265 video as first post. But it is error with H265 video.

Can you check it for me? Thanks!

Hi @mchi ,
I found the document that describe to Video Encode and Decode GPU Support Matrix (LINK).
I see GeForce RTX 2080 Ti which support to decode H265 video.
How can I install NVDEC and NVENC in the GSTREAMER on Ubuntu?

Hi @dotrunganht ,
Can you use nvv4l2decoder , nvv4l2h264enc , nvv4l2h265enc with DeepSream installed ?

Hi @mchi ,
DeepStream do not support my GPU platform (GEFORCE RTX 2080 Ti) LINK

Thanks!

It’s the same GPU arch as T4, so it’s supported by DeepStream.

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