一、引言

随着物联网技术的发展,越来越多的场景需要我们通过技术手段去感知。画面和声音相当于机器的眼睛和耳朵,有了这些实时数据我们可以做很多事情,比如车牌识别、人脸识别、体温识别等等。本文将全方位介绍网络摄像头如何接入软件的实现,这个软件可以是Android、iOS上的APP,电脑客户端,也可以是Web或者后台软件。

二、接入方式

摄像头的接入方式有很多,根据不同的业务需求选择不同的接入方式。

2.1 SDK 接入

直接连接摄像头接入是最方便快捷的,但这也依赖于所购买摄像头厂家的支持。但海康和大华这种比较大的厂家都是有提供开发的SDK的,在PC客户端和Android、iOS的SDK中,甚至帮你做好了播放器。只需要直接引入即可使用,非常方便。但这里有个坑需要注意一下,有可能摄像头的SDK并不在官网开放下载,如果找不到最好问一下客服。

我第一次接海康摄像头就是因为没找到SDK,直接从rtsp流进行的,又是编译播放器又是调延迟的。结果在GitHub上发现有巴西的哥们上传了一个海康SDK的应用,我一看比我调了一周的延迟还要低。还以为是只针对国外开放,后来问客服才知道只有报备才给SDK……

SDK 接入这种方式虽然非常快捷方便,但它也有弊端,就是如果想外网使用必须给摄像头代理一个外网可用的端口。

比如上图,虽然摄像头的默认端口是这些,但我们可以将摄像头ip的8000映射到具有外网ip的9123端口上去。这样我们具备摄像头SDK的应用程序,就可以直接写这个外网的ip端口就可以访问使用。

如图所示,SDK 开发可以说是最方便最快捷的方式了。并且因为厂家的SDK还是自己的摄像头,所以在延迟方面优化的很好。

2.2 RTSP 接入

第一次接触 RTSP 协议的朋友可能有点陌生,这里稍微解释一下相关概念,以免一下子被太多名词冲昏头脑。

RTSP 和 HTTP 一样,属于应用层的协议,是一种流媒体协议。RTSP 基于 RTP数据协议、RTCP控制协议一起使用。RTP 通常工作于UDP之上,用于传输实际的流媒体数据。RTCP 同样通常工作于 UDP 之上,用于对 RTP 进行控制,流媒体数据的收发端在传输过程中相互发送 RTCP 数据包,将自己这一端检测到的 QoS 等信息传递给对方,使用 RTP/RTCP 协议的应用程序,利用这些信息对收发过程进行控制。RTP 和 RTCP 在传输过程中,工作于不同的端口上。简单来说就是 RTSP 先开始数据的交互,建立媒体传输会话,然后开始通过 RTP/RTCP 传输数据。

这个时候,你可能还会看到 RTMP 和 HLS 这两种流媒体协议。RTMP协议是Adobe的私有协议,未完全公开,苹果原生不支持。苹果自己出了个 HLS 协议,跨平台可以用。

通常我们会选择 RTSP 流地址来接入软件,每家摄像头的 RTSP 地址都有自己的规范,我这里还是以海康威视为例介绍。

rtsp://用户名:密码@ip:端口/h264/ch1/main/av_stream

海康摄像头的 RTSP 流地址拼接如上所示,我们只需要将摄像头相关信息填入即可播放。比如我摄像头的ip是10.0.5.135,账号密码:admin/bitetao。那我 RTSP 的流地址如下所示:

rtsp://admin:bitetao.@10.0.5.135:554/h264/ch1/main/av_stream

这里需要注意的是,上面的这个格式只适用于2012年后的摄像头规范,具体根据规范根据摄像头型号带入。并且后面参数,比如编码格式h264、通道ch1、主码流及子码流main。这些参数都是可调的,根据需要调整即可。RTSP 协议在 Windows 中可以用 Potpayer 播放器测试。

2.3 GB28181 接入

