簡體   English   中英

OpenCV:使用cvWriteFrame從網絡攝像頭寫入視頻時發生內存泄漏

[英]OpenCV: Memory leak when writing video from webcam using cvWriteFrame

我想使用opencv從網絡攝像頭錄制視頻。

我將以下代碼放入計時器事件處理程序函數中,該函數每50 ms調用一次

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

使用writer通過cvCreateVideoWriter創建,並且在我調用cvReleaseVideoWriter(&writer)時創建視頻

問題是在調用cvReleaseVideoWriter之前,我無法釋放cvWriteFrame分配的內存。 當我需要錄制長時間的視頻時,這是一個大問題。

我該如何處理這種情況?

我想您的情況下最好的解決方案(如果您不想修改OpenCV代碼)是編寫幾個視頻文件。

如我所料,每個幀都按原樣被抓取到RAM,沒有任何壓縮。 因此,您可以在分配的內存量超過特定大小之前計算幀數。 然后,完成寫入文件並開始一個新的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM