Opencv 播放视频太慢

Mil*_*lad 4 python opencv

我用 Python 写了一个程序,用 Opencv 播放一些视频......它在 Windows 10 中正常工作。但我想用 Raspberry 运行它,问题是视频播放速度太慢。我使用了 OMXplayer,它播放文件非常流畅。所以问题不是树莓派。(我认为是...)

我简化了我的代码:

print "---Playing the Videos and Images---"
cap = cv2.VideoCapture(str(VideoPath))
while cap.isOpened():
 ret, frame = cap.read()
 if ret == True:
  cv2.imshow('videoWindow',frame)
 if cv2.waitKey(25) & 0xFF == ord('q'):
  a=2
  break

cv2.destroyAllWindows()
print "!...Done...!"
Run Code Online (Sandbox Code Playgroud)

你能告诉我是什么问题吗?

al-*_*eax 5

您的循环不关心视频中的 fps。看起来您的视频没有缓存在 RAM 中,您直接从磁盘读取它,这就是您的视频显示缓慢的原因。预加载您的视频,只需在显示之前将所有帧保存在列表中。

通过video.get(cv2.cv.CV_CAP_PROP_FPS)cv2.X 或video.get(cv2.CAP_PROP_FPS)cv3.X获取 fps。

现在,测量每次循环迭代的时间并计算所需的睡眠间隔。看看这里:https : //www.learnopencv.com/how-to-find-frame-rate-or-frames-per-second-fps-in-opencv-python-cpp/