[英]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.