Python deepstream-imagedata-multistream - cropping rtsp source

• Hardware Platform (Jetson / GPU)
Nvidia RTX A2000
• DeepStream Version
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only)


I have some question about cropping source frames by using src-crop in nvvideoconvert.

I was testing a few sources - usb, rtsp and file.
For usb - no problems, cropping source frames works great.
In the rtsp and file case - nvvideoconvert props are set, I can see it in my pipeline.png.
Stream is working the frames are not cropped.

I have found many topicks about the problem but did not find any solution.

The easiest way to reproduce the issue is to run deepstream-imagedata-multistream and just add the line:

nvvidconv1.set_properties(“src-crop”, “0:0:320:300”)

and as input run any file from deepstream example streams.

So is it possible to crop rtsp/file source by using nvvideoconvert?


Is your crop happening before nvstreammux? And have you updated the width and height properties of streammux as well?


No, but for usb source I did not have to do this, so I think it’s not necessary

I have also tested the rtspsrc in GstBin - this configuration is working.
The problem occurs when I’m using uridecodebin - but only if the converting process is realized in GstBin.

Why I need it inside?
Cause if I will have 2 different sources - I want to crop it different way.

So the structure should be like below:

Gstbin_1 (uridecodebin → videoconvert ->nvvideoconvert (src-crop: 0:0:200:200)-> scaling →
Gstbin_2 (uridecodebin → videoconvert ->nvvideoconvert (src-crop: 0:0:300:300))-> scaling →

and after scaling just ->streammux-> inference → …

I see. Is it possible to attach your pipeline graph?
You may follow this to generate the graph image of your pipeline GStreamer Pipeline Diagram | GStreamer Pipeline Editor | RidgeRun

Sure, I have already generated the pipeline graph, to see whats inside:

All right, I have found the solution for the problem.
Dont know why but using Gst.Bin as sink to the streammux does not work.

Finally I have append the uridecodebin inside Gst.Bin, converters and caps filter for every stream are outside of GstBin.
You can take a look at the pipeline and see the differencess between the first pipeline I have added.

The above pipeline is also solution for the problem what I mentioned in the topic:
deepcopy problem

So the question is why the GstBin is not working as expected?
What did I do wrong?