python - 读取视频文件时 OpenCV 内存不足

标签 python opencv video

这个在 python OpenCV 中使用 cv2.VideoCapture 从文件读取视频的示例内存不足:

import cv2
cap = cv2.VideoCapture('file.mp4')
while True:
    ret, frame = cap.read()

在 1920x1080 分辨率下需要大约 300 帧才能用完。在 OpenCV 3.0.0 beta 和 2.4.8 中测试,在 Windows 7 64 位的最新 Pythonxy 中运行。

需要向此代码添加什么才能使其不会耗尽内存,而是在读取下一帧之前释放每一帧?

最佳答案

您可以使用 scikit-image,它有一个视频加载器,并根据文档支持 OpencvGstreamer 后端。我从未使用过 Gstreamer

import cv2
from skimage.io import Video

cap = Video(videofile)
fc = cap.frame_count()
for i in np.arange(fc):
   z = cap.get_index_frame(i)

现在使用框架 z 做任何你想做的事情!

关于python - 读取视频文件时 OpenCV 内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20989715/

相关文章:

python - 如果 postgresql 不存在(列数和值不同)如何创建动态插入

python - TypeError : The value of a feed cannot be a tf. Tensor对象传递一个热编码时

python - 堆叠 numpy recarrays 而不会丢失它们的 recarrayness

python - 我无法在 Python 中添加一些元素

opencv - VideoCapture.open(0) 无法识别 pi cam

opencv - 链接 : fatal error LNK1181: cannot open input file 'opencv_calib3d2411d.obj'

c - FFmpeg C API - 同步视频和音频

python - 导入 opencv 模块

javascript - 透明 Canvas 视频 Safari 问题

android - 在 ListView 中显示 sdcard 文件夹中的视频文件