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

1 Like

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)

Have reproed your issue, will update to you once have progress.

Hi,
Please try with attached config, issue gone with this config.

source1_usb_dec_infer_resnet_int8.txt (2.9 KB)

Hi,
All cames from videotestsrc pattern 1 except the first few frames.
But if change all the batch-size to 1, or the batched-push-timeout to 10000 (maybe need to change all to container to 2 to fix an error “ERROR from sink_sub_bin_mux3: Could not multiplex stream.”), there’s a few frames from videotestsrc pattern 1 every once in a while .

Please see inline. seems we still have some difference. please specify detaied.

Hi,amycao.
We had found the same problem on the nano, TX2, Xavier NX.
All the devices are flashed by JP4.4 and run on our own custom board

the sources , videos and executable program compiled on TX2 attached.
deepstream-5.0.tar.gz (2.6 MB)

640ef7aab8a8425cd999ac08de8315b0.mp4.cpp (838.2 KB)

deepstream-app.tar.gz (220 KB)

the test command is :
./deepstream-app -c …/…/…/…/samples/configs/deepstream-app/source1_usb_dec_infer_resnet_int8_2.txt
./deepstream-app -c …/…/…/…/samples/configs/deepstream-app/source1_usb_dec_infer_resnet_int8_1.txt

1 Like

I face this issue too, anyone have new update?

Link issue to two post similar.

and

HI,
I can repro your issue using the config source1_usb_dec_infer_resnet_int8_2.txt in your package deepstream-5.0.tar.gz
but after comment out sink0 group, change sink1 to sink0 and sink2 to sink1,
the issue will gone. you can use attached config to give a try.

source1_usb_dec_infer_resnet_int8.txt (3.0 KB)

Hi,amycao.
It’s just a test to repro the issue. And comment the sink which use the nvoverlaysink don’t work in our formal projects.

Hi
Since I can not repro your issue using your provided test code and config modified, it’s hart to tell why it’s not working in your formal project, you need to debug first to narrow down the issue, if related with nvidia, we will look into it.