我正在使用Emgu CV 2.4.10创建一个实时流查看器,最终将与IP摄像机一起使用。由于我还没有摄像机,因此我正在使用VLC(Windows GUI)从视频文件中创建流进行测试。
我正在本地进行所有测试。
这是我的截取代码:
捕捉到的内容出现了随机的“模糊”现象,总是发生在帧的下部。
这在我的代码中显示得很好,但帧率明显较低,无法满足我的应用需求。我真的很感激任何解决此问题的提示。谢谢。
:sout=#duplicate{dst=rtp{sdp=rtsp://:8554/stream},dst=display} :sout-all :sout-keep
我正在本地进行所有测试。
这是我的截取代码:
private void ProcessFrame(object sender, EventArgs arg) {
try {
frame = _capture.QueryFrame();
pictureBox1.Image = frame.ToBitmap();
}
catch (Exception ex) {
MessageBox.Show(ex.Message.ToString());
}
}
使用此事件处理程序调用此方法:
_capture = new Capture("rtsp://localhost:8554/stream");
Application.Idle += ProcessFrame;
_capture.Start();
捕捉到的内容出现了随机的“模糊”现象,总是发生在帧的下部。
我看到有几个人在去年12月份以来报告了这个问题,但是没有找到解决方法或适合我的方法:
- http://workingwithcomputervision.blogspot.co.uk/2012/06/issues-with-opencv-and-rtsp.html
- EMGU QueryFrame返回RTSP上“条带状”的图像
- http://www.emgu.com/forum/viewtopic.php?f=7&t=4882&p=10110&hilit=rtsp#p10069
为了缩小问题范围,我从命令行运行了ffplay,捕捉效果完美。我运行了另一个VLC实例来捕获RTSP流,并且它显示得很完美。所以这显然是OpenCV / Emgu CV中的问题。
我一时兴起,将VLC更改为使用HTTP进行流传输。
:sout=#duplicate{dst=http{mux=ffmpeg{mux=flv},dst=:8080/stream},dst=display} :sout-all :sout-keep
这在我的代码中显示得很好,但帧率明显较低,无法满足我的应用需求。我真的很感激任何解决此问题的提示。谢谢。