2013-05-08 11 views
6

私のプロジェクトの最後の段階で、自分のウェブカメラの魅力のように動作するコードをIPカメラで使いたいときに、私は立ち往生していました。 URLは私のブラウザで完璧に動作しますが、何も私のコードです。ここOpenCVの... で出てくるん:cv :: VideoCaptureはウェブカメラでは動作しますが、IPカメラでは動作しませんか?

#include <opencv/highgui.h> 

using namespace cv; 

int main(int argc, char *argv[]) 
{ 
    Mat frame; 
    namedWindow("video", 1); 
    VideoCapture cap("http://192.168.1.99:99/videostream.cgi?resolution=32&rate=0&user=admin&pwd=password&.mjpg"); 
    while (cap.isOpened()) 
    { 
     cap >> frame; 
     if(frame.empty()) break; 

     imshow("video", frame); 
     if(waitKey(30) >= 0) break; 
    } 

    return 0; 
} 

とコンパイラの設定:

//Added to the .pro file of QtCreator 
INCLUDEPATH += C:\\OpenCV243\\release\\include 
LIBS += -LC:\\OpenCV243\\release\\lib \ 
    -lopencv_core243.dll \ 
    -lopencv_highgui243.dll 

私はaviファイルを開いてテストしてみましたファイルは同じコードで動作します...しかし、http://66.184.211.231/mjpg/video.mjpgのような公衆IPカメラのURLはありません!それではどうしたの?

編集者削除:私はFFMPEGを問題だと思っていましたが、v2.4.3です。 FFMPEGのサポートを内蔵し、私は任意のFFMPEGライブラリがインストールされていないが、.AVIファイルが動作しています(説明するように注意して?)事前に

おかげで、

よろしく、 ミスターミステール

+0

VideoCaptureクラスは、実際のビデオキャプチャデバイス(webcam)にアクセスするか、ビデオファイルを開くことができます。私は、ネットワークを介してアクセスする一定のビデオストリームではうまくいきません。 – Niko

+0

多くの人がそれをやってくれたので、私はそれが可能であると確信しています(他の人の中では、答えの著者[there](http://stackoverflow.com/questions/15584161/ip-camera-and-opencv) )... ...しかし私ではない:/ –

+0

ffmpegはここで呼び出され、勝利よりもLinux上でうまくいっている(例えば、vmbox ubuntuクライアントでは完全に動作するが、ホスト/ xpシステムでは動作しない)。 – berak

答えて

5

ソースのbuild \ x86 \ mingw \ binフォルダからopencv_ffmpeg.dllをコピーし、ビルドされたDLLの隣に貼り付けて解決しました(PATH経由でアクセスできるbinフォルダ):私にはわかりませんが、opencv_ffmpeg_64.dll代わりに生産されていた。

+0

Mystere:どこに貼り付けたのか教えてください。 '(パス経由でアクセスできるbinフォルダ)'私はここであなたが何を言おうとしているのか分からない。 – Mayur

+0

これは、ライブラリが構築されたフォルダです。そのパスは、 'PATH環境変数'(またはコンパイラオプション)にもリストされている必要があります。 –

+0

@MisterMystèreWindowsではどこに貼り付けますか? –

2

をあなたので、 Webカメラからフレームを接続して取り込むことができますあなたのライブラリは正しく設定されており、IPカメラに接続できるはずです。私は、問題はカメラの提供されたURLアドレスであると信じています。

カメラにログインし、パスワード保護を無効にしてください。 URLからログインとパスワードのフィールドを削除すると、"http://192.168.1.99:99/videostream.cgi?resolution=32&.mjpg"のようになります。また、カメラにログインして解像度を確認することもできます。私はあなたにresolution=32があることに気づいたが、それはresolution=704x480のようなものでなければならないと思う。

これが役に立ちます。

+0

あなたの答えをありがとう。残念ながら私は(resを使わなくても)試しましたが、うまくいきません。私は、OpenCVが特定のURLを必要とする場合を除いて、このURLが私のブラウザで問題なく(特に32はFoscamプロトコルのために)試されていると主張したいと思います。私は上記の私の質問を編集した、多分それは...助けに役立つ? 編集:私がウェブカメラと言うとき、それは統合されたウェブカメラです。私はちょうど0番のデフォルトカメラを正常にオープンしました。 –

+0

'cap.isOpened()'は1またはゼロを返しますか? – Alexey

+0

はい、ブラウザで動作する場合、OpenCVで動作するはずです。私はパスワードで保護されたカメラに接続するときに問題を抱えていた。だから私は、テストするだけで、カメラのパスワード保護を無効にすることを提案した。 – Alexey

関連する問題