Multi source issue : deepstream-app running forever but no frame processed on 2 sources

Hello,
I’m running the deepstream-app on an mp4 file and it works fine with one source. However whenI define a second source with a different mp4 file this is the output I get and the app seems to run forever

**PERF: FPS 0 (Avg) FPS 1 (Avg)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)
**PERF: 0.00 (0.00) 0.00 (0.00)

I have followed the instructions to run deepstream with multiple sources so I’m not quite sure what is going on. Has someone had this kind of problem ? Any help much appreciated.
Many thanks,
Stephane

Below is my config file

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=1
rows=2
columns=2
width=1280
height=720
gpu-id=0
nvbuf-memory-type=0

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=2
uri=file:///dfs/video/take37/camera15/2018-10-04-00000-00130.mp4
num-sources=1
cudadec-memtype=0
gpu-id=0

[source1]
enable=1
type=2
uri=file:///dfs/video/take37/camera16/2018-10-04-00000-00130.mp4
num-sources=1
#drop-frame-interval=2
gpu-id=0

(0): memtype_device - Memory type Device

(1): memtype_pinned - Memory type Host Pinned

(2): memtype_unified - Memory type Unified

cudadec-memtype=0

[sink0]
enable=1
#Type - 1=FakeSink 2=EglSink 3=File
type=3
container=1
codec=3
sync=0
source-id=0
gpu-id=0
nvbuf-memory-type=0
output-file=/dfs/output/td_stream_output_test2.mp4
source-id=0

[sink1]
enable=0
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4

only SW mpeg4 is supported right now.

codec=3
sync=0
#iframeinterval=10
bitrate=2000000
output-file=/dfs/output/td_stream_output_test.mp4
source-id=1

[sink2]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming
type=4
#1=h264 2=h265
codec=1
sync=0
#iframeinterval=10
bitrate=400000

set below properties in case of RTSPStreaming

rtsp-port=8554
udp-port=5400

[osd]
enable=0
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.0;0.0;0.0;1
font=Arial
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
nvbuf-memory-type=0

[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=2
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=0

Set muxer output width and height

width=1280
height=720
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
nvbuf-memory-type=0
config-file=config_mux_source4.txt
gpu-id=0

config-file property is mandatory for any gie section.

Other properties are optional and if set will override the properties set in

the infer config file.

[primary-gie]
enable=1
gpu-id=0
model-engine-file=…/…/models/Primary_Detector/resnet10.caffemodel_b4_int8.engine
labelfile-path=…/…/models/Primary_Detector/labels.txt
batch-size=1
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=0
gie-unique-id=1
nvbuf-memory-type=0
config-file=config_infer_primary.txt

[tracker]
enable=1
tracker-width=600
tracker-height=300
#ll-lib-file=/usr/local/deepstream/libnvds_mot_iou.so
ll-lib-file=/usr/local/deepstream/libnvds_mot_klt.so
#ll-config-file required for IOU only
#ll-config-file=iou_config.txt
gpu-id=0

[secondary-gie0]
enable=0
model-engine-file=…/…/models/Secondary_VehicleTypes/resnet18.caffemodel_b16_int8.engine
labelfile-path=…/…/models/Secondary_VehicleTypes/labels.txt
gpu-id=0
batch-size=2
gie-unique-id=4
operate-on-gie-id=1
operate-on-class-ids=0;
config-file=config_infer_secondary_vehicletypes.txt

[secondary-gie1]
enable=1
model-engine-file=…/…/models/Secondary_CarColor/resnet18.caffemodel_b16_int8.engine
labelfile-path=…/…/models/Secondary_CarColor/labels.txt
batch-size=2
gpu-id=0
gie-unique-id=5
operate-on-gie-id=1
operate-on-class-ids=0;
config-file=config_infer_secondary_carcolor.txt

[tests]
file-loop=0

Can someone help with this ?

We have “source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt”, can it work ? You can change the source file to be your source.

Thanks for helping.
My config file is actually a modified version of ‘source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt’
This config runs with num-sources=4 and uri=file://…/…/streams/sample_720p.mp4 which means if I understand correctly that it’s only running with one file.
What I’m trying to do is to add a second file and that’s when things start to go wrong.
Do you have an example of config where you process two mp4 type files of different names ?

So it seems to run fine when I enter the same uri for source0 and source1 but if I give it two different file names I get the behavior described above.
Is there a convention for the file names for multiple sources ? All I have seen in the DS 3.0 documentation is

URI of the encoded stream. May be a file, an HTTP URI, or an RTSP live source. Valid when type = 2 or 3. If type=3, uri may be specified several times to define several sources. Alternatively, num-sources may be used to generate several sources’ URIs from a single value of the uri property.
String

It’s not clear if multiple file names is acceptable…

multiple file names is acceptable. You need to create more source like [source0] [source1] [source2]…
You can refer to source30_1080p_dec_infer-resnet_tiled_display_int8.txt