Sometime jumping index order frames after nvstreamdemux plugin

I run deepstream app with input multiple streams and output split multiple sinks for each streams (multifilesink). The problem is that sometime frame of stream 2 place over stream 1 but still keep objects was draw of stream 1 on it. With deepstream version 4 everything is ok, but after deepstream 5 release and I move project on then the problem above happen, and I assume nvstreamdemux plugin maybe have some change, isnt’t it?. Please check.

Please provide complete information as applicable to your setup.

• Hardware Platform (GPU)
• DeepStream Version: 5.0
• TensorRT Version 7
• NVIDIA GPU Driver Version (440.100)

Are you using deepstream-app? If it is, can you provide your configuration file?

Hello @Fiona.Chen, I start with custom app quite complexity but it’s base on deepstream-app.

I found some similar topic issue. That have this simple pipeline to check:

source_1 ~~~>                               ~~~> sink_1
            \                              /
             nvstreammux ~~~> nvstreamdemux
            /                              \
source_2 ~~~>                               ~~~> sink_2

Link topic:

and

Both of them still have no solutions now.

Some are caused by wrong configurations. Can you give us your configuration? From your description, we can not get any useful information to reproduce the problem.

Hi there, my configuration below.

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=60
#1 file, 2 api
read-source-type=1
#only one type read source 2

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=2
uri=file://videos/src_1.mp4
num-sources=1
gpu-id=1
cudadec-memtype=0
# 0x4 for TCP and 0x7 for All (UDP/UDP-MCAST/TCP)
#intra-decode-enable=1

[sink0]
enable=1
gpu-id=1
#1=mp4 2=mkv
container=1
type=3
type=7
codec=4
output-file=images_cpu_1/image_%d.jpeg
source-id=0

[source1]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI 4=RTSP
type=2
uri=file://videos/src_2.mp4
num-sources=1
gpu-id=1
cudadec-memtype=0
# 0x4 for TCP and 0x7 for All (UDP/UDP-MCAST/TCP)
#intra-decode-enable=1

[sink1]
enable=1
gpu-id=1
#1=mp4 2=mkv
container=1
type=3
type=7
codec=4
output-file=images_cpu_2/image_%d.jpeg
source-id=1 #IMPORTANT-> this was change but the issuse still have

[osd]
enable=1
gpu-id=1
border-width=3
text-size=12
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;0.7
font=Serif
nvbuf-memory-type=0
process-mode=1
width-scale=1920
height-scale=1080

[streammux]
gpu-id=1
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=1
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed = 1000/FPS
batched-push-timeout=150000
## Set muxer output width and height 1920 x 1080 | 1280 x 720 | 960 x 640 | 640 x 360
width=1920
height=1080
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0

[primary-gie]
enable=1
gpu-id=1
config-file=models/ssd_cpu/traffic_conf.txt
batch-size=32
interval=0
gie-unique-id=1
nvbuf-memory-type=0
#enable-dbscan=1

[tracker]
enable=1
tracker-width=640
tracker-height=368
ll-lib-file=/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_mot_klt.so
ll-config-file=tracker_config.yml
gpu-id=1
#enable-batch-process applicable to DCF only
enable-batch-process=1

The two sinks use the same “source_id”.
For DeepSteam5.0 GA, the parameter should be “source-id” but not “source_id”.
If you want to output different stream to different sink, you need to identify the correct "“source-id”
Please refer to the sample config files. https://docs.nvidia.com/metropolis/deepstream/dev-guide/index.html#page/DeepStream_Development_Guide/deepstream_Sample_configs_and_Streams.html#

It is better to config deepstream-app correctly first and then add your own custom codes

Oh, sorry I was edit copy from source_0 sink_0 to source_1 sink_1. I will change " “source-id” following your instrument. but please understand that my custom app sink file normally following correctly source-id. At begin start app, frame output it right corresponding but after a few time. The frame from two source switch to each other. With the same app run on DS4 is fine but change to DS5 that happend. That why have the two post have the same issue like me. The point is that stand on nvstreammux and nvsteamdemux have update in new DS5.

That is the reason we want you to start with deepstream-app first. If the problem can be reproduced with deepstream-app, it will be clear for us to look into the problem. Are you using latest DS5.0 GA version? We are interested in how to reproduce the problem.

1 Like

OK! please waiting for several time, I will reproduced with deepstream-app. If have any information. I will respond to you later. I’m using DS5.0 GA from 4/8/2020 release date.

This has been treated with the highest priority and we are working to fix the issue and will release a patch either on the forum. Will notify on the forum, once the issue is fixed.

1 Like

The DeepStream 5.0.1 SDK has been released to fix the NvStreamDeMux issue mentioned in the topics

1 Like