疏而不漏——腾讯如何编织数据中心视频监控网络?(组网架构与资源计算)

NVR(网络视频录像机)的选择

在过去的模拟摄像机时代,视频监控的架构基本上是模拟摄像机+DVR/DVS的模式,DVR要负责进行“模拟到数字信号”的转化和编码等工作。

而当前的组网模式逐渐过渡到网络摄像机(IPCamera)+NVR(Net Video Recorder),网络摄像机集成了编码的和数字化的功能,而NVR的主要功能是对网络音视频数据进行集中存储和检索。它和网络摄像机一样,是当前网络视频监控方案的核心硬件。

对NVR的选择主要需要考虑如下的因素:

NVR的接入能力

接入路数、分辨率支持和接入带宽这3个指标综合表明了NVR的接入能力。

接入路数即“NVR可以接入的摄像头路数上限”。图1中的摄像头最高可以接入32路,但前提是在码率合适的情况下。假设每个摄像头均为8M的1080P码流,而图1中的NVR视频接入带宽为200Mbps,所以8M码流实际上只能最高支持到25路。目前市面上主流的接入数量有4路、8路、16路、32路,最高有256路的NVR设备。

分辨率支持即“NVR可以支持最大多少分辨率的摄像头接入”,通常分辨率越高,摄像头的码率也越高,受限于接入带宽,能够接入的路数相应减少。

接入带宽很好理解,常见的NVR视频的接入带宽有从几十到几百Mbps不等。

总之,接入路数越多,接入带宽越宽,分辨率的支持越高,表明NVR的接入能力越强。用户在选择时需要根据自己的应用场景,选择合适路数、分辨率支持及接入带宽的NVR产品。

图1    NVR接入路数及分辨率支持举例

NVR的解码能力

NVR的解码能力决定了NVR的输出能力,即NVR在本地外接显示器时,显示器上可以同时显示最大多少特定分辨率的画面。图1中,该NVR支持4路1080P的解码,意味着它可以直接支持4路1080P分辨率的实时视频查看/回放。当然,用户也可以通过对输出视频流的分辨率的配置,来提高NVR的视频输出路数。

NVR的存储能力

存储视频是NVR的主要功能之一,用户在选择NVR时需要关注NVR最多可以支持多少路硬盘(即多少路Sata接口)、每一路最高支持到多少TB的硬盘,它们共同决定了NVR最高的存储容量。另外在选型时,还要明确NVR是否支持磁盘整列功能,网络渠道购买的大多数NVR都是不支持Raid的通用产品,如果需要支持磁盘整列,需要认准针对工业的NVR型号。

NVR其他需要考虑的性能

NVR其他需要考虑的性能,还包括NVR的输出接口(如VGA、HDMI),以及对协议(如ONVIF)的支持等。

视频系统的组网架构

视频监控系统通过多年的发展,在组网架构上已经日益简单:1.编码被集成到IP 摄像机中2.NVR/EVS等自带存储和管理功能3.用户可自行选择存储盘位、是否自带解码上墙等功能。一个典型的IP Camera组网图如下所示:

图2    典型网络架构图

前端的网络摄像机直接通过POE交换机供电,同时进行网络数据的传输。POE传输的好处是在同一根网线上解决了摄像头的供电和网络传输问题,方便工程施工。后端NVR直接配置需要接入和存储的网络摄像机IP,抓取对应摄像机的视频流进行存储。数据中心行业根据审计的要求,目前通常需要存储不少于3个月的原始视频数据。

用户还可以自主选择集中式或者分布式的网络架构。对于腾讯的微模块架构,为了便于产品化,一直采用的是分布式架构。我们选择了较小容量的NVR,并对每个微模块的多路视频进行收敛,在每个MDC独立存储。对于T-Block或大型园区,可以利用大容量的NVR/EVS进行集中存储管理。相对来讲,集中式架构颗粒度大,冗余可靠性低,但是成本更低、可管理性更高,用户需要自行平衡。

