Я использую 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 часа и не могла понять, почему.
Вы компилировались в режиме выпуска и связывали библиотеки отладки или наоборот? Можете ли вы создать минимальный компилируемый пример (например, главную функцию), который все еще дает вам проблемы? – Micka
@ Мичка спасибо за ответ. Я выяснил, что это связано с отсутствием dll opencv_ffmpeg, но странно, что он работает только один раз без нужной DLL, я не знаю, как это сделать. – Horizon1710