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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用OpenCV(C ++代码)访问IP摄像机?有没有办法访问OpenCv + vlc? (Windows 7的)相关的知识,希望对你有一定的参考价值。

我已经尝试了很多方法,但有些程序给我一个灰色的空白屏幕和另一个只是退出代码检测相机无法访问但无法找到解决方案,即使程序在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个频道
答案

这是适合我的代码。

#include <opencvcv.h>
#include <opencv2highguihighgui.hpp>
#include <opencv2imgprocimgproc.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;
}
另一答案

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

另一答案

首先,您需要发现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

以上是关于如何使用OpenCV(C ++代码)访问IP摄像机?有没有办法访问OpenCv + vlc? (Windows 7的)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C 程序为计算机设置 IP 地址?

想知道文件后缀如何正确使用

如何使用 C 获取 OS X 上所有接口的 IP 地址

如何在 C 中使用 asm 添加两个 64 位数字时访问进位标志

如何使用C#语言编写程序通过ip地址找出端口号

如何使用纯 python/boto 访问 EMR master 私有 ip 地址