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 に答える