Why I can find the video frames in the sink0 from src1 while should output to sink1 by the nvstreamdemux

Hi,all.
On the Xavier, JP4.4, DS5.0.

I had 2 sources,and 2 sinks, linked by nvstreammux and nvstreamdemux,.
On the sink0 linked by demux.src0 I always could found video frames cames from mux.sink1, why ?

It can be hit by the pipeline as bellow in probability.

gst-launch-1.0
nvstreammux name=streammux width=1920 height=1080 batch-size=1 live-source=1 batched-push-timeout=40000
nvstreamdemux name=streamdemux
streammux. ! queue ! streamdemux.
videotestsrc pattern=0 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_0
videotestsrc pattern=1 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_1
streamdemux.src_0 ! queue ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=I420” ! nvoverlaysink sync=false
streamdemux.src_1 ! queue ! fakesink sync=false

gst-launch-1.0
nvstreammux name=streammux width=1920 height=1080 batch-size=1 live-source=1 batched-push-timeout=0
nvstreamdemux name=streamdemux
streammux. ! queue ! streamdemux.
videotestsrc pattern=0 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_0
videotestsrc pattern=1 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_1
streamdemux.src_0 ! queue ! nvoverlaysink sync=false
streamdemux.src_1 ! queue ! fakesink sync=false

Hi
Please change batch-size=1 in streammux to 2.

Hi,amycao.
It’s not working, just the same.

Here is the command used, it’s working on my side.
gst-launch-1.0 nvstreammux name=streammux width=1920 height=1080 batch-size=2 live-source=1 batched-push-timeout=40000 nvstreamdemux name=streamdemux streammux. ! queue ! streamdemux. videotestsrc pattern=0 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_0 videotestsrc pattern=1 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_1 streamdemux.src_0 ! queue ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=I420” ! nvegltransform ! nveglglessink sync=false streamdemux.src_1 ! queue ! fakesink sync=false

133a22ff6857665a.zip (291.8 KB)

Hi, amycao.
The same command do not work on my side.
I can still find frames from sink_1, at the first few frames when the command is started.

by the way, How to upload compressed file or video file.

you can compress it into zip extension file, and size limited to 4MB, I remembered. you can cut the clip which have the issue from original video.

Hi, amycao.
the compressed file can’t be upload.
1B1

Oh, then you could add extension which supported after the file name.

Hi,amycao.
Here is the command used, I found frames from sink_1, at the first few frames when the command is started.

gst-launch-1.0 nvstreammux name=streammux width=1920 height=1080 batch-size=2 live-source=1 batched-push-timeout=40000 nvstreamdemux name=streamdemux streammux. ! queue ! streamdemux. videotestsrc pattern=0 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_0 videotestsrc pattern=1 ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=NV12” ! streammux.sink_1 streamdemux.src_0 ! queue ! nvvideoconvert ! “video/x-raw(memory:NVMM),format=I420” ! nvegltransform ! nveglglessink sync=false streamdemux.src_1 ! queue ! fakesink sync=false

test.mp4.cpp (670.8 KB)

Hi
I extract the mp4 file into a series of frames, as attached as pics.zip, except the first 5 frames, should be your working server screen, after these frames, until the final frame OTxxx_0000000014.jpg, it all from videotestsrc pattern 0. please let me know where your issue lies.

pics.zip (1.0 MB)

Hi,amycao.
The pipeline is just for test.
In the pipeline we used the issue can be hit at all time.
Maybe the patch can hit the issue better. It’s based on deepstream_sdk_v5.0.0_jetson.tbz2.
deepstream-5.0.patch.cpp (6.4 KB)
0.00.00.283240361-ds-app-playing.dot.cpp (76.4 KB)