1

我正在尝试使用 openCV 的 VideoWriter 类录制视频。

使用以下功能,

void addFrameToVideo(Mat& frame)
{
    if(_vid.open("test.avi", CV_FOURCC('M','J','P','G'), 30, frame.size(), 1))
        cout << "here" << endl;

    _vid.write(frame);
}

_vid 是 VideoWriter 类型的变量,我可以毫无问题地显示帧。

if 条件永远不会验证,因为程序永远不会输出“here”。然而,这段代码实际上在目录中创建了一个“test.avi”文件,但它仍然是空的。我尝试了几种不同的压缩方法,但都没有成功。

有什么想法吗?

4

1 回答 1

0

可能在您的系统中找不到编解码器。您应该尝试使用不同的编解码器。或者,您可以传递值 -1 而不是,CV_FOURCC()运行时会弹出一个窗口,其中包含系统上安装的所有编解码器,并要求您选择要使用的编解码器(这只适用于 Windows)。

于 2013-09-30T16:20:51.530 回答