2016-04-19 21 views
1

私は、opencv javaを使用してモーション検出のためにIPカム(sony snc p1)から画像を取得しようとしています。ストリームはmjpeg形式であり、opencvのVideoCaptureを使用して画像を取得しようとしています。ビデオキャプチャを使用してビデオファイルから画像を取得できますが、開こうとすると機能しません。私はvlcでストリームを見ることができますが、そのIPアドレスはopencvでは動作しません。これは私が使用するコードです:Sony Ip camera opencv Java

while (true){ 
    VideoCapture camera1=newVideoCapture("http://192.168.0.101/mjpeg");      
    if (!camera1.isOpened())     
    System.out.println("Cannot open file"); 
} 
+0

whileループで新しいVideoCaptureインスタンスをインスタンス化しないでください。whileループの前に一度やり直してください。あなたはどのOSを使用していますか? VLCでテストしたのは良いことです。あなたはOpenCVを使ってどのようなビデオをサポートしていますか?最初に直接IPカメラを開いてみてください。たとえば、FFMPEGサポートでOpenCVを構築している場合は、まずFFMPEGからカメラをまっすぐに開きます(GStreamer、V4Lなども同様です)。もしそこで動作しないのであれば、OpenCVに関連していません。そうであれば、OpenCVが同じビデオサポートで構築されているかどうかを再チェックします。 HTH –

+0

最悪のシナリオでは、実用的な観点から、もう1つのIPカメラJavaライブラリがあるかどうかを確認してください。そうであれば、おそらくストリームを 'Matched'にプラグインできる' BufferedImage'としてアクセスすることができます –

答えて

0

どのバージョンをお使いですか? openCV 2.4では、これは既知のバグです。

最後に、camera1.open("http://192.168.0.101/?dummy=video.mjpg"); のようなダミーパラメータを追加してみることもできます。これは、opencv VideoCaptureがファイル名の最後に拡張子を必要とするためです。