我有一個問題,通過使用OpenCV類VideoCapture在循環中打開許多視頻文件(例如200)。下面你可以找到我的代碼。OpenCV VideoCapture無法打開許多視頻文件
更具體地說,我的程序成功地打開了一定數量的視頻(通常是171-173),但是無法打開其他視頻。我甚至試圖打開總是相同的文件(如下面的例子),但行爲是相同的。
在我看來,它不應該是一個內存泄漏問題(實際上有內存泄漏,但總共只消耗約50MB)。我認爲這與以下事實有關:當每個視頻被打開時,多個線程也被打開並且從不關閉,因此它們累積。但我不知道這是否是真正的原因,或者如果是,如何解決。
我使用Visual Studio編譯和Windows 7操作系統。
如果您有任何線索和/或解決方案,請讓我知道。
string video_filename = "MyVideo.mp4";
for(int j=0; j<200; j++)
{
VideoCapture video(video_filename);
if(!video.isOpened())
{
cout << "Video #" << j << " could not be opened" << endl;
}
video.release(); // I've tried also to comment this out
}
我覺得你可以很容易地試着重現這個問題,因爲代碼很簡單。
第一個問題...視頻文件有多大? – TomP89 2012-04-19 08:02:36
相當小,介於1和20 MB之間 – user1343279 2012-04-19 08:15:21
我想你可能會耗盡內存。你正在運行32位或64位的Windows?你有多少內存?最糟糕的情況下,200 x 20mb視頻= 4GB – TomP89 2012-04-19 08:42:46