首页 > 解决方案 > 无法使用 cv2.VideoCapture(video_path).set(cv2.CAP_PROP_FPS, new_frame_rate) 更改输入视频的帧速率

问题描述

我正在.mp4使用 opencv-python (3.4.3.18) 和 python (3.6.6) 读取视频文件

vid = cv2.VideoCapture(video_path)

原始视频大约有 59 FPS,我想将其降低到 10 FPS。所以,我cv2.CAP_PROP_FPS使用以下设置属性,

flag = vid.set(cv2.CAP_PROP_FPS, 10)

(参考:https ://docs.opencv.org/3.4.3/d8/dfe/classcv_1_1VideoCapture.html#a8c6d8c2d37505b5ca61ffd4bb54e9a7c )

但是,当我打印flag它给出的值时FalseVideoCapture这意味着实例使用的后端不支持该属性。因此,当我阅读框架时,

return_value, frame = vid.read()

它返回所有 59 帧,使后期处理步骤更加耗时。如何解决这个问题?

标签: pythonopencvpython-3.6frame-rateopencv-python

解决方案


你有没有试过改变cv2.waitKey()

例如:如果你有一个 60fps 的视频,尝试使用cv2.waitKey(6000)


推荐阅读