Create multiple windows with the Gst-nvmultistreamtiler plugin

Good day, I am creating a program that will eventually process approximately a hundred streams simultaneously. The problem is that the nvmultistreamtiler plugin only combines all the streams into one window, which works well if there is a small number of streams, but if a hundred streams are streamed then the frames itself becomes too small to see or to make out what is going on in the stream. Is it possible to configure the nvmultistreamtiler plugin to create multiple windows, where each windows will contain - for example - 20 stream per window? If it is not possible to do this with the nvmultistreamtiler plugin, is there another plugin or method that I can use to achieve my desired goal?

Thank you very much in advance!

You can use nvstreamdemux to parse the streams apart after inferencing and use multiple nvstreammux to reorganize the streams again.


Do I have to re-create the source bins when I reorganize the streams again-similar to when I initially used the nvstreammux element? And is there a sample program that uses this element so that I can see an example of how to use this plugin?

The graph I posted is a pipeline. There is no sample code for such pipeline. Please refer to the deepstream-app source code for how to use the DeepStream elements.

To make things simple, you can also construct the pipeline directly.

No. You just need to connect the correct pads. Please refer to the DeepStream sample apps for how to connect nvstreammux or nvstreamdemux pads.

Awesome! Thank you for the help. I got it working, but it seems that the program is much more processing intensive if the streams are streamed to multiple windows. Is it more processing-intensive for 10 streams to be displayed on 2 windows, compared to displaying all of them on one window? I’ve noticed that the GPU gets over-utilized and crashes if multiple windows are created…

I also want to know if it is possible to create a new window in real-time. I want to add a feature where new streams can be added in real-time. If there are for example 10 streams currently, while only 5 streams are allowed per window (thus two windows were created during the construction of the pipeline). Now if the pipeline is already running, and I add one more stream, then another window will have to be created while the pipeline is running to account for the new stream. I assume it would be possible to do so if I pause the pipeline, rebuild it then run the pipeline, but it is possible to do so in real time without having to stop the pipeline?

Yes. The more branches and windows, the more GPU processing.

Your requirement is to add new source and new sink(including some other necessary elements), the pipeline needs to be stopped to do it.

Okay thank you for the reply, but just to make sure: Can a new window not be added through a sub process or a nvidia equivalent to a sub process?

If you create new pipeline for new sources and new windows, it can.

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