python - 无法使用 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
它给出的值时False
。VideoCapture
这意味着实例使用的后端不支持该属性。因此,当我阅读框架时,
return_value, frame = vid.read()
它返回所有 59 帧,使后期处理步骤更加耗时。如何解决这个问题?
解决方案
你有没有试过改变cv2.waitKey()?
例如:如果你有一个 60fps 的视频,尝试使用cv2.waitKey(6000)
推荐阅读
- python-3.x - 使用python在数据集中插入数据的函数
- firebase - 如何限制 Cloud Firestore 安全规则
- matlab - 单元格作为带有 cell2table 的标题 - Matlab
- python - 使用 LSTM 预测 2 的乘法序列中的下一项
- python - 我应该如何在 Stack Overflow 帖子中发布我的 juptyer 笔记本中的 DataFrame 输出?
- python - Python 级联命令
- python - Tensorflow 2 -概率:ValueError:无法将 NumPy 数组转换为张量(不支持的 numpy 类型:NPY_INT)
- scala - Scala Spark Dataframe 创建一个新列,其中包含另一列的最大先前值和当前值
- python - PyQt5:如何通过传递引用/值来检查我的文本框是否为空?
- java - 如何在不嵌套特定标签的情况下将 EditText 转换为 html