如何在Mac上使用OpenCV VideoWriter

时间:2014-03-24 21:59:39

标签: macos opencv video avi

我有以下代码将几帧写入.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);
}

2 个答案:

答案 0 :(得分:0)

frame的大小是多少?

根据我的经验,即使cvWriteFrame的第4个参数与图像框的尺寸不匹配,cvCreateVideoWriter也不会生成错误。它写的像标题。 (用414字节......)

确保它们完全匹配。

答案 1 :(得分:0)

您必须使用编解码器和扩展名的正确组合。

编解码器取决于平台。可能是问题所在。

尝试使用此组合:

writer = cvCreateVideoWriter("test.mkv",CV_FOURCC(*'X264),1,Size(640,480),1);

这里是参考文献link