我正在尝试使用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/