GB28181协议是视频监控领域的国家标准,该标准规定了公共安全视频监控联网系统的互联结构, 传输、交换、控制的基本要求和安全性要求, 以及控制、传输流程和协议接口等技术要求。GB28181协议信令层面使用的是SIP(Session Initiation Protocol)协议,流媒体传输层面使用的是实时传输协议(Real-time Transport Protocol,RTP)协议,因此可以理解为GB28181是在国际通用标准的基础之上进行了私有化定制以满足视频监控联网系统互联传输的标准化需求。

该协议只支持下级找上级,使用流程是在摄像头端配置,然后摄像头会主动的接入到软件中去。如果想实现上级找下级,也就是软件想主动配置摄像头后再接入,可以参考下一小节
ONVIF 接入。

国内本土的摄像头生成商都会遵循 GB28181 协议,根据该协议可以批量的将大量摄像头接入平台,实现实时监控及控制。

上图为通过 GB28181 协议实时音视频播放的流程图,单纯的介绍概念可能有点生涩。本文以开源项目:wvp-GB28181-pro 为例,介绍该协议在实际项目中使用的流程。WVP 通过28181协议将IPC摄像头接入平台,基于 ZLM 流媒体服务器作为视频流的中转。可以观看也可以使用28181/rtsp/rtmp/flv等协议将视频流分发到其他平台。

具体的接入方式这两个开源项目的文档已经写得非常详细了,只需要根据文档把 SIP 相关的信息填写正确就可以了。简要流程就是,先配置好 SIP服务器,这里用的是 WVP。然后在摄像头的配置中配好 SIP 服务器定义好的参数,一一对应。

至于流媒体中转平台,这里用的 ZLM 。只需要Docker启动,配好端口和 mediaServerId 即可,这两个配置也要和 WVP 中的配置一一对应。最后启动前端即可看到实时画面:

2.4 ONVIF 接入

GB28181 是国内标准,而 ONVIF 则是国际标准,ONVIF创建了一个视频监控和其他物理安全领域的IP产品如何进行相互通信的标准。是由Axis Communications,博世安防系统和索尼于2008年创立的。现在我们大多数摄像头也都支持这个协议,但默认一般不开启,需要额外配置。

添加一个用户名及密码,就可以通过这个协议访问摄像头了。比如我们可以下载通用的流媒体服务器软件:EasyNVR,来测试是否可用。ONVIF 协议的使用流程是上级主动向下级通讯,这是和 GB28181 协议不同的地方。

三、总结

本文罗列了接入网络摄像头的四种技术方案,也是最常用的四种方案。大家根据自身项目的实际需求,选择适合的接入方案。最后,这四种技术方案的总结如下图所示,希望对你有所帮助。

SDK RTSP GB28181 ONVIF
接入难度 简单 简单 复杂 一般
时延
优点 简单易用 最方便 支持复杂业务 集中管理
缺点 太重,必须有端口映射 功能单一,不支持PTZ 有时延,开发复杂 需要端到端可通讯
应用场景 局域网内或摄像头数量较少 只想实时看流不需要其余功能 大量摄像头集中管理 智能家居或NAS相关场景

