1.使用cvWriteFrame函数无法保存视频。保存下来的视频文件为0KB,无法打开。
编码设置不正确,自己设置了CV_FOURCC('D','I','V','X')。添加
int outCompressCodec = (int)cvGetCaptureProperty(pCapture, CV_CAP_PROP_FOURCC);
获取当前视频的编码格式,输出的视频要和输入视频编码相同才可以保存。
writer = cvCreateVideoWriter('out.avi',outCompressCodec, fps,cvSize(frame),1);
2.保存的视频比输入视频时间短。
由于我是自己设置的帧率(设置的25),但是和输入的视频帧率不同。
使用 int fps = (int)cvGetCaptureProperty(pCapture,CV_CAP_PROP_FPS);获取当前视频的帧率,然后创建 writer时使用fps即可。
3.保存的视频图像倒立
由于windows的某些图像是底左结构,而Opencv默认的是顶左结构。
可用cvFlip转换或者IplImage->origin设置即可。