3
我想录制使用Emgu CV从网络摄像头捕获的视频,但是我得到一个异常。在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)行时发生异常。
好的解决了这个问题。问题是选择合适的编解码器进行录制。我改变了下面第3行的一部分: _capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FOURCC) with -1。这为我提供了一个对话框,其中包含我的机器上可用的编解码器列表。我选择了“无压缩”编解码器,视频已正确生成。 – Shivam 2010-07-18 19:33:35
恭喜您解决您的问题。请张贴这个答案。 [可以问和回答你自己的问题](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)。 – Gilles 2012-05-12 20:02:29
@Shivam:请将您的解决方案作为回答并关闭此问题。 – Shiva 2014-01-14 07:26:11