视频监控平台设计说明书.docx
《视频监控平台设计说明书.docx》由会员分享,可在线阅读,更多相关《视频监控平台设计说明书.docx(70页珍藏版)》请在冰豆网上搜索。
视频监控平台设计说明书
视频监控平台
概要设计说明书
编制:
生效日期:
审核:
批准:
---------------------------------------------------------------------
文件更2改摘要1:
日期
版本号
修订说明
修订人
审核人
批准人
1.引言
1.1.编写目的
本文档的主要读者为公司决策管理层、质量部、策划部、开发部等有关人员,为后面的系统开发提供指导和保障。
本说明书着重介绍视频监控平台的业务需求及流程。
通过这个需求说明书,明确、细化用户对视频监控平台的功能需求,让所有项目参与人员清晰地掌握视频监控系统的每个功能的具体细节,并为项目的评审,开发,测试等提供依据。
1.2.背景
兼容性和吞吐量或成绊脚石目前,要实现整个平台的共享还面临着较大的压力。
其中压力主要来自于两方面,首先是平台的兼容性,就国内网络高清产品而言,不同的安防企业在制定通信协议时都采用了自己的解决方案,而各个企业的产品通信协议一般情况下都不兼容,国内企业的各个通信协议都存在这个问题,但令人欣喜的是,在解决兼容性方面国家已经出台了相关标准。
2012年6月1日,《安全防范视频监控联网系统信息传输、交换、控制技术要求》正式实施,这标志着我国平安城市视频监控平台建设有了新的规范。
平安城市大联网不仅包括公安部内部联网,也包括公安部与外部社会的联网,通过统一建设视频网络联网平台,将彻底结束因缺乏统一规划而导致的视频监控平台建设离散化、缺少统一技术标准、平台架构扩容等缺陷与弊端,通过资源的有效共享,能够形成积聚的资源优势和整体优势。
只有实现视频图像共享才能将视频监控平台转化为一线的实际战斗力,真正服务于各公安警种的现实业务工作,缩短反应时间,减少人力耗费,相对保证了城市的安全,实现信息资源共享后,可实现与其他警务系统信息共享、灵活查询、智能识别、行为分析、视频案件库管理、综合警务信息管理等等功能;实现建立协调有序、响应快速、指挥顺畅的公安应急指挥通信体系;做到以服务公安案情侦破为核心,能够充分利用视频资源提供有效线索,实现跨部门、跨警种的信息共享和应用共享。
1.3.术语
术语
解释
GBT28181
GBT28181-2011安全防范视频监控联网系统信息传输、交换、控制技术要求
SIP
SIP(SessionInitiationProtocol)是一个应用层的信令控制协议。
用于创建、修改和释放一个或多个参与者的会话。
RTP
RTP(Real-timeTransportProtocol,实时传输协议)
H264
H.264是MPEG-4标准所定义的最新,同时也是技术含量最高、代表最新技术水平的视频编码格式之一。
PS
PES流(PacketElementaryStream):
也叫打包的基本码流,是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。
ffmpeg
ffmpeg是一个开源免费跨平台的视频和音频流方案。
1.4.预期读者与阅读建议
描述本文档的主要读者,以及这些读者在阅读时的阅读重点与建议。
可用列表的方式列出。
如表:
预期读者
阅读重点
软件详细设计者
软件开发人员
质量管理员
决策管理层
1.5.参考资料
该文档在编写过程中,主要参考了以下文档:
Ø《GBT28181-2011安全防范视频监控联网系统信息传输、交换、控制技术要求》
Ø《公安机关视频监控系统联网标准符合性自测工具及说明》
Ø《海康威视iVMS-8600(V2.41)智能交通综合管控平台使用说明书》
Ø《浙江大华DSS-C/T平台使用说明书》
Ø《SIP协议RFC3261》
Ø《RTSP协议RFC2326》
Ø《RTP协议RFC3550》
Ø《SDP协议RFC2327》
2.总体设计
2.1.设计目标
实现视频监控平台软件1.0版,具体包括以下几项:
1.实现符合GBT28181协议的第三方视频监控平台的集成;
2.实现符合GBT28181协议的第三方视频监控设备的集成;
3.开发客户端监控软件,实现上述平台接入或直接接入的视频监控设备的状态监控、远程控制、预置位设置等功能;
4.实现第三方存储设备的集成,完成对视频流的存储管理;
5.开发视频流媒体服务软件,实现实时视频监控、历史图像调用;
6.将各业务功能和播放器整合,提供SDK包,包括上述各种视频监控应用功能,支持管控平台集成。
2.2.运行环境
服务端软件环境:
1服务端操作系统:
Windows2008ServerX64企业版
2运行环境:
ICE3.4
3数据库:
Mysql
客户端软件环境:
操作系统WindowsXP以上版本;IE8以上版本;推荐分辨率:
1280*800;内存:
2G以上。
2.3.网络结构
以公安信息网和公安视频专网为承载网,分别建设各级视频联网平台和共享平台。
共享平台用于视频专网内视频图像资源的接入管理并汇接社会图像资源。
联网平台用于整合公安信息网内图像资源,并与同级共享平台对接。
上下级联网平台通过公安信息网实现级联对接,上下级共享平台根据需要通过视频专网实现级联。
系统架构如下图所示:
图1.网络拓扑图
2.4.总体设计思路和处理流程
本项目完成对符合国标的平台和设备的接入管理,并向上层系统提供服务接口。
系统间交互方式如下图所示:
图2.系统交互示意图
图3.系统整体框架图
2.5.模块结构设计
图3.V1.0系统架构图
模块名称
模块缩写
中心控制单元
CMU
数据接收单元
DRU
转发服务器
MTU
视频设备网关
VCG
综合管理客户端
UI
SDK
SDK
2.5.1中心控制单元
图4.CMU功能图
功能介绍:
✧设备抽象化:
将前端各种类型的设备统一抽象化
✧资源管理:
将系统中的所有设备进行统一管理
✧负载均衡:
系统配置多个转发服务器时,针对用户发起的业务需求进行资源调配,选择负载最合理的转发服务器执行任务
✧中心控制:
系统中的所有控制信令均通过CMU,由CMU进行统一中心控制,是整个系统的大脑。
负载均衡方案介绍:
对于视频监控平台来说,流媒体服务器的能力是整个平台非常重要的一个因素,针对我们系统,在尝试解决MTU单机转发能力的同时,我们采用了一对多的分布式方案,如下图所示,在一个视频监控平台可以部署多台MTU服务器来增加系统的负载,负载均衡流程如下:
1.IPC向VCG注册,完成注册后,VCG将该设备存入设备表;
2.MTU向CMU注册,完成注册后,CMU将该服务器存入MTU表;
3.注册成功后定时向CMU发送自身的负载情况,包括视频转发路数、用户数等;
4.用户请求视频流,CMU收到请求后,检查系统内所有MTU的负载,选择最优的MTU执行该次任务,如果该MTU当前没有指定视频设备的流,要求VCG向指定设备请求流,同时发生Announce给该MTU要求其准备接收流;
5.CMU将该MTU的地址信息返回给客户端;
6.客户端向该MTU请求流,MTU进行转发;
7.客户端显示画面,流程结束。
图5.负载均衡示意图
2.5.2数据接收单元
图6.DRU功能图
功能介绍:
✧数据接收:
开放数据上传接口,接收VCG上传设备列表/状态变化、告警事件等数据。
✧数据发布:
将接收到的数据按照相应的主题向ICEStorm实时发布
2.5.3转发服务器
功能介绍:
✧多路转发:
当客户端请求的流媒体已经在服务器中转发时,不需再向前端设备请求流,直接转发该流给客户端。
✧会话管理:
对客户端发起的流请求和前端设备推送的流数据进行会话管理。
✧负载上报:
定时向CMU发送自身负载,CMU根据此负载情况进行负载均衡。
图7.MTU功能图
工作流程介绍:
1流媒体数据源发送推送数据请求
2事件管理模块接收发送端的事件处理,启动会话接收数据
3启动线程接收数据,并加入超时机制
4内部对数据进行处理
5客户端发送命令请求数据
6事件管理模块接收客户端的事件处理
7内部进行逻辑判断,检查请求资源是否存在
8对客户端进行响应,加入超时机制,启动线程发送数据给客户端
2.5.4视频设备网关
图8.VCG功能图
模块功能:
✧设备对接:
处理符合国标GBT28181的前端设备的注册、信令控制。
✧平台对接:
处理符合国标GBT28181的第三方平台的注册、信令控制。
✧设备管理:
对已注册的设备进行集中监控,包含列表、状态等信息。
✧协议转换:
将所有向第三方平台/设备发送的信令转化为SIP消息。
两个信令安全路由网关之前是上下级关系,下级信令路由网关主动向上级信令安全路由网关发起注册,经上级信令安全路由网关鉴权认证后才能进行系统间通信。
即视频设备网关接收下级平台或者前端设备的注册,注册鉴权完成后才可以通信,进行正常的业务操作。
图9.SIP路由网关图
2.5.5综合管理客户端
视频监控平台的自带的管理客户端,目前以C/S形式实现,至少覆盖平台对外提供的所有业务接口。
提供以下功能:
图10.综合管理客户端功能图
2.5.6SDK
该模块包含网络接口和提供给B/S系统使用的OCX控件,并在控件中对流媒体播放器进行集成。
提供各类接口为应用平台提供视频流的接入和设备控制服务。
主要包括设备管理、设备控制、实况、录像查询、录像回放和下载、录像回放控制接口。
OCX控件中集成的流媒体播放器的功能,支持播放采用RTP传输的PS封装的H264码流,且为标准未加密的码流。
同时支持多路播放功能。
模块功能:
✧向上层系统提供服务接口
✧提供OCX控件,包含流媒体播放器功能
图11.SDK功能图
下图为SDK的核心部件解码库的模块设计图:
图12.解码示意图
2.6.功能需求与程序模块的关系
系统包含以下几大模块:
UI、SDK、解码库、中心控制单元(CMU)、数据接收单元(DRU)、视频适配网关(VCG)、流媒体转发服务器(MTU)
各项功能需求的实现同各块程序模块的分配关系,需求跟踪距阵如下所示:
图13.需求与模块关系图
2.6.1用户登陆
1、用户填写用户名、密码、验证码,点击登录,发起登录请求
2、SDK接收用户请求信息并透传给服务器
3、服务器中心控制单元(CMU)处理用户登录请求,检查用户信息是否是数据库中的有效信息
4、服务器中心控制单元(CMU)将登录结果返回给SDK
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查登录结果。
如果登录成功,根据用户的角色信息打开系统管理界面;如果登录失败,清空登录界面上的密码和验证码,提示错误信息。
图14.用户登陆
2.6.2用户管理
用户管理包括对用户的添加、删除、修改、查询及分配角色。
几个操作牵涉到的各模块交互流程是一致的。
图14.用户管理
添加用户:
1、管理员在客户端填写用户信息,发起用户添加请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户添加请求,将用户信息录入数据库
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户添加的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果信息添加成功,则返回并刷新用户列表;如果添加失败,当前界面上显示失败原因
删除用户:
1、管理员在客户端选中要删除的用户,发起用户删除请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户删除请求,将指定的用户信息从数据库中删除
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户删除的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果用户信息删除成功,则返回并刷新用户列表;如果添加失败,当前界面上显示失败原因
修改用户:
1、管理员在客户端选中要修改的用户,编辑用户信息,发起用户修改请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户修改请求,更新数据库中指定的用户信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果用户信息修改成功,则返回并刷新用户列表;如果添加失败,当前界面上显示失败原因
查询用户:
1、管理员在客户端点击用户管理,发起用户查询请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户查询请求,从数据库中查询用户信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果用户信息查询成功,则显示用户列表;如果添加失败,显示用户列表,且用户列表为空
分配角色:
1、管理员在客户端选中某个用户,为用户增加或移除角色,发起角色分配请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户角色分配请求,更新数据库中指定的用户关联的角色
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户角色分配的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果用户角色信息分配成功,则显示用户的角色列表;如果添加失败,显示用户的角色列表,并提示错误信息
2.6.3角色管理
角色管理包括对角色的添加、删除、修改、查询。
几个操作牵涉到的各模块交互流程是一致的。
图15.用户登陆
添加角色:
1、管理员在客户端填写角色信息,发起角色添加请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理角色添加请求,将角色信息录入数据库
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回角色添加的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果角色添加成功,则返回并刷新角色列表;如果添加失败,当前界面上显示失败原因
删除角色:
1、管理员在客户端选中要删除的角色,发起角色删除请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理角色删除请求,将指定的角色信息从数据库中删除
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回角色删除的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果角色信息删除成功,则返回并刷新角色列表;如果删除失败,显示角色列表,并提示失败原因
修改角色:
1、管理员在客户端选中要修改的角色,编辑角色信息,发起角色修改请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理角色修改请求,更新数据库中指定的角色信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回角色修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果角色信息修改成功,则返回并刷新角色列表;如果修改失败,当前界面上显示失败原因
查询角色:
1、管理员在客户端点击角色管理,发起角色查询请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理用户查询请求,从数据库中查询角色信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果角色信息查询成功,则显示角色列表;如果查询失败,显示角色列表,并提示失败原因
2.6.4机构管理
机构管理包括对机构的添加、删除、修改、查询。
几个操作牵涉到的各模块交互流程是一致的。
图16.机构管理
添加结构:
1、管理员在客户端填写机构信息,发起机构添加请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理机构添加请求,将机构信息录入数据库
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回机构添加的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果结构添加成功,则返回并刷新机构列表;如果添加失败,当前界面上显示失败原因
删除机构:
1、管理员在客户端选中要删除的机构,发起机构删除请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理机构删除请求,将指定的机构信息从数据库中删除
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回机构删除的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果机构信息删除成功,则返回并刷新机构列表;如果删除失败,显示机构列表,并提示失败原因
修改机构:
1、管理员在客户端选中要修改的机构,编辑机构信息,发起机构修改请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理机构修改请求,更新数据库中指定的机构信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回机构修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果机构信息修改成功,则返回并刷新机构列表;如果修改失败,当前界面上显示失败原因
查询结构:
1、管理员在客户端点击机构管理,发起机构查询请求
2、SDK接收用户请求并透传给服务器
3、服务器中心控制单元(CMU)处理机构查询请求,从数据库中查询机构信息
4、服务器中心控制单元(CMU)根据数据库操作的结果,向SDK返回用户修改的结果
5、SDK接收服务器返回的结果并透传给客户端
6、客户端检查操作结果。
如果机构信息查询成功,则显示机构列表;如果查询失败,显示机构列表,并提示失败原因
2.6.5设备管理
2.6.5.1添加设备
流程如下:
a)用户给前端设备分配域ID,然后在客户端预添加该设备
b)该设备通过第三方平台或者直接交互的方式向VCG注册
c)VCG根据域ID判断该设备已经预添加,如果已经添加则完成注册流程后,将该设备的基本信息更新到本地数据库。
d)VCG通知用户设备添加完成
图17.添加设备
2.6.5.2查询、修改、删除设备
流程如下:
a)用户给在客户端选定一个要删除或者修改的设备
b)SDK转发该设备管理指令给CMU
c)VCG收到该管理指令后进行相应的操作
d)VCG将操作结果返回给用户
图18.设备管理(查询、修改、删除)
2.6.5.3设备状态监控
流程如下:
a)客户端向ICE订阅设备变化事件
b)第三方平台/设备向VCG上报列表和状态信息
c)VCG检查列表和状态是否变化
d)如果发现列表或状态发送变化,VCG将该信息发布至ICE
e)客户端收到该变化信息后,更新本地列表
图19.设备状态监控
2.6.6设备控制
用户可以向指定设备发送控制信息,通过视频监控平台向目标设备发送设备控制命令,控制命令的类型包括球机/云台控制、远程启动、录像控制、报警布防/撤防、报警复位等,设备控制采用IETFRFC3428中的MESSAGE方法实现。
命令流程描述如下:
a)用户通过SDK请求对某个前端设备进行控制
b)SDK转发该指令给VCG
c)VCG向第三方平台/前端设备发送设备控制命令,该设备控制命令按照国标GBT28181,采用MESSAGE方法携带。
d)第三方平台/设备收到命令后返回200OK。
e)第三方平台/设备向VCG发送设备控制响应消息,设备控制响应命令采用MESSAGE方法携带。
f)VCG收到命令后返回200OK。
解析操作结果并响应客户端,流程结束。
图20.设备控制
2.6.7实况
2.6.7.1开始实况
1终端设备向中心控制单元(CMU)请求某前端设备实时视频;
2中心控制单元(CMU)查看当前系统已经注册的所有转发服务器的负载,选取一个负载最轻的转发服务器。
3.中心控制单元(CMU)向该转发服务器查询,是否此前端设备实时视频已经发送到媒体服务器某通道中。
4如果此前端设备实时视频还未发送到媒体服务器某通道中,协商媒体服务器分配通道准备接收实时流媒体数据;
5CMU协商此前端设备向转发服务器分配的通道发送实时视频;
6CMU协商转发服务器开始在相应通道中接收实时视频
7CMU响应发送请求的终端设备,资源准备完成,并发送给终端设备执行转发的转发服务器地址。
8终端设备请求转发服务器将对应流媒体转发至本地
9终端设备开始接收实时视频并解码显示。
图21.开始实况
2.6.7.2停止实况
1用户请求终端设备停止解码及显示,停止接收实时视频;
2终端设备向CMU发送指令,请求停止实况.
3终端设备请求转发服务器相应通道停止向此终端设备发送实时视频。
如果仍有其它终端设备与相应通道连接,转结果A
4媒体服务器释放相应通道,如果仍有其它终端设备通过其它媒体服务器与前端设备连接.转结果B
5CMU通知前端设备停止向媒体服务器发送实时视频。
6前端设备停止发送实时视频。
转结果C
结果:
A完成停止实况。
B完成停止实况,媒体服务器释放通道。
C完成停止实况,媒体服务器释放通道。
前端设备停止发送实时视频。
图22.停止实况
2.6.8录像查询
用户可以对指定设备上某个时间段的历史媒体文件进行检索。
文件检索主要用区域、设备、录像时间段、录像地点、录像内容为条件进行查询,用Message消息发送检索请求和返回查询结果,传送结果的Message消息可以发送多条。
文件检索请求和应答命令采用MANSCDP协议格式定义。
流程描述如下:
a)用户请求查询指定设备在指定时间段内的录像数据;
b)SDK将该请求转发给CMU,CMU将该指令转发至VCG;
c)VCG向第三方平台/设备发送目录查询请求Message消息,消息体中包含视音频文件检索条件。
d)第三方平台/设备向VCG发送200OK,无消息体。
e)第三方平台/设备向VCG发送查询结果,消息体中含文件目录,当一条Message消息无法传送完所有查询结果时,采用多条消息传送。
f)VCG收到查询结果后,向第三方平台/设备发送200OK,无消息体。
完成查询业务。
g)VCG将该查询结果由CMU、SDK响应给用户。
图23.录像查询
2.6.9录像下载
用户可以对指定设备上指定时间的历史媒体数据进行下载,并保存到本地硬盘。
历史媒体回放的会话描述信息采用SDP协议规定的格式,命令流程描述如下:
a)用户请求向SDK请求下载指定设备在指定时间段内的录像
b)SDK转发该指令给CMU,CMU再转发给VCG
c)VCG向第三方平台/设备发送Invite消息,消息头域中携带Subject字段,表明点播的视频源ID、分辨率、媒体流接收者ID、接收端媒体流序列号标识等参数,SDP消息体中S字段为“Playback”代表历史回放,U字段代表回