Please provide complete information as applicable to your setup.
• Hardware Platform (GPU)
• DeepStream Version 7.0
• TensorRT Version 8.6.1
• NVIDIA GPU Driver Version (535)
I was using nvstreamdemux to get multiple rtsp out for all my sources. But I saw that without nvstreamdemux I was getting a perf value close to 18*14 (18FPS for 14 sources), but when I added nvstreamdemux, it got down to 6*14 (6FPS for 14 sources). Is this the expected behaviour?
sample code:
streammux.link(queue1)
queue1.link(pgie)
pgie.link(queue2)
queue2.link(tracker)
tracker.link(queue3)
queue3.link(sgie1)
sgie1.link(queue4)
queue4.link(sgie2)
sgie2.link(queue5)
queue5.link(sgie3)
sgie3.link(queue6)
queue6.link(nvanalytics)
nvanalytics.link(queue7)
queue7.link(nvstreamdemux)
for i in range(number_sources):
# tiler = make_element("nvmultistreamtiler", i)
# tiler_rows=int(math.sqrt(number_sources))
# tiler_columns=int(math.ceil((1.0*number_sources)/tiler_rows))
# tiler.set_property("rows",tiler_rows)
# tiler.set_property("columns",tiler_columns)
# tiler.set_property("width", TILED_OUTPUT_WIDTH)
# tiler.set_property("height", TILED_OUTPUT_HEIGHT)
# pipeline.add(tiler)
nvvidconv = make_element("nvvideoconvert", i)
pipeline.add(nvvidconv)
nvosd = make_element("nvdsosd", i)
nvosd.set_property('process-mode',OSD_PROCESS_MODE)
nvosd.set_property('display-text',OSD_DISPLAY_TEXT)
pipeline.add(nvosd)
nvvidconv_postosd = make_element("nvvideoconvert", i+number_sources)
pipeline.add(nvvidconv_postosd)
encoder = make_element("nvv4l2h264enc", i)
encoder.set_property("tuning-info-id",1)
pipeline.add(encoder)
sink = make_element("rtspclientsink", i)
sink.set_property("location",f"rtsp://0.0.0.0:8554/ds-test-{i}")
sink.set_property("latency", 0)
sink.set_property("protocols",GstRtsp.RTSPLowerTrans.TCP)
pipeline.add(sink)
queue = make_element("queue", i)
pipeline.add(queue)
padname = "src_%u" % i
demuxsrcpad = nvstreamdemux.request_pad_simple(padname)
if not demuxsrcpad:
sys.stderr.write("Unable to create demux src pad \n")
queuesinkpad = queue.get_static_pad("sink")
if not queuesinkpad:
sys.stderr.write("Unable to create queue sink pad \n")
demuxsrcpad.link(queuesinkpad)
# queue.link(tiler)
queue.link(nvvidconv)
nvvidconv.link(nvosd)
nvosd.link(nvvidconv_postosd)
nvvidconv_postosd.link(encoder)
encoder.link(sink)
Also, is how can I implement the same, but instead of having 1 rtsp out for each source, how can I have a total of 2 rtsp out(7 and 7 for 14 sources) with nvmultistreamtiler?