在Emgu Cv中编写视频时出错

时间:2010-07-16 03:19:14

标签: c# opencv emgucv

我正在尝试使用Emgu CV录制从网络摄像头捕获的视频,但是我得到了例外。

_capture = new Capture(0);
_capture.QueryFrame();
captureOutput = new VideoWriter(@"output.avi",
                                (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FOURCC),
                                (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FPS),
                                (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_WIDTH),
                                (int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT),
                                true);
Image<Bgr, Byte> frame = _capture.QueryFrame();
captureOutput.WriteFrame(frame);

我得到了“试图除以零”。我正在执行captureOutput.WriteFrame(frame)行时出现异常。

1 个答案:

答案 0 :(得分:1)

引用评论:

问题在于选择要记录的正确编解码器。我改变了下面第3行的部分内容:

带有-1的

_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FOURCC)

这为我提供了一个对话框,其中包含我的机器上可用的编解码器列表。我选择了“未压缩”编解码器,视频已正确生成。