首页 文章

如何使用OpenCV(C代码)访问IP摄像机?有没有办法访问OpenCv vlc? (Windows 7的)

提问于
浏览
1

我已经尝试了很多方法,但有些程序给我一个灰色的空白屏幕,另一个只是退出代码检测相机无法访问但无法找到解决方案,即使程序在opencv中成功构建 .

我在Opencv 2.4.3中使用Microsoft Visual Studio 2010

这些是我相机的规格 .

  • H.264 / MJPEG视频压缩-G.722音频压缩

  • 帧速率30fps / NTSC,25fps / PAL

  • 分辨率:720P,D1,半D1,CIF,

  • 1/3“索尼CCD,CMOS

  • 报警I / O支持运动检测,日期,时间,事件触发

  • 自动日/夜

  • 双向音频,广播系统

  • RTSP,VLC(PS / TS)流媒体协议

  • 比特率变量32Kbps-4000Kbps

  • 使用密码保护进行多级用户访问

  • 免费管理软件支持1-100个 Channels

3 回答

  • 1

    这是适合我的代码 .

    #include <opencv\cv.h>
    #include <opencv2\highgui\highgui.hpp>
    #include <opencv2\imgproc\imgproc.hpp>
    #include <iostream>
    #include <stdio.h>
    
    using namespace std;
    using namespace cv;
    
    int main()
    {
        Mat frame;
        namedWindow("video", 1);
        VideoCapture cap("http://USERID:PASSWORD@IPADDRESS:PORT/video.cgi?resolution=640x360&req_fps=50&.mjpg");
        if(!cap.isOpened())
        {
            cout<<"Camera not found"<<endl;
            getchar();
            return -1;
        }
        while ( cap.isOpened() )
        {
            cap >> frame;
            if(frame.empty()) break;
    
            imshow("video", frame);
            if(waitKey(30) >= 0) break;
        }   
        return 0;
    }
    
  • 0

    您可以使用OpenCV VideoCaptur类从Web打开视频流

    运用

    VideoCapture cap;
    cap.open(192.168.1.180/?action=stream?dummy=param.mjpg);
    

    另请参阅以下链接的答案

    Ip-network-camera-access using OpenCV

    OpenCV with Network Cameras

    IP camera and OPENCV

  • 4

    首先,您需要发现ONVIF相机的rtsp网址 . 比你使用@Mayur上的代码回答用你的rtsp url替换rtsp url .

    要发现您的rtsp网址,您可以在此列表中查找:http://www.soleratec.com/support/rtsp/rtsp_listing

    或者使用一些找到它的软件,我推荐使用软件onvif-device-tool(link)或者gsoap-onvif(link),两者都适用于Linux,看看你的终端,rtsp url会在那里 . 在发现rtsp url之后我建议在vlc播放器(link)上测试它,你可以使用菜单选项"opening network stream"或从命令行进行测试:

    vlc rtsp://your_url
    

相关问题