3

我遇到了一个不寻常的问题。我使用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 报告的错误。

4

2 回答 2

3

为了处理错误,请编写如下内容:

CvCapture* URL= cvCaptureFromFile("rtsp://192.168.X.X:8080");  //uses real time streaming protocol instead of http
if(!URL) 
      { 
            exit(1);           
      } 
于 2012-09-14T06:58:48.083 回答
0

in cv::VideoCapture (the C++ interface to cv::CaptureFromFile), there is a function bool isOpened();

The structure is allocated, but you cannot grab frames from it.

于 2012-09-14T08:33:45.367 回答