如何访问IP摄像机错误(摄像机/型号:Grundig / GCI-K1505B)?

时间:2017-02-24 13:44:17

标签: c++ opencv video ip-camera

#include <stdio.h>
#include <opencv2/opencv.hpp>
#include <iostream>

int main(int, char**) {
    cv::VideoCapture vcap;
    cv::Mat image;

    // This works on a Grundig GCI-K1505B
    const std::string videoStreamAddress = "http://admin:1234@192.168.1.1/video.cgi?mjpeg";

    if(!vcap.open(videoStreamAddress)) {
        std::cout << "Error opening video stream or file" << std::endl;
        return -1;
    }

    for(;;) {
        if(!vcap.read(image)) {
            std::cout << "No frame" << std::endl;
            cv::waitKey();
        }
        cv::imshow("Output Window", image);

        if(cv::waitKey(1) >= 0) break;
    }

}

错误

***** VIDEOINPUT LIBRARY - 0.1995 - TFW07 *****

警告:打开文件时出错(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:779) 警告:http://admin:1234@192.168.1.1/video.cgi?mjpeg(/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:780) 打开视频流或文件时出错 按关闭此窗口...

GRUNDIG /型号:GCI-K1505B

Web浏览器MS Internet Explorer 6.0(或更高版本),Firefox,Google Chrome,Safari 访问保护通过登录和密码,IP过滤器,IEEE802.1x 最多20个客户端的数量 视频压缩H.264(MPEG-4Part 10 / AVC),MJPEG 视频分辨率全高清1080p / SXGA / HD 720p / XGA / SVGA / D1 / VGA / CIF / QCIF 视频流四路流:4xH.264或3xH.264 + MJPEG三路:3xH.264或2xH.264 + MJPEG双路:2xH.264或H.264 + MJPEG单路:H.264或MJPEG 帧速率(最大@分辨率)50fps @ 2MP,25fps @ 2MP,50fps @ 1,3MP,25fps @ 1,3MP等。 网络协议IPv4 / v6,TCP / IP,UDP,RTP,RTSP,HTTP,HTTPS,DHCP,PPPoE,UPnP,SMTP,ICMP,IGMP,SNMP,IEEE802.1x,QoS,ONVIF,ARP

1 个答案:

答案 0 :(得分:0)

你有一台ONVIF相机。 ONVIF相机有一个可以与opencv一起使用的rtsp url。

首先,你需要发现你的相机rtsp网址。有一些方法可以做到这一点,您可以尝试使用手册,或使用其他一些软件来提供。我推荐使用软件onvif-device-tool(link)或gsoap-onvif(link),两者都适用于Linux,看看你的终端,rtsp url会在那里

在您发现rtsp url之后我建议您在vlc播放器(link)上测试它,您可以使用菜单选项“打开网络流”或从命令行进行测试:

vlc rtsp://your_url

在代码上使用rtsp url,例如:

    const std::string videoStreamAddress = "rtsp://10.0.0.105:554/user=admin_password=admin_channel=1_stream=0.sdp";

同时将你的if改为:

        if(cv::waitKey(15) == 27) break;

我用我的相机在Linux上进行了测试,经过这些修改后,您的代码对我有用。