我有以下代码,它写入几个帧到一个.avi视频文件。这在windows机器上运行得很好,但当我在Mac上试用它时,它会创建.avi文件,并且不显示任何错误,但该文件不会播放。到目前为止,我还没有找到一个明确的解决方案。我目前使用的是Mac OSX 10.9.2。
void videoWriter()
{
CvVideoWriter *writer;
writer = cvCreateVideoWriter("test.avi",CV_FOURCC('I','Y','U','V'),1,Size(640,480),1);
for(int i = 0; i < 9; i++)
{
if(imMan.returnSelect(i)) {
cout << "Frame " << i << endl;
/****** Original Image *********/
Mat frame = imMan.returnOrg(i);
IplImage fr = frame;
cvWriteFrame(writer,&fr);
}
}
cvReleaseVideoWriter(&writer);
}发布于 2014-08-21 14:40:23
frame的大小是多少
根据我的经验,即使cvCreateVideoWriter的第四个参数与您的图像帧尺寸不匹配,cvWriteFrame也不会产生错误。它会写一些类似于标题的东西。( 414字节...)
确保它们完全匹配。
发布于 2019-06-23 19:21:15
您必须使用正确的编解码器和扩展名组合。
编解码器依赖于平台。这可能就是问题所在。
尝试使用此组合:
writer = cvCreateVideoWriter("test.mkv",CV_FOURCC(*'X264),1,Size(640,480),1);
下面是参考link
https://stackoverflow.com/questions/22621502
复制相似问题