分辨率、码流、帧率

分辨率是指摄像机的像素密度,它代表了摄像机图像的清晰程度。

而码流指视频文件在单位时间内使用的数据流量,码流决定了如何选择网络带宽和存储。

帧率代表每秒钟传输多少帧图像,帧率太低导致图像卡顿,太高则占用过多带宽,通常按25帧考虑。

要理清分辨率、码流、帧率之间的关系,首先我们需要考虑最基础的图片空间占用问题。比如一张1920*1080P的BMP真彩色图片,在没有压缩的情况下,需要占用多少空间?

公式1

BMP真彩色图片每个像素点由RGB共3色组成,每个像素点占用8bit位。代入上述计算公式可以得到空间占用(Byte)=1920*1024*8*3/8 =6075KB=5.93MB。在完全不进行压缩的情况下,如果我们要传输基于BMP真彩色的25帧1080P视频,其码流为:

公式2

显然148MBps的码流会占用巨量的传输带宽,在进行视频传输时是不可能被接受的,为此工程师们设计了各种视频的编码技术来对码流进行压缩,将数据中的冗余信息去掉。目前最常用的视频编码技术,是由ITU[国际电传视讯联盟]主导的H.264/H.265编码制式。一般一个1080P,200万像素H.264的摄像头码流在4Mbps左右。另外当前主流的摄像头还有主码流和副码流的区别,分别对应不同的接入地址,本地局域网通常带宽比较充足,可以选择接入分辨率和码流都较高的主码流,对于远程视频接入可以选择副码流。

存储空间资源计算

视频监控的存储容量和码流有密切的关系。单个摄像头每天录像容量的计算公式为:

公式3

在计算前,我们需要了解摄像机的码流设置。图3、图4为一台典型网络摄像的码流配置界面。可以看到同样的分辨率下,用户可以自行选择固定码流或变码流,如果选择变码流,摄像机可以根据数据量的大小自动调节带宽,遇到图像变化较快,颜色丰富的场景分配的带宽就大一些;图像变化较慢,颜色较不丰富时,分配的带宽就小一些。同时也可以设置变码流的上限。在选择固定码流的情况下,用户也可以自行选定码流,一般对于1080P的摄像头,选择4096Kb/S就能获得较好的效果。

图3    可变码流选择    |    图4    固定码率选择

假定选择了4096Kb/s的码流,将数据代入到上述公式3中可以得到:

经过计算可以得出,1台1080P的摄像机,如果采用4096Kb/s的固定码流,每天需要占用42.2GB的存储空间,用户只要将该数据乘以整体的摄像头数量,就可以计算出整个数据中心每天需要的存储容量,从而选择合适的硬盘配置。需要说明的是,NVR在配置硬盘时为了做到冗余通常需要做磁盘阵列,Raid5技术为每组盘有1块硬盘空间不可用,Raid6技术为每组硬盘2块硬盘空间不可用,在计算时需要扣除。

交换机选择计算

前文提及了主流的视频监控组网架构,那么如何选择合适的POE交换机,避免造成网络拥塞,也需要进行充分的考虑。以下计算假定每台摄像机的码流均为4Mbps。

接入层交换机选择

接入层交换机的选择相对简单。目前主流的接入层交换机每个端口都达到了100M以上,在接入层也不必考虑交换机级联的问题,如果将每个摄像机直接接入到POE接入层交换机的端口,在端口层面是完全没有问题的。但是需要关注接入层交换机的上联端口,如果接入层交换机为24口,在全部插满摄像头的情况下,其整体带宽将达到24*4=96M,考虑到网络开销,建议选择1000M的上行端口。因此对于接入层的交换机,我们只需要选择100M的下行端口,1000M的上行端口就能满足主流1080P摄像头部署需要。

汇聚层交换机选择

要汇聚多台接入层交换机,就需要关注更多的交换机参数——上行带宽、背板带宽和包转发率。这里我们假定汇聚交换机的端口为24口,每个端口均为1000M口,并且下挂满载24个摄像头的接入层交换机。此时汇聚层的流量为:

