我遇到了解决方案,希望对其他遇到相同问题的人有所帮助。管道布置错误,需要视频转换。另一方面,延迟是非常相关的,但是将speed.preset设置为ultrafast可以解决此问题,即使压缩不多,这也是一个很好的折衷方案。这是我的解决方案。
import cv2
cap = cv2.VideoCapture(0)
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))
while cap.isOpened():
ret, frame = cap.read()
if ret:
out.write(frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
# Release everything if job is finished
cap.release()
out.release()