阅读视频文件时,OpenCV内存不足

时间:2014-01-08 07:44:20

标签: 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。

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

2 个答案:

答案 0 :(得分:1)

尝试

while True:
    ret, frame = cap.read()
    if(!frame)
        break;

确保frame有效,以避免永远读取帧甚至无效。

答案 1 :(得分:1)

您可以使用具有视频加载程序的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做你想做的事情!