参考deepstreamer-rtsp-in-rtsp-out的python程序将多个rtsp源拼在一起输出,以下是关于元素设置的部分代码
uri_decode_bins = []
for i in range(len(sourceUrls)):
sourceUrl = sourceUrls[i]
if sourceUrl is None:
continue
if sourceUrl.find("rtsp://") == 0:
is_live = True
source_bin, uri_decode_bin = create_source_bin(i, Gst, sourceUrl, None)
uri_decode_bins.append(uri_decode_bin)
if not source_bin:
sys.stderr.write("Unable to create source bin \n")
self.pipeline.add(source_bin)
padname = "sink_%u" % i
sinkpad = streammux.request_pad_simple(padname)
if not sinkpad:
sys.stderr.write("Unable to create sink pad bin \n")
srcpad = source_bin.get_static_pad("src")
if not srcpad:
sys.stderr.write("Unable to create src pad bin \n")
srcpad.link(sinkpad)
queue1 = Gst.ElementFactory.make("queue", "queue1")
queue2 = Gst.ElementFactory.make("queue", "queue2")
queue3 = Gst.ElementFactory.make("queue", "queue3")
queue4 = Gst.ElementFactory.make("queue", "queue4")
caps1 = Gst.Caps.from_string("video/x-raw(memory:NVMM), format=RGBA")
filter1 = Gst.ElementFactory.make("capsfilter", "filter1")
tilterRowNum = int((number_sources-1)/2)+1
tilterColNum = 2
if number_sources > 1:
tiler = Gst.ElementFactory.make("nvmultistreamtiler", "nvtiler")
self.pipeline.add(tiler)
nvvidconv = Gst.ElementFactory.make("nvvideoconvert", "convertor")
nvvidconv1 = Gst.ElementFactory.make("nvvideoconvert", "convertor1")
videoconvert = Gst.ElementFactory.make("videoconvert", "videoconvert")
#sink = Gst.ElementFactory.make("nv3dsink", "nv3d-sink")
sink = Gst.ElementFactory.make("glimagesink", "sink")
我想将其输出到pyqt6的一个可视化窗口上,使用 glimagesink设置窗口句柄set_window_handle会提示“GstGLImageSinkBin object has no attribute set_window_handle”。
请问这是否是和输入的源的格式有关?该如何更改或者如何实现将多个rtsp流输出到pyqt6的窗口中?谢谢!