2013-09-13 2 views
1

Я пытаюсь записать видео, используя класс VideoWriter класса openCV.C++ и openCV с окнами8: класс VideoWriter не открыт

с помощью следующей функции,

void addFrameToVideo(Mat& frame) 
{ 
    if(_vid.open("test.avi", CV_FOURCC('M','J','P','G'), 30, frame.size(), 1)) 
     cout << "here" << endl; 

    _vid.write(frame); 
} 

_vid является переменной типа VideoWriter и могу imshow кадр без каких-либо проблем.

Условие if никогда не проверяет, так как программа никогда не выводит «здесь». Однако этот код фактически создает файл «test.avi» в каталоге, но он остается пустым. Я пробовал несколько различных методов сжатия без успеха.

Любые мысли?

ответ

0

Возможно, что кодек не найден в вашей системе. Вы должны попробовать использовать разные кодеки. Кроме того, вы можете передать значение -1 вместо CV_FOURCC(), и во время выполнения появится окно, содержащее весь кодек, установленный в вашей системе, и попросит вас выбрать тот, который вы используете (это работает только в Windows).

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