C# 在Emgu Cv中写入视频时出错
我试图用Emgu CV录制从网络摄像头捕获的视频,但我遇到了一个例外C# 在Emgu Cv中写入视频时出错,c#,opencv,emgucv,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),
_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);
\u捕获=新捕获(0);
_capture.QueryFrame();
captureOutput=new VideoWriter(@“output.avi”),
(int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP\u PROP.CV\u CAP\u PROP\u FOURCC),
(int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP\u PROP.CV\u CAP\u PROP\u FPS),
(int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP\u PROP.CV\u CAP\u PROP\u FRAME\u WIDTH),
(int)_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP\u PROP.CV\u CAP\u PROP\u FRAME\u HEIGHT),
正确的);
图像帧=_capture.QueryFrame();
captureOutput.WriteName(帧);
我在执行captureOutput.WriteName(帧)行时遇到“试图除以零”异常。引用注释:
问题在于选择合适的编码解码器进行录制。我更改了下面第3行的部分内容:
\u capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP\u PROP.CV\u CAP\u PROP\u FOURCC)
带-1
这为我提供了一个对话框,其中列出了我机器上可用的编解码器列表。我选择了“未压缩”编解码器,视频正确生成。Ok解决了问题。问题在于选择合适的编码解码器进行录制。我将下面第3行的部分内容更改为:_capture.GetCaptureProperty(Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FOURCC)和-1。这为我提供了一个对话框,其中列出了我机器上可用的编解码器列表。我选择了“未压缩”编解码器,视频已正确生成。祝贺您解决了问题。请将此作为答案发布@希瓦姆:请把你的答案贴出来,然后结束这个问题。