gpt4 book ai didi

c++ - OpenCV:使用 cvWriteFrame 从网络摄像头写入视频时内存泄漏

转载 作者:行者123 更新时间:2023-11-30 17:48:10 26 4
gpt4 key购买 nike

我想使用 opencv 从网络摄像头录制视频。

我将以下代码放入计时器事件处理函数中,该函数每 50 毫秒调用一次

IplImage *image = cvQueryFrame(camera);
IplImage *resizeImage = cvCreateImage( size, 8, 3);
cvResize(image, resizeImage);
cvWriteFrame(writer, resizeImage );

使用writer是使用cvCreateVideoWriter创建的,并且当我调用cvReleaseVideoWriter(&writer)时创建视频

问题是我无法释放由cvWriteFrame分配的内存,直到cvReleaseVideoWriter被调用。当我需要录制长时间视频时,这会成为一个大问题。

我该如何处理这种情况?

最佳答案

我认为针对您的情况最好的解决方案(如果您不想修改 OpenCV 代码)是编写多个视频文件。

正如我所想,每一帧都会按原样抓取到 RAM 中,而无需任何压缩。因此,您可以在分配的内存量超过特定大小之前计算帧数。然后,您完成对文件的写入并开始一个新的文件。

关于c++ - OpenCV:使用 cvWriteFrame 从网络摄像头写入视频时内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18697183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com