python - Opencv 播放视频太慢

标签 python opencv

我用 Python 写了一个程序来用 Opencv 播放一些视频......它在 Windows 10 中工作正常。 但是我想用树莓派运行,问题是视频播放太慢了。 我使用了 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...!"

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

最佳答案

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

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

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

关于python - Opencv 播放视频太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377003/

相关文章:

algorithm - 改进 OpenCV 的模板匹配算法

python - 数据框:coll 中数组的 get_dummies

python 用协方差最小的高斯混合模型(GMM)拟合加权数据

c++ - opencv函数实现

python - 根据 Pandas 的 groupby 将一列拆分为多个列

python - 检测接近的物体

c - 如果我们从 SAD 算法计算视差值,我们如何使用该值来制作视差图?方法是什么?

python - 在pyqt中使用按钮和对象

python - 使用 colab 时没有这样的文件或目录 'nltk_data/corpora/stopwords/English'

适合初学者的python函数