Python OpenCV VideoWriter变得越来越慢

Python OpenCV VideoWriter变得越来越慢,python,performance,opencv,Python,Performance,Opencv,我正在使用Mac OS X上的VideoWriter从OpenCV将图像写入视频。下面是代码: fourcc = cv2.VideoWriter_fourcc(*'avc1') vw = cv2.VideoWriter('%s/%s' % (path, 'output.avi'), fourcc, fps, (img.shape[1], img.shape[0]), True) for fn in filenames: img = cv2.imread('%s/%s.png' %

我正在使用Mac OS X上的
VideoWriter
OpenCV
将图像写入视频。下面是代码:

fourcc = cv2.VideoWriter_fourcc(*'avc1')
vw = cv2.VideoWriter('%s/%s' % (path, 'output.avi'),
    fourcc, fps, (img.shape[1], img.shape[0]), True)
for fn in filenames:
    img = cv2.imread('%s/%s.png' % (path, fn))
    if img == None:
        print 'bad file', fn
        continue
    else:
        print 'writing', fn
    #cv2.imshow('preview', img)
    #cv2.waitKey(1)
    vw.write(img)
此代码在开始时运行良好(每秒写入10帧)。然后,它变得越来越慢,直到它下降到一个不可接受的水平。1小时后(是的,我有很多文件,~10k),一帧大约30秒。3小时后,写一帧需要1分钟以上


我检查了
活动监视器
QTKitServer
消耗了大约10%的CPU,作为一种解决方法,您是否考虑过使用中间文件,例如,将每1分钟的视频生成一个单独的文件,然后使用FFMPEG将其合并?什么是fourcc代码?请检查内存总量(或者更确切地说,交换使用情况)跑步时使用?您观察到的问题可能是图像数据留在内存中,导致交换。不确定OS X,但在Debian上,我在写入文件时遇到问题(每个图像只有一个文件)。有一段时间效果很好,但后来出现了更长的延迟。可能是一些文件系统优化。。。尝试在一个单独的线程中使用一些自定义缓冲来编写文件!这对我有用。我可以看到一些缓冲区在一段时间后增长,但稍后缓冲区又会缩小。但是,您应该检查bandwith在您的设备上是否足够大@Hannesovren交换使用量仅为12MB,内存使用量不足一半(总共6G/16G)。所以我认为这不是问题所在。