Под управлением Windows 7, x64 с OpenCV 2.4.8 (предварительно скомпилированные двоичные файлы).
Попробуем следующий базовый код:
VideoWriter wrt;
wrt.open("video.mp4", -1, 29, Size(480, 640));
Это ничего не делает. Ожидаемое всплывающее окно для выбора кодека не открывается, и писатель не открывается (то есть вызов wrt.isOpen()
возвращает ложь). Кроме того, внутренний указатель внутри класса писателя wrt.writer
остается нулевым
Пытался:
opencv_ffmpeg248.dll
в каталог исполняемого файла в соответствии с этот.CV_FOURCC('M','P','4','2')
и другие.Ничего не получалось. Любая помощь / направление будет оценено.
Пытаться
VideoWriter wrt;
wrt.open("video.avi", -1, 29, Size(480, 640));
VideoCapture cap;
VideoWriter videoWriter;
cap.open(0);
if (!cap.isOpened())
{
printf("can not open camera or video file\n");
return ;
}
string namemove("foo.AVI");
int fourCC = CV_FOURCC('M', 'J', 'P', 'G');
Size S = Size((int)cap.get(CAP_PROP_FRAME_WIDTH), (int)cap.get(CAP_PROP_FRAME_HEIGHT));
int fps = cap.get(CAP_PROP_FPS);
videoWriter.open(namemove, -1, cap.get(CAP_PROP_FPS), S, true);if (!videoWriter.isOpened())
{
cerr << "Cannot open output file " << endl;
return ;
}
Mat img0;
namedWindow("image", WINDOW_NORMAL);
for (;;)
{
cap >> img0;
if (img0.empty())
break;
videoWriter << img0;
imshow("image", img0);
char k = (char)waitKey(30);
if (k == 27) break;
}