Gstreamer如何将多个rtsp流输出到pyqt的窗口中

参考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的窗口中?谢谢!

Hi,
We don’t have much experience about using glimagesink. Would see if other users can share experience. You can try the pipeline in gst-launch-1.0 command to make sure it is working first. And then apply to the code.

OK,thanks!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.