4Mbps×24×24=2304Mbps。

因此汇聚交换机的上行端口必须选择万兆端口。

交换机的总交换能力,是交换机处理器、接口卡和数据总线配合在一起能够处理的最大数据容量,通常单位为Gbps。一台交换机的背板带宽越大,对数据的交换处理能力就越强。我们通常希望交换机是线速交换机,保证所有的端口都不限速工作,也就是所有端口都全双工工作时,背板带宽仍然能提供无阻塞的包交换。背板带宽的计算公式:

公式4

假定这台汇聚交换机为24个千兆口,4个万兆上行口,则该交换机的背板带宽需求为:

下图为某公司某系列交换机的选型参数表格,可以看到其交换容量为336Gbps,属于线速交换机,在背板容量上不存在瓶颈。

图5    交换机选型表格截图

包转发率则标识了交换机转发数据包的能力,单位一般为Mpps(百万包每秒),通常和交换机的背板带宽成正比。对于万兆以太网,一个线速端口的包转发率为14.88Mpps;对于千兆以太网,一个线速端口的包转发率为1.488Mpps;100M以太网则为0.1488Mpps。交换机的包转发率的计算公式为:

公式5

仍然假定选择的这台汇聚交换机为24个千兆口,4个万兆上行口,其包转发率为:

因此用户可以根据计算的包转发率在图5中选择合适的交换机型号。

其他需要注意的问题

如果有核心层的交换机,可参考汇聚层交换机的计算方式进行选择。需要注意的是,以上计算只考虑了视频实时存储的需要,也就是每个摄像头实时只有一路码流输出。如果每个摄像头除了在实时存储以外,还有另外的客户端在实时查看,则需要相应的附加上这个部分的带宽。另外对NVR接入带宽的选择也需要根据NVR接入的摄像头数量,参考交换机的计算方式进行相应的选择。

总结

天网恢恢疏而不漏,至此,我们已经从“设备选型与布局”和“组网架构与资源计算”两个方面,为大家介绍了腾讯是如何编织数据中心视频监控网络的,这也是腾讯数据中心安防产品“腾讯觅踪”的技术基础。

本文分享自微信公众号 - 腾讯数据中心(Tencent_IDC)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Jerry的SAP技术分享

How to find the mapping relationship between the Assignment Block in WebClient

Some Assignment Blocks and fields are mapping with set types, some Assignment Bl...

4210
来自专栏sktj

flask 留言板(flask 39)

from flask import flash,render_template,redirect,url_for from app import app,db...

6510
来自专栏运维经验分享

Linux resize2fs: Bad magic number in super-block错误的解决方法

原创 Linux操作系统 作者:chenfeng 时间:2017-04-06 10:35:18  13377  0

13520
来自专栏sktj

flask 登录/注册表单(flask 20)

from flask import Flask,flash,redirect,render_template,url_for import os from ...

16520
来自专栏sktj

flask 使用sendgrid发送邮件(flask 33)

import sendgrid from sendgrid.helpers.mail import Email as SGEmail, Content, Ma...

10820
来自专栏镁客网

5G能让VR/AR站着挣钱吗?

VR/AR是从什么时候开始火的?面对这一问题,估计大多数人都会说,“是在2014年。”

10010
来自专栏运维经验分享

Linux下调整根目录的空间大小

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

36440
来自专栏sktj

flask 文件上传页面(flask 21)

from flask import Flask,flash,redirect,render_template, url_for,session,send_fr...

26720
来自专栏LINUX阅码场

Linux文件/磁盘统计df与du命令输出结果不同的原因研究

标准GNU工具coreutils中有俩程序df / du,他们都可以查看磁盘的使用情况。通常情况下他们的统计结果并不会相同,这是因为统计信息来源的差异。所以问题...

15940
来自专栏运维经验分享

Linux resize2fs: Bad magic number in super-block错误的解决方法

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

34430

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励