使用OpenCV 2.4.8(预构建的二进制文件)运行Windows 7,x64。
尝试以下基本代码:
VideoWriter wrt;
wrt.open("video.mp4", -1, 29, Size(480, 640));
这没有任何作用。编解码器选择的预期弹出窗口不会打开,编写器也不会打开(即对wrt.isOpen()
的调用返回false)。此外,writer类wrt.writer
内的内部指针仍为空。
尝试:
opencv_ffmpeg248.dll
复制到可执行文件的目录。CV_FOURCC('M','P','4','2')
等独有的编解码器代码。没有任何效果。任何帮助/方向将不胜感激..
答案 0 :(得分:1)
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;
}
答案 1 :(得分:0)
尝试
VideoWriter wrt;
wrt.open("video.avi", -1, 29, Size(480, 640));