一.摘要

本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案。

由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述,有兴趣的朋友可以继续深入研究。

二.关键词

IPCAM, P2P,NAT, STUN, TURN, ICE, PJSIP, OPENSIPS, UDT, TCP, UDP

三.需求提出

网络视频监控市场持续火爆升温,除了公共安全市场持续高速增长之外,民用市场中家庭和个人视频监控的需求近年也在逐渐增多。这主要得益于以下几点:

1. 网络视频监控产品的价格已经降低到个人很容易接受的程度。

2. 家庭宽带网络的逐步普及。

3. 3G网络的逐步普及。

家庭和个人监控的需求和传统的公共安全监控需求有明显的不同,其特点主要体现在以下几个方面:

1. 规模很小。通常是1台或者几台。

2. 无需专用的监控客户端,无需长时间监控。

3. 监控客户端和网络摄像机多位于不同的网络。比如网络摄像机在家中,用户通过公司的网络或者手机查看视频。

4. 不会多人同时查看一路视频,最多一两人同时看,且概率较小。

5. 无需连续长时间录像,多采用移动侦测或者其他告警触发录像,拍照,同时通过邮件,短信提醒。

四.技术难点

通过以上分析可以看出,家庭以及个人视频监控的需求和传统公共安防市场的需求有很大的不同,决定了其必须采用不同的技术路线和方案:

1. 网络摄像机和监控客户端(PC/手机)位于不同的网络,中间有防火墙隔离,无法像传统安防产品一样采用网络直连通过IP地址直接访问的方式。

2. 网络摄像机数量庞大(至少以万为单位),但分属多个用户。如果采用中央服务器转发的方案,需要互联网上部署相当数量的转发服务器,成本相当高。

3. 必须实现即插即用,不能让用户进行复杂的安装配置。否则售后服务的代价太高。

要实现位于不同网络里的大量网络摄像机和客户端点对点的访问,比较可行而且比较经济的方法是实现防火墙的穿透(NAT),让客户端和网络摄像机之间建立一个直接的数据传输通道,传输视频流和信令。

要实现NAT穿越,需要有一套机制,能够轻松的让客户端和网络摄像机之间能建立起联系,简单的说,就是让客户端能找到自己要访问的摄像机,然后去实现NAT穿越,进而可以访问视频和进行其他操作。

只有解决了上述两个技术难点,大规模部署P2P网络视频监控系统,才有可能实现。

五.解决方案

笔者经过深入的研究和分析,给出以下解决方案。

1. NAT的穿越

NAT的穿越并非安防监控领域的技术,是目前VOIP以及即时通信等产品的基础性技术,目前来讲已经比较成熟,且有完整的技术标准RFC,同时也有众多的实现方案,包括许多已经得到广泛应用的开源项目。

简单来讲,实现NAT的穿越是可能的,成功的概率也比较高。UDP的协议进行数据传输穿透NAT的成功率比较高,接近100%,TCP则存在一些情况无法实现穿越,主要受限路由器的端口映射机制。

要实现NAT穿越,需要有穿越控制服务器部署在互联网(有固定的域名或者IP),由该服务器来协助网络摄像机和客户端来实现NAT穿越。有些服务器还能在TCP不能穿越的情况下,实现RELAY(数据中继转发)的功能,以确保二者之间能实现数据通信。

由于NAT穿越控制服务器不同于安防监控系统中的媒体转发服务器,主要进行信令交互,不转发媒体数据,在协助打通数据通道之后,对应的网络摄像机和客户端就不会再占用服务器带宽和处理能力了,因此一台穿越控制服务器可以接入数量庞大的网络摄像机和客户端。

2. 网络摄像机和客户端之间的访问机制

通常网络摄像机都有唯一ID,并通过该ID注册到穿越控制服务器。客户端要访问对应的网络摄像机时,也需要先注册到穿越控制服务器,并提交对应 网络摄像机的ID,由穿越控制服务器查找对应的网络摄像机,并协助网络摄像机和客户端之间进行NAT穿越,最后打通一个点对点的数据传输通道。之后,二者 即可进行正常的媒体和信令交互了。

