需要明确在OpenCV中使用cvCaptureFromFile

时间:2012-09-14 06:16:41

标签: c opencv video-streaming video-capture

我遇到了一个不寻常的问题..我使用的CvCapture *URL=cvCaptureFromFile("http://192.168.X.X:8080")应该是网络视频的链接,以捕捉视频。

现在的问题是:即使没有视频,也没有任何内容 cvCaptureFromFile永远不会返回NULL。我收到此消息:[tcp @ 0x609f20] TCP connection to 192.168.X.X:8080 failed: No route to host。这使我的程序在cvQueryFrame(URL)

失败时进入无限循环

为什么在地址上没有任何内容时它不会返回NULL,更不用说拥有视频了(绝对没有,甚至连PC都忘记了应该传输视频的IPCam)。如果我能够获取API返回的错误,那么我可以处理其他部分。

请解释为什么会发生这种情况,如何获取API报告的错误。

2 个答案:

答案 0 :(得分:3)

为了处理错误,请写下这样的内容:

CvCapture* URL= cvCaptureFromFile("rtsp://192.168.X.X:8080");  //uses real time streaming protocol instead of http
if(!URL) 
      { 
            exit(1);           
      } 

答案 1 :(得分:0)

在cv :: VideoCapture(cv :: CaptureFromFile的C ++接口)中,有一个函数     bool isOpened();

已分配结构,但您无法从中获取帧。