Visual如何使用OPENCV(C 代码)访问IP摄像机?有没有一种方法可以使用OpenCV VLC访问?(Win

visual How to access an IP camera using OpenCV (C++ code) ? is there a way to access with OpenCv+vlc ? (windows 7)

本文关键字:访问 方法 一种 可以使 Win VLC OpenCV 摄像机 OPENCV 何使用 代码      更新时间:2023-10-16

我尝试了多种方法,但是有些程序给我一个灰色的空屏幕,而另一个程序只是退出代码检测摄像机,但即使程序成功,也找不到解决方案在OpenCV中构建

我正在使用Microsoft Visual Studio 2010与OpenCV 2.4.3

这些是我的相机的规格。

  • 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);

还请参考下面的答案

使用OpenCV

的IP-Network-Camera-Access

使用网络摄像机的OPENCV

IP摄像机和OpenCV

首先,您需要发现ONVIF相机的RTSP URL。比您在@Mayur上使用代码回答的代码替换RTSP URL替换RTSP URL。

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

或使用一些找到它的软件,我建议软件Onvif-Device-Tool(link)或GSOAP-ONVIF(链接)(链接)都在Linux上使用,请查看您的终端,RTSP URL将在那里。发现RTSP URL后,我建议在VLC播放器(链接)上对其进行测试,您可以使用菜单选项"打开网络流"或从命令行进行测试:

vlc rtsp://your_url