为实现更加有效的管理,服务器可对设备接入进行认证。此外,如果设备ID过长,也可以为设备建立别名,客户端访问时用设备别名作为参数,服务器来查找对应设备。

3. 数据传输机制

网络摄像机和客户端之间的数据传递包括有媒体流,信令流等。信令流数据量较小,媒体流数据量加大,而且需要有较好的实时性。

如果媒体流和信令流分开传输,需要打通多个通道,增加了复杂性和出错可能,同时增加了服务器的负担。

前面也讲过,UDP协议能有比较好的NAT穿透性,也比较适合媒体流的传输,但可靠性较差,不宜传输信令。为减轻服务器负担(避免TCP无法穿 透需要转发),提高穿透成功率,笔者建议只打通一个UDP通道,利用该UDP通道封装媒体和信令流,在应用层加以区分,哪些是媒体流,那些是信令流。

由于UDP传输信令可靠性极差,即使是传输媒体数据,在互联网环境下肯定会出现丢包的情况,仍然会出现图像花屏或者解码出错的情况,因此必须要解决此问题。

好在此问题并非我们第一个提出,利用UDP协议进行可靠的数据传输的需求早就存在,并有了比较好的解决方案,那就是通过UDP协议在应用层实现数据的缓冲,序列化,重传,可靠性控制和拥塞控制。

如果上述三个问题都已解决,则网络视频监控的P2P方案已经基本实现,剩下的就是产品化的问题。以下笔者针对PC访问和手机访问分别给出简要的实现说明:

1. PC访问网络摄像机。

PC访问网络摄像机,可以先访问一个网页,传入网络摄像机的序列号。

网页加载一个控件,该控件通过NAT穿越控制服务器和该序列号对应的网络摄像机实现NAT穿透后,通过可靠的UDP传输信令和媒体数据。控件提供视频浏览,对讲,云台控制,参数查询设置等功能。

2. 手机访问网络摄像机。

手机由于平台的不同,需要单独开发对应的客户端或者插件以实现和PC访问类似功能。但原理是一样的,都需要通过NAT穿越控制服务器和该序列号 对应的网络摄像机实现NAT穿透后,通过可靠的UDP传输信令和媒体数据。由于开源的NAT穿越库是可以移植的,在LINUX,WINCE,IOS, Android,Sbrian等都可以实现同样的NAT穿越功能。

六.实现建议

最后笔者给出几个技术方案的建议,有兴趣的朋友可以自己再去做深入研究,欢迎探讨。

1. NAT穿越库的选择,笔者推荐PJSIP,网路摄像机以及客户端都可以采用。

2. NAT穿越控制服务器的选择,笔者推荐OPENSIPS。

3. 可靠UDP传输方案的选择,推荐UDT。

