捕获使用OpenCV的多播UDP视频流(Capturing a Multicast UDP Vide

2019-07-20 08:10发布

我有我需要的OpenCV(Emgu)2.4.x的应用程序来捕捉和处理(“客户”)的多播UDP视频流。

//xx.yy.zz.aaa:在客户端,我可以使用VLC(UDP捕捉流。1234,但是在我的应用程序不能抓住这个UDP流我的代码非常简单(

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

PS我试图与2 / O的@也RTP尝试该地址。 没运气 :-/

OpenCV中是否允许直接UDP流“捕获”? 或者我需要在客户机上运行的VLC重新流的视频作为RTP或HTTP或其它....?

谢谢。

Answer 1:

我终于想通了这一点,并分享,希望可以帮助别人,

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

不要忘了@符号!

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

长话短说,在UDP流不出现流设备属性,所以你可能需要获取其他地方或代码进去。

在说明的其他的东西,那自从FPS(每秒帧)是不可靠的,如果不是彻底不正确,则可能需要做出调整FPS,尤其是如果你是轮询在循环流。

HTH



Answer 2:

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

这也将做的工作的情况下,你没有videoInput库



文章来源: Capturing a Multicast UDP Video stream using OpenCV