【问题标题】:open cv ip camera c++, connection refusedopencv ip camera c++,连接被拒绝
【发布时间】:2014-06-07 02:54:12
【问题描述】:

我正在尝试使用以下代码连接到我的 dlink 网络摄像机:

//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

感谢任何想法,谢谢

【问题讨论】:

    标签: c++ opencv video-streaming video-capture ip-camera


    【解决方案1】:

    我认为您的问题出在网址上。试试这个:

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

    【讨论】:

    • 解决了连接被拒绝的问题,但得到警告:无法读取电影文件admin:password123@192.168.2.74:554/… 相机为空,正在中止...程序以退出代码结束:0 任何方式我都可以捕获此错误获取更多信息?
    • 尝试检查 opencv_ffmpegXXX.dll 或 opencv_ffmpegXXX_64.dll(如果您正在构建 64 位可执行文件)是否在您的可执行文件所在的同一文件夹中。用你使用的opencv版本号替换XXX。
    • 会试一试,谢谢。有趣的是,如果正确输入了 IP 地址和凭据,此 url(或 url 的格式)是否可以在任何 IP 摄像机上工作?
    • 要捕获错误,您应该包含 exception.h 并执行正常的 try 和 catch 块。例如:#include try{ CvCapture *camera = cvCreateFileCapture("rtsp://admin:密码123@192.168.2.74:554/ch1-s1"); }catch(const std::exception& ex) { std::cout
    • 用您建议的网址再次尝试,不知道为什么,但现在有效。谢谢
    猜你喜欢
    • 2017-01-13
    • 2019-12-11
    • 2017-08-08
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多