int main(int argc,char ** argv)
{
char filename[1024];
if(argc == 1)
sprintf(filename,"%s","camera.avi");
if(argc == 2)
sprintf(filename,"%s",argv[1]);
IplImage* frame = NULL;
CvCapture* capture = NULL;
capture = cvCaptureFromCAM(-1);//open video capture
if(!capture)
{
fprintf(stderr,"Could not initialize capturing...\n");
return -1;
}
cvNamedWindow("Video Capture", 1);//create show window
frame = cvQueryFrame(capture);
CvVideoWriter *writer =cvCreateVideoWriter(filename, -1, 25, cvSize(frame->width,frame->height));//create writer
// CvVideoWriter *writer = cvCreateVideoWriter("camera.avi",CV_FOURCC('D','I','V','X'),25,cvSize(frame->width,frame->height));直接指定视频格式时出错。
while(capture)
{
frame = cvQueryFrame(capture);
cvWriteFrame(writer,frame);
cvShowImage("Video Capture",frame);
if(cvWaitKey(1) == 'q')
break;
}
cvReleaseCapture(&capture);
cvReleaseVideoWriter(&writer);
cvDestroyWindow("Video Capture");
return 0;
}
第一次使用OpenCV,自己在win7 64 + opencv 2.1上测试成功。能够捕获视频并保存成。avi
但是在创建
CvVideoWriter时,如果直接指定编码格式则出错。指定为-1时,则弹出压缩格式选择后可正常运行。
希望大神能够指点一下。感觉万分。