私はopencv VideoCaptureを介して複数のIPカメラにアクセスしているプロジェクトを進行中にしています。OpenCV VideoCaptureダイジェスト認証
私はダイジェスト認証を使用する新しいDahua PTZカメラを手に入れました.OpenCVのVideoCaptureはそれを開くことができません。 WireSharkを通じて私はカメラが401 Unaothorizedを返すことがわかりました。
私はOpenCVのドキュメントで認証問題について何も見つかりませんでした。
多分私はこれを解決するためにOpenCV以外の何かを使用する必要がありますか?
ここに、(テストするカメラを持っている)最小作業コードがあります。
#include <iostream>
#include <imgproc.hpp>
#include <opencv.hpp>
#include <highgui.hpp>
using namespace std;
using namespace cv;
int main(){
while(1){
VideoCapture cap("http://login:[email protected]/cgi-bin/snapshot.cgi");
if(!cap.isOpened()){
cout << "bug" << endl;
continue;
}
Mat frame;
cap >> frame;
imshow("test", frame);
}
}
そして、ここでカメラのレスポンスです:
どのAPIが 'VideoCapture'を使用していますか? – zindarod
は3つすべて無駄にしました(CAP_IMAGES、CAP_DSHOW、CAP_FFMPEG) – Diedre
最初に 'FFMPEG'または' Gstreamer'コマンドラインでカメラにアクセスしてみてください。作業中のパイプラインを見つけたら、そのパイプラインを 'VideoCapture'入力に変換します。これは簡単です。しかし、あなたは 'VideoCapture'で動作するように' FFMPEG'または 'Gstreamer'でOpenCVをビルドしなければなりません。 – zindarod