Nvidia to standard gstreamer buffer issue

dGPU version
Deepstream 5.1
Nvidia Quatro RTX 6000
CUDA 11.3
Driver version 465.19.01
TensorRT 8.0


I am trying to build a pipeline based on the examples given in the SDK.
Actually, I am able to perform inference on a v4l2 stream and export it as jpeg frames + json (multifilesink / nvmsgbroker) while displaying it on my screen (using nvosd).
I would now like to replace the nvosd thread with an UDP stream.

The main issue is that I cannot manage to convert the Nvidia stream (NVMM, batched) to a standard one and thus convert it to h.264 (using x264enc) before using it into an udpsink.
You will find the GST debug pipeline attached to this post, from which I removed the frames and json export, to focus only on the x264 → udpsink issue.
You will also find the whole GST logs with GST_DEBUG=5.

gst_log.txt (7.9 MB)

My hint is that the demuxer is supposed to output a non-batched stream, but the graph and logs say otherwise, so I do not understand where the issue is…

videoencoder gstvideoencoder.c:678:gst_video_encoder_setcaps:<x264enc> rejected caps video/x-raw, framerate=(fraction)5/1, width=(int)1280, height=(int)720, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)NV12

Thanks for your help !

There is hardware encoder in deepstream which can encode Nvidia stream into h264 stream. Gst-nvvideo4linux2 — DeepStream 5.1 Release documentation

Thanks for your reply !

I tried adding a nvv4l2h264enc but I won’t work even tough I input the proper stream format (x-video(NWMM) with I420 format on dGPU)

basetransform gstbasetransform.c:1355:gst_base_transform_setcaps:<RAWtoNVMM> transform could not transform video/x-raw, framerate=(fraction)30/1, width=(int)1280, height=(int)720, batch-size=(int)1, num-surfaces-per-frame=(int)1, format=(string)I420 in anything we support

gst_log.txt (9.7 MB)

Any idea why ?

Why do you use “autovideosink” to handle encoded h264 video? It is wrong. autovideosink (gstreamer.freedesktop.org)

Please make sure you are familiar with gstreamer basic knowledge and coding skills before you start with deepstream. GStreamer: open source multimedia framework

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