使用OpenCV捕获多播UDP视频流



我有一个多播UDP视频流,我需要我的OPenCV(Emgu)2.4.x应用程序来捕获和处理("客户端")。

在客户端上,我可以使用VLC捕获流(udp://xx.yy.zz.aaa:1234,但是我的应用程序无法捕获此udp流。我的代码很简单(

Capture cap = new Capture ("udp://@212.1.1.1:1234");

p.s.我试过了,2/o@也在那个地址上试过rtp。运气不佳:-/

OpenCV是否直接允许"捕获"UDP流?或者我需要在客户端上运行VLC以将视频重新流式传输为rtp或http或其他。。。。?

谢谢。

我终于明白了这一点,并与大家分享,希望能帮助其他人,

Capture cap = new Capture ("udp://@212.1.1.1:1234");

别忘了@符号

在UDP流上成功创建捕获,但是访问捕获属性会导致它异常并导致错误。

长话短说,UDP流似乎不会流式传输设备属性,因此您可能需要在其他地方获取或在中进行编码

另一点需要注意的是,由于FPS(每秒帧数)是不可靠的,如果不是完全错误的话,您可能需要调整FPS,尤其是当您在循环中轮询流时。

HTH

IplImage* frame;
CvCapture* pCapture;
pCapture = cvCaptureFromFile("udp://ip:port/path");
frame = cvQueryFrame(pCapture);

如果您没有videoInput库

,这也可以完成任务

相关内容

  • 没有找到相关文章

最新更新