Не могу повторно использовать OpenCV :: VideoWriter

Я использую Visual Studio 2008 и OpenCV 2.4.5.

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

Я также иногда хочу завершить этот видеофайл с помощью cv :: 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

Решение

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

0

Другие решения


По вопросам рекламы [email protected]