我有一个高清网络摄像机,我试图通过 rtsp 抓取帧并使用以下代码:
//in Form_Load
Application.Idle += getNextFrame;
和事件处理程序:
private void getNextFrame(object sender, EventArgs ags)
{
//where _imgCount is the total image Grabs
lbl_Count.Text = _imgCount++.ToString();
// and ibLive is a Emgu ImageBox
ibLive.Image = capAxis.QueryFrame().Resize(640, 480, INTER.CV_INTER_AREA);
}
当我启动该程序时,它会在屏幕底部出现“条纹”之前抓取 20-40 帧。它始终位于图像的底部,但有时它会占据屏幕的一半。
流分辨率为 1920x1080,使用 mjpeg。我尝试切换到 h.264,但得到了相同的结果。
我使用的是Emgu版本x86-2.4.0.1717
有任何想法吗?
谢谢。
我知道这是一个老问题,但我最近遇到了同样的问题。
我建议使用另一个流媒体库。例如。
- http://net7mma.codeplex.com/ http://net7mma.codeplex.com/
- http://www.fluinefx.com/ http://www.fluorinefx.com/
如果您确实需要使用 EMGU 进行流式传输,请创建具有较低分辨率或较高压缩率的流配置文件。我将压缩设置为 30 并使用相同的分辨率,然后在 rtsp url 中提供流配置文件名称。 (假设您像我一样使用安讯士相机capAxis
)
Capture cap = new Capture(@"rtsp://10.0.0.1/axis-media/media.amp?videocodec=h264&streamprofile=rtspstream");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)