Попытка написать видео файл с помощью OpenCV - PullRequest
2 голосов
/ 19 февраля 2010

Я пытаюсь использовать OpenCV для записи видеофайла. У меня есть простая программа, которая загружает кадры из видеофайла, а затем принимает их сохранить

Сначала cvCreateVideoWrite всегда возвращает NULL. Я получил ответ от вашей группы, в котором говорится, что он возвращает отдельные изображения, и попытался изменить имя файла на test0001.png.

Но теперь функция cvWriteFrame всегда дает сбой, код

 CString path;
 path="d:\\mice\\Test_Day26_2.avi";

   CvCapture* capture = cvCaptureFromAVI(path);
   IplImage* img = 0;

 CvVideoWriter *writer = 0;
 int isColor = 1;
 int fps     = 25;  // or 30
 int frameW  = 640; // 744 for firewire cameras
 int frameH  = 480; // 480 for firewire cameras
 writer=cvCreateVideoWriter("d:\\mice\\test0001.png",CV_FOURCC('P','I','M','1'),
                           fps,cvSize(frameW,frameH),isColor);
 if (writer==0)
  MessageBox("could not open writter");

int nFrames = 50;
for(int i=0;i<nFrames;i++){
  if (!cvGrabFrame(capture))
   MessageBox("could not grab frame");
  img=cvRetrieveFrame(capture);  // retrieve the captured frame
  if (img==0)
   MessageBox("could not retrive data");
  if (!cvWriteFrame(writer,img) )
   MessageBox("could not write frame");
}
cvReleaseVideoWriter(&writer);

Ответы [ 3 ]

1 голос
/ 19 февраля 2010

Попробуйте CV_FOURCC('D', 'I', 'V', 'X'), CV_FOURCC('f', 'f', 'd', 's')*.avi именем файла) или CV_FOURCC_DEFAULT*.mpg). Запись видео в opencv все еще довольно грязная> _>

0 голосов
/ 22 апреля 2013

Была ли ваша библиотека построена с HAVE_FFMPEG определенным?Если это не так, вам может понадобиться перекомпилировать opencv с этой опцией. Вы должны увидеть что-то подобное на шаге настройки:

...
Video I/O--------------
Use QuickTime      no
Use xine           no
Use ffmpeg:        yes
Use v4l            yes
...

Если у вас нет ffmpeg, вы можете получить его из1005 * здесь .

0 голосов
/ 19 февраля 2013

Я видел много проблем с написанием видео в OpenCV. Я обнаружил, что формат Intel iYUV хорошо работает для того, что мне нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...