我正在尝试使用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类型的变量,我可以毫无问题地显示帧。

如果条件永远不会验证,因为程序永远不会输出“这里”。
但是,此代码实际上在目录中创建了一个“test.avi”文件,但仍为空。
我尝试了几种不同的压缩方法,但均未成功。

有什么想法吗?

最佳答案

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

关于c++ - Windows 8的C++和OpenCV:VideoWriter类未打开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18782506/

10-10 11:35