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

问题描述 投票:1回答:3

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

我在Opencv 2.4.3中使用Microsoft Visual Studio 2010

这些是我相机的规格。

  • H.264 / MJPEG视频压缩-G.722音频压缩
  • 帧速率30fps / NTSC,25fps / PAL
  • 分辨率:720P,D1,半D1,CIF,
  • 1/3“SONY CCD,CMOS
  • 报警I / O支持运动检测,日期,时间,事件触发
  • 自动日/夜
  • 双向音频,广播系统
  • RTSP,VLC(PS / TS)流媒体协议
  • 比特率变量32Kbps-4000Kbps
  • 具有密码保护的多级用户访问
  • 免费管理软件支持1-100个频道
c++ visual-c++ opencv camera ip
3个回答
4
投票

这是适合我的代码。

#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;
}

1
投票

您可以使用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


0
投票

首先,您需要发现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网址后,我建议在vlc播放器(link)上测试它,您可以使用菜单选项“打开网络流”或从命令行进行测试:

vlc rtsp://your_url
© www.soinside.com 2019 - 2024. All rights reserved.