视频监控P2P解决方案相关推荐

  1. 网络视频监控P2P解决方案

    一.摘要 本文分析了日益增长的民用级别家庭和个人网络视频监控市场的需求特点,并给出了一种经济可行易于大规模部署的P2P解决方案.由于篇幅有限,本文只给出了方案的思路,未对更深入的技术细节做详细的论述, ...

  2. 视频监控p2p android,网络视频监控P2P解决方案:NAT穿越

    NAT的穿越并非安防监控领域的技术,是目前VOIP以及即时通信等产品的基础性技术,目前来讲已经比较成熟,且有完整的技术标准RFC,同时也有众多的实现方案,包括许多已经得到广泛应用的开源项目. 简单来讲 ...

  3. 视频监控行业解决方案

    视频监控行业解决方案         行业应用     随着公众对安全性要求的提高,视频监控越来越被广泛的应用到社会中的诸多领域.银行.桥梁.超市,甚至于学校等机构都采用了视频监控系统,进行各种安全监 ...

  4. 大容量存储方案_数字视频监控大容量存储解决方案

    一.背景描述 在建设和谐社会的环境下,国家对很多单位的视频监控系统提出了更高的要求,要求他们把视频监控录像保存更长的时间,要求视频监控的画面更加清晰一点:这些要求的提出,导致原有视频监控系统的存储空间 ...

  5. 基于AI智能视频分析技术的电力行业视频监控联网解决方案

    一.需求分析 电力行业发生人员事故占比较大,其中大多为作业人员意识和能力不足导致现场违规行为无法得到预警和控制引起的.目前电力行业生产现场人员.设备较多,情况比较复杂,而生产监督员有限,在电力作业过程 ...

  6. 车辆监控php原码下载,物流车辆视频监控系统解决方案

    物流车辆视频监控系统解决方案 项目介绍 Hikvision物流车辆视频监控系统解决方案的物流车辆运行和安全问题,通过移动车辆视频监控系统的车辆,车辆运行状态和内外的重要部分轨道车辆实时监控.监督汽车物 ...

  7. 【miscellaneous】监狱智能视频监控系统设计解决方案

    监狱智能视频监控系统设计解决方案 一.系统概况 随着司法监狱管理系统内视频监控系统的日益发展,现有的被动式人工监控这一传统模式已无法满足新形势下的监管工作需求,尤其是现在靠轮询的视频监控方式,无法对突 ...

  8. 电力网络计算机监控系统,电力高清网络视频监控系统解决方案

    一.电力高清网络视频监控系统概述 电力系统是现代一切活动的生命线,变电站,配电房等电力设施的正常工作是一切社会活动得以正常进行的有力保障.因此这就突显了电力高清网络视频监控系统建设的重要性.通过电力网 ...

  9. 网络视频监控系统解决方案概述

      随着视频监控方案的应用普及,视频监控已经与人们的生活越来越密切,而随着网络技术的发展,网络视频监控系统应用已经成为一种趋势.尤其是互联网.电视技术.通信技术开始融合以后,基于互联网平台的视频监控网 ...

最新文章

  1. 图解ElasticSearch 搜索原理
  2. matlab常见用法汇总,包括绘制二维、三维曲线、圆、读取、保存图片/数据、数值精度、绘制圆、绘制角度等
  3. 使用Canu对三代测序进行基因组组装
  4. CentOS 6.5源码包安装MySQL
  5. python输出列/行内容显示不全
  6. 梯度 cv2.sobel_TensorFlow 2.0中连续策略梯度的最小工作示例
  7. postgres清理pg_xlog
  8. nodejs的mysql初始化
  9. 学计算机的用哪种笔记本写字,平面设计笔记本电脑,学平面设计用什么电脑好...
  10. 面向现代化应用,火山引擎云原生究竟提供了哪些能力?
  11. c# 关于继承类中构造函数的实现
  12. JAVA语言程序设计(基础篇)第四章——课后习题解
  13. 软件工程概论第十六周学习进度表
  14. HDU5144 NPY and shot BestCoder Round #22 1003
  15. 【数学】徐小湛第七高等数学新版
  16. 小白学习java第11天多态抽象类接口
  17. 免费下载shape_predictor_68_face_landmarks.dat
  18. iphone4s更换电池_如果更换了iPhone电池后仍然出现问题该怎么办
  19. 字符串与Date类型相互转换
  20. 谷歌影像、天地图、30mDEM、土地覆盖数据...一个软件都可免费下载

热门文章

  1. 踩雷1:Android Studio:3dmap 隐私合规校验失败: errorcode 555570 确保调用SDK任何接口前先调用更新隐私合规updatePrivacyShow、updateP
  2. 月结GR/IR重分类
  3. matlab和Eigen库中的一些旋转矩阵(方向余弦矩阵)、四元数和欧拉角之间的转换和绘图的注意事项
  4. [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(三) —— 数据的持久化——使用MongoDB存储爬取的数据
  5. Matlab批量转换dicom,基于Matlab的批量转换DICOM格式CT序列图像的实现
  6. 法律部门和法律体系(概念、我国现行的法律部门和法律体系 )、法 律 关 系(概念、构成要素:主体、内容、客体)、法律事实(法律事件、法律行为)
  7. CNN可视化技术 -- CAM Grad-CAM详解及pytorch简洁实现
  8. 给拯救者Y7000换个固态
  9. 认识柯里化函数及其应用
  10. 捋一捋人工智能(AI)、机器学习(ML)、深度学习(DL)之间的关系