C++ 打开cv ip摄像头c++;,拒绝连接

C++ 打开cv ip摄像头c++;,拒绝连接,c++,opencv,video-streaming,video-capture,ip-camera,C++,Opencv,Video Streaming,Video Capture,Ip Camera,我正在尝试使用以下代码连接到dlink ip摄像头: //CvCapture *camera = cvCreateFileCapture("rtsp://admin:password123@192.168.2.74:554/0/1:1/main"); CvCapture *camera = cvCreateFileCapture("rtsp://admin:password123@192.168.2.74:554/ch1-s1"); if (camera == NULL) { pri

我正在尝试使用以下代码连接到dlink ip摄像头:

//CvCapture *camera = cvCreateFileCapture("rtsp://admin:password123@192.168.2.74:554/0/1:1/main");
CvCapture *camera = cvCreateFileCapture("rtsp://admin:password123@192.168.2.74:554/ch1-s1");

if (camera == NULL) {

    printf("camera is null, aborting...");
    return;
}

printf("camera is not null\n");
fflush(stdout);
cvNamedWindow("img");

while (cvWaitKey(100) != 27) {

    IplImage *img = cvQueryFrame(camera);
    if (img == NULL) break;
    cvShowImage("img", img);
}

cvReleaseCapture(&camera);
我得到了以下错误:

[tcp@0x103252d80]连接到tcp://192.168.2.74:554?timeout=0 失败:连接被拒绝 警告:无法读取电影文件rtsp://admin:password123@192.168.2.74/ch1-s1

摄像头为空,正在中止…程序以退出代码结束:0


任何想法都值得赞赏,谢谢

我想你的问题在于url。试试这个:

"http://USER:PWD@IPADDRESS:8088/mjpeg.cgi?user=USERNAME&password=PWD&channel=0&.mjpg";

这修复了连接被拒绝的问题,但收到警告:无法读取电影文件摄影机为空,正在中止…程序以退出代码结束:0我是否可以捕获此错误以获取更多信息?请尝试检查opencv_ffmpegXXX.dll或opencv_ffmpegXXX_64.dll(如果您正在构建64位可执行文件)是否位于可执行文件所在的同一文件夹中。将XXX替换为您使用的opencv版本号。请尝试一下。谢谢。有趣的是,如果IP地址和凭据输入正确,此url(或url的格式)能否在任何IP摄像头上工作?要捕获错误,您应该包括exception.h并执行正常的try-and-catch块。例如:#include-try{CvCapture*摄像头=cvCreateFileCapture(“rtsp://admin:password123@192.168.2.74:554/ch1-s1“;}捕获(const std::exception&ex){std::无法使用建议的URL重试,不知道为什么,但现在可以正常工作。谢谢