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