python - OpenCV 读取视频文件在 Python 中非常慢

标签 python performance video opencv

我正在尝试使用 Python 中的 OpenCV 进行一些视频处理,但它对我来说运行速度非常慢。 例如,以大约 1 fps 的速度简单读取和显示所有帧:

import cv2
cap = cv2.VideoCapture("out1.avi")
cv2.namedWindow("input")
while(True):
    f, img = cap.read()
    cv2.imshow("input", img)
    cv2.waitKey(1)

以大约 30 fps 的速度渲染 C++ 中的相同视频文件没有任何问题。有什么想法为什么 Python 版本这么慢吗?

Python 版本还有一个有趣的地方:它不显示 C++ 版本可以处理的 .wmv 文件(因为我的 Python 只能打开原始视频)。

我使用 OpenCV 2.3.1 和 Python 2.7

感谢您的帮助!

最佳答案

代码在我的机器上正常(快速)运行(win7-64 上的 opencv 2.3.0 和 python 2.6.4,播放未压缩的 avi 文件)。

您是否尝试过使用较旧的 python 接口(interface)(cv 而不是 cv2)的性能?

关于 .wmv 视频播放,python 接口(interface)(或特别是 ffmpeg)有点问题。它只能播放未压缩的 .avi 文件。

关于python - OpenCV 读取视频文件在 Python 中非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275480/

相关文章:

c++ - signed int 数组的高性能比较(使用英特尔 IPP 库)

video - FFmpeg 创建 mp4 变成异步的

Python:写入包内另一个目录的正确方法

performance - Windows Phone - 加密性能差

python - 如何使用 Pandas 映射嵌套在字典中的元组的索引?

java - 从递归到迭代

android - 在 Android 中使用 FFmpeg 将视频裁剪为正方形格式

jquery - 如何在父 Bootstrap Collapse 面板折叠时动态暂停视频?

python - 如何使 Django 自定义用户模型成为抽象类

python - 从按列排序的方阵中获取下对角线索引