0
我有一个正在进行的项目通过opencv VideoCapture访问多个IP摄像头,为他们中的大多数工作。OpenCV VideoCapture摘要认证
我有一台新的大华云台摄像机使用摘要认证,并且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
尝试所有三种方法无效(CAP_IMAGES,CAP_DSHOW和CAP_FFMPEG) – Diedre
尝试先通过FFMPEG或Gstreamer命令行访问摄像机。找到工作流水线后,将该流水线转换为'VideoCapture'输入,这很容易。但你必须用'FFMPEG'或'Gstreamer'构建OpenCV才能使管道与'VideoCapture'一起工作。 – zindarod