【问题标题】:How to use OpenCV VideoWriter on Mac如何在 Mac 上使用 OpenCV VideoWriter
【发布时间】:2025-12-13 21:20:05
【问题描述】:

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

【问题讨论】:

    标签: macos opencv video avi


    【解决方案1】:

    frame 的大小是多少?

    根据我的经验,即使cvCreateVideoWriter 的第四个参数与您的图像框架的尺寸不匹配,cvWriteFrame 也不会产生错误。它写了类似标题的东西。 (有 414 字节...)

    确保它们完全匹配。

    【讨论】:

      【解决方案2】:

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

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

      试试这个组合:

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

      这里是参考link

      【讨论】: