Can the demux plugin retrieve data from a specified source in the streammux plugin?

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) GPU
• DeepStream Version 6.2
• JetPack Version (valid for Jetson only)
• TensorRT Version 8.5.3.1
• NVIDIA GPU Driver Version (valid for GPU only) 535
• Issue Type( questions, new requirements, bugs)
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

Hi,I am using nvstreammux to mix streams, with “fakesink” plugin as the sink. Sometimes during runtime, I need to view the detection results of a specific stream (RTSP). How can I achieve this? Can I use the tee plugin to split a copy after the nvstreammux plugin, then use the demux plugin to separate the stream from the specified source, and finally connect it to the RTSP sink plugin?
Can the demux plugin separate only the specified source stream from the streams mixed by the nvstreammux plugin? For example, if there are three sources (source0, source1, source2), can I separate only the stream from source1 and leave the others intact?
Or are there other ways to achieve this?

Hi.Are there any examples I can refer to?

There is currently no examples of this scenario. But you may achieve this through the following method: dynamically switching the src_pad of the nvstreamdemux. Since there is no examples now, you need to implement yourself at present.

Thanks.Does the demux now support obtaining new sources at runtime? I previously attempted to obtain new sources at runtime, but it failed.

You can try that with our latest version : DeepStream 6.4.

Hello, I am using the new streammux in deepstream 6.3, which supports dynamically adding and removing src pads. However, each time a new source is added, the original streams experience lag. Subsequently, the original stream does not speed up to synchronize with the original timing, resulting in inconsistencies when pulling the same stream multiple times. Have you encountered this issue before?

You mean add the same stream multiple times and the final display is not synchronized, is that right? Could you attach your simple demo so that we can reproduce that on our side?

I made changes based on “runtime_source_add_delete” by removing the tiler plugin and adding the demux plugin after sgie3. I have also added source input corresponding to adding sink output. I have removed the original code and I’m now trying a different approach.

gst-launch-1.0 -e nvstreammux name=mux batch-size=2 width=1920 height=1080 ! nvinfer config-file-path=/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_infer_primary.txt batch-size=2 ! queue ! nvvideoconvert ! queue ! nvdsosd ! tee name=t t. ! queue ! fakesink  t. ! nvstreamdemux name=demux filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_qHD.h264 ! h264parse ! nvv4l2decoder ! queue ! mux.sink_0 filesrc location=/opt/nvidia/deepstream/deepstream/samples/streams/sample_720p.h264 ! h264parse ! nvv4l2decoder ! queue ! mux.sink_1 demux.src_0 ! queue ! nveglglessink

It can run, but the boxes displayed on the OSD seem to be abnormal.

It is normal for this pipeline to be out of sync. Reading local files from multiple sources may be out of sync.
If you want more control over the sync, you can consider using new nvstreammux. This plugin has more precise control over the batch, Gst-nvstreammux config-file properties.

Thank you for your response.Do you have any examples of new nvstreammux, including the new configuration file for nvstreammux? I would like to use them to test the performance.

You can refer to this FAQ. Also we have the config files in our open source code, samples\configs\deepstream-app\config_mux_source4.txt.

Thank you for your response. I will test according to the method mentioned above.

Hello, I tested the code from the link you provided, deepstream_test_rc_src_add_del.c in the deepstream 6.3 environment. It shows that nvstreammux does not have property such as “batched-push-timeout”, “gpu-id”, “live-source”, and “width”. Although the example can run, I would like to know if this will have any impact, or if there are new examples of streammux suitable for the deepstream 6.3 environment.

When I use gst-inspect to check the properties, it is true that the mentioned properties do not exist. Upon checking the documentation, they are indeed not there. I would like to ask, in the absence of “gpu-id”, how should we select on which GPU a new streammux should run?

There are few different parameters for new nvstreammux, you can refer to the Gst-nvstreammux differences from default nvstreammux.

Thank you for your response, I got it.

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