我的目标是从 rtsp 服务器读取帧,对帧进行一些 opencv 操作并将操作的帧写入新的 rtsp 服务器。
我尝试了以下基于在 python 中从 opencv 写入 Gstreamer 管道的方法,但我无法弄清楚创建 rtsp 服务器的适当 gst-launch-1.0 参数应该是什么。任何人都可以协助 gst-launch-1.0 的适当参数吗?我试过的那些卡在“管道正在预滚动”中
import cv2
cap = cv2.VideoCapture("rtsp://....")
framerate = 25.0
out = cv2.VideoWriter('appsrc ! videoconvert ! '
'x264enc noise-reduction=10000 speed-preset=ultrafast
tune=zerolatency ! '
'rtph264pay config-interval=1 pt=96 !'
'tcpserversink host=192.168.1.27 port=5000 sync=false',
0, framerate, (640, 480))
counter = 0
while cap.isOpened():
ret, frame = cap.read()
if ret:
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
cap.release()
out.release()
Run Code Online (Sandbox Code Playgroud)
我还尝试了另一种基于Write …
这个问题已在很多网站上多次提出,但不是最终的解决方案.我正在尝试使用函数运行Opencv视频:
import cv2
cap = cv2.VideoCapture('video.mp4')
if(cap.isOpened()==False):
print "Error opening camera"
Run Code Online (Sandbox Code Playgroud)
但它每次都失败了.我已尝试过各种网站的几乎所有步骤,但无法使其工作(包括单独重建ffmpeg).
任何帮助将非常感激.
我的平台是Ubuntu17和Python3.