2015-06-01 3 views
0

Я использую Visual Studio 2008 и OpenCV 2.4.5.Невозможно повторно использовать OpenCV :: VideoWriter

У меня есть класс, который содержит обработанные видеокадры, и я хотел бы сохранить их в виде видеофайлов. Я создал объект cv :: VideoWriter в конструкторе и записывал кадры в объект cv :: VideoWriter, зацикливая и получив желаемое видео. Проблема начинается после получения первого видео.

я иногда хочу закончить этот видео файл ЦВ :: VideoWriter :: Release() и повторно использовать этот объект, вновь открыв его с другим именем, как показано ниже:

outputVideo.release(); 

outputVideo.open("D:\\example2.avi", CV_FOURCC('D','I','V','X'), 15, videoSize, true); 

, но я понял, что для второй раз, VideoWriter не создает никакого файла на связанном пути, даже функция cv :: VideoWriter :: isOpened() возвращает true интересно.

Но, чем интереснее, я также не могу создать и использовать любой другой экземпляр объекта cv :: VideoWriter в другом месте моего класса. Все более и более интересно, я могу создавать и использовать несколько экземпляров только в конструкторе.

Пробовал много вещей; указатели, различные кодеки, создавая объекты в конструкторе и используя их в других методах без помощи.

Единственное, что я вижу, что я могу создать только один экземпляр и использовать его только один раз, я не могу использовать его снова после его выпуска, или я не могу создать новый экземпляр и открыть его, если я из конструктор моего класса, даже метод isOpened() всегда возвращался true (файл не создается на связанном пути, кроме первого раза). Не нашел ничего, чтобы помочь мне в этой странной проблеме в Интернете.

Любая помощь действительно оценена, проведена мои 3 часа и не могла понять, почему.

+0

Вы компилировались в режиме выпуска и связывали библиотеки отладки или наоборот? Можете ли вы создать минимальный компилируемый пример (например, главную функцию), который все еще дает вам проблемы? – Micka

+0

@ Мичка спасибо за ответ. Я выяснил, что это связано с отсутствием dll opencv_ffmpeg, но странно, что он работает только один раз без нужной DLL, я не знаю, как это сделать. – Horizon1710

ответ

0

Я выяснил, что эта проблема вызвана отсутствием файла opencv_ffmpeg.dll. Но все же мне кажется странным, что он работает только один раз без нужной DLL. Я не понимаю, как он работает без этого DLL-файла.

Смежные вопросы