You need to use the same pipeline as in imagedata-multistream after pgie.
Element initialisations and pipeline should be as follows:
nvvidconv1 = Gst.ElementFactory.make("nvvideoconvert", "convertor1")
if not nvvidconv1:
sys.stderr.write(" Unable to create nvvidconv1 \n")
print("Creating filter1 \n ")
caps1 = Gst.Caps.from_string("video/x-raw(memory:NVMM), format=RGBA")
filter1 = Gst.ElementFactory.make("capsfilter", "filter1")
if not filter1:
sys.stderr.write(" Unable to get the caps filter1 \n")
filter1.set_property("caps", caps1)
streammux.link(queue1)
queue1.link(pgie)
pgie.link(queue2)
queue2.link(nvvidconv1)
nvvidconv1.link(queue3)
queue3.link(filter1)
filter1.link(queue4)
queue4.link(tiler)
tiler.link(queue5)
queue5.link(nvvidconv)
nvvidconv.link(queue6)
queue6.link(nvosd)
if is_aarch64():
nvosd.link(queue7)
queue7.link(transform)
transform.link(sink)
else:
nvosd.link(queue7)
queue7.link(sink)
These have been taken from image-multidata test app.
You can directly link queue1 to nvvidconv1 if pgie is not used. no need to add to queue2 and then queue2 to the rest of the elements.
Note that nvvidconv and nvvidconv1 are different.
Do not forget to initialise the extra queues and add nvvidconv1 and filter1 to the pipeline