我用Python编写了一个程序,用Opencv播放一些视频...它在Windows 10中正常工作。 但我想用Raspberry运行它,问题是视频播放速度太慢。 我使用了OMXplayer,它可以非常流畅地播放文件。所以问题不在于Raspberry。(我想是这样......)
我简化了我的代码:
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...!"
你能告诉我这是什么问题吗?
答案 0 :(得分:2)
您的循环并不关心视频中的fps。 看起来您的视频没有缓存在RAM中,您直接从磁盘中读取它,这就是为什么您的视频显示速度慢的原因。 预加载视频,只需将所有帧保存在列表中,然后再显示它们。
获取cv2.X的video.get(cv2.cv.CV_CAP_PROP_FPS)
或cv3.X的video.get(cv2.CAP_PROP_FPS)
fps。
现在,测量每次循环迭代的时间并计算所需的睡眠间隔。 看看这里:https://www.learnopencv.com/how-to-find-frame-rate-or-frames-per-second-fps-in-opencv-python-cpp/