服务器后端之视频数据接收与转发搭建解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3视频存储服务器设计
在本章中,首先介绍了视频监控系统的基本框架,然后根据视频存储服务器在系统中的作用定义了服务器的结构,介绍了服务器各模块的功能,最后对服务器的解码模块、存储模块和检索回放模块提出设计思想。
3.1视频监控系统的框架
项目是从小型单位或私人家庭等用户的需求特点所设计的视频监控系统,其结构比较简单,既考虑到较低的成本,又兼顾用户对系统数字化、网络化的基本要求,一些硬件设备功能主要是考虑用软件来完成。设计的视频监控系统框架如图3.1所示。
图3.1视频监控系统结构图
该系统的工作原理是:摄像头把采集到的模拟视频信号送到编码器,编码器将收到的模拟信号编码压缩,并通过网络将编码后的数字信号传送到视频存储服务器;服务器将原始码流解码成RGB视频,然后再经过编码压缩,按照既定的文件组织格式存入系统的存储硬盘,并等待系统中用户的请求信息。当接收到用户的请求后,服务器读出缓冲区内的数据,发送模块采用RTP协议将数据打包,这些数据包通过UDP协议传送到网络上的各个用户,用户端接收到数据包后,将数据包放入缓冲区内,并将数据按顺序和标志进行重组,然后解码模块对其解码,通过调用播放模块对解码后的视频数据进行实时播放;另一方面,服务器将压缩后的视频信号进行解码,发送到现场监控电视墙,完成现场实时监控。对于远程用户,服务器起用流媒体服务功能,将客户请求的数据通过HTTP协议分发到客户端,用户可以对接受到的内容进行播放。
视频存储服务器是整个系统的核心,它集存储服务器、视频服务器功能与一身,主要完成以下工作:①视频解码:将前端通过网络传送来的压缩视频进行解码,还原成RGB原始视频流。②视频数据压缩:对解码出的视频流进行压缩,以便存储与网络传输;③网络通信:对压缩后的视频数据和相关的控制信息进行封装,将对摄像机的控制信息和视频信息封装成支持所定义的协议信息,同时通过相应的通道将这些协议信息以帧的形式传送到对方,完成通信双方之间的数据传输;④视频数据存储:实现对监控录像数据的统一保存和备份。通过网络获取视频流数据,并以数据块的方式保存在预分配的磁盘空间中,通过磁盘数据的索引文件保存录像数据信息。⑤监控视频资源检索回放:用户可以通过检索回放模块对所关注的历史视频文件进行检索,并通过播放器进行回放。⑥日志管理:对系统
的操作和系统故障及处理情况进行记录,供用户检索查看。
分析视频流在后端的处理主要是解码、存储、检索回放以及对各用户端的传输。数据传输是远端用户对视频文件有目的的检索后通过视频存储服务器的流媒体服务功能完成的,因此,后端视频处理的主要过程可以描述为如图3.2。
图3.2后端视频处理主要过程
从图3.2中可以看出,从网络中接收到前端传送过来的视频流后,视频存储服务器将其解码成RGB视频;再将解码后的视频进行压缩,变成适合存储的数据格式,然后按照存储文件的组织策略将这些数据进行规范,完成后将数据存入硬盘;用户可以根据自己的需要对存储的数据文件进行查找与回放,远程用户查找到的视频文件也能够以流媒体的形式通过网络传送至用户机,完成远程监控。
3.2视频存储服务器的结构
所设计的视频存储服务器要完成的主要功能是将前端传送过来的视频信号解码还原成RGB视频,并进行编码压缩,然后按照存储策略存入存储设备,用户根据自己的需要对存储设备中的视频数据进行检索与播放。设计中对视频存储服务器功能划分为5个功能模块,得到其功能结构如图3.3所示。
图3.3视频存储服务器的主要功能构成
各模块的功能定义如下:
1)视频解码模块:主要负责对系统前端通过网络传送来的压缩视频信号进行解压缩,还原成原始的RGB视频数据。
2)存储管理模块:负责对解码后的RGB视频数据进行压缩,然后以制定的文件组织规范将压缩后的数据存放到存储设备上。在数据存储时要求数据占用的空间尽量要小,同时要便于对视频文件进行检索回放。
3)检索回放模块:为用户提供视频录像资源的快速检索接口,用户可以根据需要对视频文件进行检索调用。当用户查找到所需要的文件时,将相应的文件从硬盘上读出,并将这些数据与相应的控制信息封装成支持既定协议的信息帧,通过网络通道传送到用户,供用户回放浏览。
4)日志管理模块:主要是记录系统工作时间内的一些重要操作及事件信息,管理用户能够通过管理日志了解系统的工作情况和用户访问情况。
5)系统管理模块:负责系统的初始化工作,主要完成对系统的参数配置、用户权限管
理、设备信息管理、用户请求处理等。
3.3视频存储服务器核心模块设计
3.3.1解码模块的设计
系统前端编码器所采用的编码标准是H.264编码标准,因此,系统的解码模块同样采用H.264标准。依照H.264标准,整个流程分为5个步骤:帧间和帧内预测(Estimation)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(LoopFilter)、熵编码(EntropyCoding)。在设计中按照各部分功能对解码器进行了设计,其功能框图如图3.4所示。
图3.4H.264解码器功能框图
从图3.4可以看出,解码器的基本流程设计为:解码器从NAL中接收压缩的比特流,经过对码流进行熵解码获得一系列量化系数X;这些系数经过反量化和反变换得到残差数据D;解码器使用从码流中解码得到的头信息创建一个预测块PRED,PRED与残差数据D 求和得到图像块数据uF;最后每个uF通过去块滤波得到重建图像的解码块F。
监控系统的视频是由连续的图像帧组成的。因此,某种意义上说视频解码就是对视频的图像帧进行解码,解码程序对视频段的解码也可以说是主程序反复调用帧解码函数的过程。单帧图像的解码流程如图3.5所示。
图3.5解码器解码一帧图像过程
一帧图像经过视频编码层VCL编解码后产生的码流,在NAL中将这些码流分割成NAL 单元,并对NAL单元进行边界检测,之后对各单元进行去块滤波处理,并在参考图像进行存储处理后重建图像帧;NAL单元解码过程包含了不同类型片的解码,而对各类型的片解码首先从码流中读入一个片的编码数据,提取RBSP语法结构,产生宏块片组映射图,并根据当前图像类型对参考图像列表进行初始化,最后完成片的解码;而进行片解码首先要对参考图像序号数据以及当前宏块解码设置进行初始化。然后从NAL中读入当前宏块的语法元素,以便对宏块进行解码。
3.3.2存储模块设计
视频监控系统产生的视频流数据是海量的,这些海量的视频数据文件对系统的存储系统提出了严峻的考验。为了制定一个合理的存储方案,本文对监控存储方案与以往存储方案进行了比较,结果如表3.1所示。
表3.1监控存储与传统存储文件特性比较