远程监控网络摄像头通用指南相关推荐

  1. 本地摄像头应用到远程计算机,3个可在iPad / iPhone上远程查看网络摄像头的应用 | MOS86...

    当我意识到由于笔记本电脑而在我家的每个房间都已经有了一个网络摄像头之后,我发现必须有一个iPad / iPhone应用程序才能让我无线传输实时网络摄像头. 实际上,最终有很多应用程序! 这里写太多了. ...

  2. 网络摄像头工作原理_好,更好,最好以预算创建最终的远程工作者网络摄像头设置

    网络摄像头工作原理 I've been a remote worker and an occasional YouTuber for well over a decade. I'm always lo ...

  3. 海康威视网络摄像头购买指南(焦距像素等参数)

    如果您需要使用网络摄像头进行二次开发或者监控使用,但是不知道如何选取,请您注意网络摄像头的几个参数(主要): 1.分辨率(像素) 从图像质量上来说,网络摄像头的分辨率越高,成像越清晰,具体我们可以看下 ...

  4. 远程监控-网络DVR发展浅析

    你对DVR熟悉吗?听过NVR吗?网络技术的成熟,以及网络成本的大幅下降,技术与市场对视频监控的更高要求,使得网络数字化系统日渐成熟.我们要牢牢地把握住NVR的发展趋势,有一套完备的网络DVR方案! 远 ...

  5. 如何读取远程4G网络摄像头的视频流?

    1 问题 目前对于检测任务和深度学习结合,可以解决很多任务. 但是:如何获得摄像头? 比如 用百度Edgeboard 就不支持IP摄像头与其直连,比较麻烦. 考虑用网络摄像头来做检测任务. 2 方法 ...

  6. HI3518 CV100 远程监控云台摄像头拆解

    2015年某款,因为接入了24V电源,还不知道接反了没有,导致烧毁电路板,有很重的焦臭味 1.全貌图 2.底盖(已烧黄) 3.底座电路板,主控芯片HI3518 CV100 4.底座电路板另一面 左上角 ...

  7. 道路监控网络摄像头常见问题

    1. 水波纹(FLICK)问题 CMOS高画质传感器在快门速度超过1/200sec以上,因无法处理同步问题,画面上会产生黑条状之水波纹而影响画质(如图一),并会在画面上产生缓慢飘移现象,但快门值低于1 ...

  8. 海康大华安防监控网络摄像头网页无插件直播流媒体RTSP专用播放器方案之EasyPlayer-RTSP-Android如何获取拉流的回调?

    EasyPlayer是一个RTSP流媒体播放器,在GitHub上开源大部分源码,其主要功能有播放.抓图.录制视频.实时静音/取消静音. EasyPlayer-RTSP-Android回调InitCal ...

  9. FFmpeg入门详解之124:Qt5 FFmpeg单路网络摄像头采集预览

    Qt5+FFmpeg单路网络摄像头采集预览 源码工程:S26_Test4 RTSP协议简介 RTSP(Real Time Streaming Protocol),RFC2326 RTSP(Real T ...

最新文章

  1. Memcached内存池分析
  2. 网络工程师_记录的一些真题_2005上半年上午
  3. 橘子CPS联盟3.0版本升级手册
  4. 使用正则替换文件头注释
  5. URI是什么意思?URI和URL有什么区别?
  6. 从SAP客户主数据里直接创建商机(Opportunity)
  7. 存储系统又慢又杂太难用?我们推荐这几本书帮你解决问题
  8. python复制查题_python面试题(复制的)
  9. iOS多线程开发之NSThread
  10. 代码学习-Linux内核网卡收包过程(NAPI)
  11. 【机器人操作系统】ROS文件结构
  12. Web初学者-作业-[学子商城-收藏页]
  13. 打开SVN server图形化管理界面
  14. Python绘制简单折线图、散点图
  15. 数学建模:SPSS线性回归分析——逐步回归分析
  16. 使用Unity3D制作Flappy Bird
  17. iOS 10诸如相机、相册、通讯录、麦克风、定位权限设置,防止奔溃或上架被拒
  18. 酷派t2co1怎么升Android5,而且双清不了怎么办Coolpad725?酷 – 手机爱问
  19. mysql 限定时间段范围
  20. js 倒计时算法及定时器的应用

热门文章

  1. 开发工具创新升级,鲲鹏推进计算产业“竹林”式生长
  2. 上海南京路苹果零售店即将开业(图),3JI9
  3. 继续教育-电商美工主图和海报制作 试题及答案
  4. 汽车通信协议系列3_SAE J1850_PWM
  5. 宁西铁路开通及时刻表
  6. Python数据分析入门--Numpy基础学习笔记
  7. Python量化入门:关于收益率的一些概念
  8. 最优化方法——梯度 Jacobian矩阵 Hessian矩阵
  9. 小程序源码:万圣节头像框生成工具
  10. java类似金山打字的键盘模拟_使用vue写一个类似金山打字通