У меня есть проблема с открытием многих видеофайлов (например, 200) в цикле с использованием класса VideoCapture OpenCV. Ниже вы можете найти мой код.OpenCV VideoCapture не может открыть много видеофайлов
В частности, моей программе удается открыть определенное количество видео (обычно 171-173), но потом не удается открыть другие. Я даже пытался открыть всегда тот же файл (как в примере ниже), но поведение такое же.
По-моему, это не проблема с утечкой памяти (на самом деле происходит утечка памяти, но она потребляет всего около 50 МБ). Я думаю, что это связано с тем, что, когда каждое видео открыто, несколько потоков также открыты и никогда не закрываются, поэтому они накапливаются. Но я не знаю, является ли это реальной причиной или, если это так, как ее решить.
Я использую 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
Довольно маленький, между 1 и 20 МБ – user1343279
Я предполагаю, что у вас потенциально заканчивается память. Ваши запущенные 32-битные или 64-битные окна? и сколько у вас RAM? Худший сценарий, 200 x 20mb видео = 4GB – TomP89