Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU) Jetson Xavier AGX
• DeepStream Version 6.0.1
• JetPack Version (valid for Jetson only) 4.6
• TensorRT Version 8.2.1
Hi there,
I have n RTSP sources that are processed by Deepstream pipeline and produce another n RTSP streams (and it works fine) just like the following schema:
2 RTSP streams … → streammux → pgie → tracker → streamdemux → … perform stuff to create 2 RTSP streams
Now I need to get the output of the tracker, fork it and send it to another branch where I will create another RTSP stream, just like the following:
2 RTSP streams … → streammux → pgie → tracker:
→ streamdemux → … perform stuff to create 2 RTSP streams
→ nvvidconv → tiler … perform other stuff to create another RTSP stream
This is the code:
print("Linking elements in the Pipeline")
streammux.link(pgie)
pgie.link(tracker)
#Fork into several branches, as much as the number of stream in my batch
tracker.link(streamdemux)
for i in range(number_sources):
print("demux source", i, "\n")
srcpad1 = streamdemux.get_request_pad("src_%u"%i)
if not srcpad1:
sys.stderr.write(" Unable to get the src pad of streamdemux \n")
sinkpad1 = nvvidconv[i].get_static_pad("sink")
if not sinkpad1:
sys.stderr.write(" Unable to get sink pad of nvvidconv \n")
srcpad1.link(sinkpad1)
nvvidconv[i].link(nvosd[i])
nvosd[i].link(nvvidconv_postosd[i])
nvvidconv_postosd[i].link(caps[i])
caps[i].link(encoder[i])
encoder[i].link(rtppay[i])
rtppay[i].link(sink[i])
#Fork for the tiler branch
tracker.link(nvvidconv4tile)
nvvidconv4tile.link(tiler)
tiler.link(nvosd4tile)
nvosd4tile.link(nvvidconv_postosd4tile)
nvvidconv_postosd4tile.link(caps4tile)
caps4tile.link(encoder4tile)
encoder4tile.link(rtppay4tile)
rtppay4tile.link(sink4tile)
The issue is: when a do a second link ( “tracker.link(nvvidconv4tile)” ) it returns False, GST_PAD_LINK_WAS_LINKED. So I guess I can’t do tracker.link(blablabla) and then another tracket.link(bububu). How do I link such branch?