我是Gstreamer的新手,正在尝试找到一种有效的方法来同时执行两个rtsp流。我目前的操作方式是在Python脚本中定义两个单独的管道,然后通过cv2.VideoCapture()运行它们。当我运行单个管道时,一切正常,但是当两个管道在运行时,我会忍受几秒钟的延迟,这是我无法忍受的。我知道必须有一种更有效的方法来完成这项工作,如果有人帮助我,我将非常感激。
为清楚起见,我的单个管道代码如下所示:
gst1 = 'rtspsrc location=rtspt://my.rtsp.link ! queue ! rtph264depay ! h264parse ! nvv4l2decoder enable-max-performance=1 ! nvvidconv ! videoconvert ! video/x-raw, format=BGR ! appsink sync=false'
cap1 = cv2.VideoCapture(gst1, cv2.CAP_GSTREAMER)
接下来是一个while循环,该循环读取帧等。我有其中两个用于流式传输两个IP摄像机,这显然会减慢流的传输速度。我的目标是将它们显示在单个帧(画中画)中,这就是为什么我不能使用打开两个单独窗口的管道的原因。我必须有两个管道和两个cv2.VideoCapture()捕获对象和一个框架。我希望我说得足够清楚。
在此先感谢您的帮助!