我有以下代码将几帧写入.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);
}
答案 0 :(得分:0)
frame
的大小是多少?
根据我的经验,即使cvWriteFrame
的第4个参数与图像框的尺寸不匹配,cvCreateVideoWriter
也不会生成错误。它写的像标题。 (用414字节......)
确保它们完全匹配。
答案 1 :(得分:0)
您必须使用编解码器和扩展名的正确组合。
编解码器取决于平台。可能是问题所在。
尝试使用此组合:
writer = cvCreateVideoWriter("test.mkv",CV_FOURCC(*'X264),1,Size(640,480),1);
这里是参考文献link