OpenCV 之 网络摄像头

 1  RTSP

RTSP (Real Time Streaming Protocol),是一种语法和操作类似 HTTP 协议,专门用于音频和视频的应用层协议。 和 HTTP 类似,RTSP 也使用 URL 地址。

海康网络摄像头的 RTSP URL 格式如下:

rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream1) username  用户名,常用 admin
2) password  密码,常用 12345
3) ip        摄像头IP,如 192.0.0.644) port      端口号,默认为 5545) codec     视频编码模式,有 h264、MPEG-4、mpeg4 等6) channel   通道号,起始为1,例如通道1,则为 ch17) subtype   码流类型,主码流为 main,辅码流为 sub

大华网络摄像头的 RTSP URL 格式如下:

rtsp://[username]:[password]@[ip]:[port]/cam/realmonitor?[channel=1]&[subtype=1] 1) username、password、ip、port 同上
2) channel  通道号,起始为1,例如通道2,则为 channel=2
3) subtype  码流类型,主码流为0(即 subtype=0),辅码流为1(即 subtype=1)

2  VideoCapture 类

  VideoCapture 类是 OpenCV 中用来操作视频流的类,可以在构造函数中打开视频,其参数支持以下三种类型:

// 1) name of video file (eg. `video.avi`)
// 2) image sequence (eg. `img_%02d.jpg`, which will read samples like `img_00.jpg, img_01.jpg, img_02.jpg, ...`)
// 3) URL of video stream (eg. `protocol://host:port/script_name?script_params|auth`).
// Open video file or a capturing device or a IP video stream for video capturing// VideoCapture 构造函数
CV_WRAP VideoCapture(const String& filename);

也可以构造后,再使用 open 函数来打开

// 参数同 VideoCapture 的构造函数
CV_WRAP virtual bool open(const String& filename);

3  代码

下面是以海康威视的某款网络摄像头为例,使用 OpenCV 的 VideoCapture 类来显示实时视频

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"

using namespace cv;

int main(int argc, char** argv)
{
    String rtsp_addr = "rtsp://admin:[email protected]:554/MPEG-4/ch1/main/av_stream";

    VideoCapture cap(rtsp_addr);
//    cap.open(rtsp_addr);

    Mat frame;

    for(;;) {
        cap >> frame;
        if(frame.empty())
            break;

        imshow("Video Stream", frame);

        if (waitKey(10) == ‘q‘)
            break;
    }
}

附上一张园区的部分视频截图如下:

参考资料:

Multimedia Over IP: RSVP, RTP, RTCP, RTSP

海康、大华IpCamera RTSP地址和格式   xiejiashu

<Learning OpenCV3>  chapter 8

时间: 2024-11-05 18:48:45

OpenCV 之 网络摄像头的相关文章

基于opencv网络摄像头在ubuntu下的视频获取

 基于opencv网络摄像头在ubuntu下的视频获取 1  工具 原料 平台 :UBUNTU12.04 安装库  Opencv-2.3 2  安装编译运行步骤 安装编译opencv-2.3  参考http://blog.csdn.net/xiabodan/article/details/23547847 3  测试代码 编译 g++ cameraCaptrue.cpp -o test `pkg-config --libs --cflags opencv` cameraCaptrue.cpp

虹软人脸识别SDK在网络摄像头中的实际应用

目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此文章中有介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容仅供参考. 1.海康SDK接入基本流程 a.初始化并登录验证 NET_DVR_Init(); NET_DVR_DEVICEINFO_V30 struDeviceInfo = { 0 }; long lUserID = NET_DVR_Login_V30(m_cameraIp, m_cameraP

在Windows IoT上使用网络摄像头

在树莓派上可以使用它官方标配的摄像头,但是这个摄像头似乎不能被Windows IoT识别和使用.但是,可以在树莓派的USB口上插入任意型号的摄像头,就可以实现树莓派的拍摄功能. 关于摄像头的寻找和拍摄,我将其封装成一个类,如下: public class WebCamHelper { public MediaCapture mediaCapture; private bool initialized = false; /// <summary> /// 异步初始化网络摄像头 /// </

Ip camera(网络摄像头)

1 Ip camera简介 Ip camera是一款使用普通摄像头进行网络视频传输的软件.整个系统分为Ip camera客户端和Ip camera server服务器端.系统支持两种方式的视频传输,一种是在局域网内(或有固定公网IP)Ip camera把视频传输到有固定IP的Ip camera server机器上:另一种是注册用户后,Ip camera通过Internet把视频传输Ip camera server机器上. 2 软件下载 Ip camera 1.2 Ip camera server

Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上)

本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 从技术上来讲,使用网络摄像头进行在线广播并不需要WebRTC.摄像头本身就是一台服务器,它能够连接到路由器并在线传输视频内容.那么,为什么我们还需要WebRTC呢? 这至少有两方面原因: 1.随着观看网络广播的观众越来越多,网络带宽会逐渐不足.如果

将光电鼠标变成Arduino网络摄像头

光电鼠标用一个小的摄像头来记录表面情况(计算鼠标的移动). 在这个教程中,他将展示如何在你的浏览器中显示照相机的视频信号. 他拆解的鼠标是一个旧的Logi RX250,其中含一个ADNS-5020 光学传感器 这个传感器记录15*15像素灰度图像.还计算鼠标的X-Y轴运动. 你需要准备: - arduino - 以太网插板 - 带ADNS-5020 传感器 的光学传感器 - 10K 欧姆电阻 将他们连接起来 确保传感器引脚(NRESET, NCS, DSIO, SCLK)在鼠标板上不连接任何东西

Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下)

本文主要介绍WebRTC (我们翻译和整理的,译者:weizhenwei,校验:blacker),最早发表在[编风网] 支持原创,转载必须注明出处,欢迎关注我的微信公众号blacker(微信ID:blackerteam 或 webrtcorgcn). 回顾:Android IOS WebRTC 音视频开发总结(八十三)-- 使用WebRTC广播网络摄像头视频(上) 连接网络摄像头 正如上文所提,我们选用一款简单的D-Link DCS-7010L网络摄像头.关键原因在于它支持RTSP协议,因此服务

【原创】IP摄像头技术纵览(五)---网络摄像头初试—mjpg-streamer移植与部署

[原创]IP摄像头技术纵览(五)-网络摄像头初试-mjpg-streamer移植与部署 本文属于<IP摄像头技术纵览>系列文章之一: Author: chad Mail: [email protected] 1.vgrabbj.spacview.Luvcview.mjpg-streamer评测对比 vgrabbj-0.9.6是基于v4l1设计的,与v4l2的API差别很大,该软件已经没有使用或参考价值. spcaview 也相当古老,并且调用了SDL库,不适合嵌入式系统,不建议研究. 什么是S

ds1511+ 网络存储器 试用 公司用作网络摄像头存储空间

公司的摄像头采用的是AXIS品牌,DVD和高清格式生成的数据量比较大,所以才有买ds1511+的计划, 设定成功后,通过网络IP访问. 现在日均数量在100GB左右,24个网络摄像头. 登陆成功后:主界面如下: 下边在  Info Center 显示有几个硬盘,本人装了5个ST33000650NS 企业级硬盘 在 "File Station" 中可以看到文件夹和文件列表. 控制面版中主要的几大功能: 下面是关键的地方,共享文件夹,是共享给windows server 2008用的,在2