对于企业而言,数字化建设是一项全面的、系统的工程,不仅仅只是部署几套软件、实现办公自动化而已,尤其是大型企业,数字化的建设往往涉及到了服务器、硬件、软件、网络等一系列内容。如门禁系统和人力、认证等系统集成,实现人脸识别、自动打卡等,监控系统的摄像头设备集成,通过统一的监控分析进行查看,并能实现跨组织、跨区域的集中展现等。
最近在进行一个数据中台项目,根据客户需求需要将客户各个景区的监控设备进行统一视频采集,再通过数据分析平台搭建视频大屏,实现各个景区监控视频的实时查看,并能按照所属景区的不同进行切换,建立一个实时的、统一的视频监控中心。
1总体说明
数据中台方案包括了MDM、ESB、DAP三个产品,主要实现企业基础数据、业务数据的采集汇聚与分析展现,实现企业核心业务指标的采集与分析,为企业运营分析、决策制定提供数据支持。
1.1集成架构
数据中台方案主要包括MDM、ESB、DAP产品,通过产品的组合和集成实现数据的采集、加工、汇总、分析。
在数据中台方案中,核心的要点在于数据集成,包括了主数据和业务数据。主数据集成:将各个源头系统的基础数据通过ESB进行数据同步,汇总到MDM平台中进行全生命周期治理,为下游系统提供统一的基础数据,治理后基础数据再为数仓提供维度数据支持;业务数据汇聚:通过ESB数据总线将各个业务系统的核心指标数据进行抽取,并汇总到数仓中形成度量数据,并按照主题域结合维度数据构建数仓模型,基于数仓模型进行分析模型的构建,并通过可视化组件进行数据的可视化呈现,同时基于数仓模型可以对外提供数据服务,为下游系统提供业务数据支持。
1.2需求分析
本次视频流的集成主要是将现场摄像头采集的视频数据实时推送到数据中台服务器中,再由数据中台的分析大屏进行视频的实时播放,同时根据所处现场以及服务器的不同,在分析大屏中构建菜单,可以根据菜单进行位置以及服务器的选择,并能同时播放同一服务器下的多个摄像头的视频影像。
1.在数据中台中搭建环境进行摄像头视频的接收;
2.规划集成方案实现现场摄像头的视频流推送至数据中台服务器;
3.数据中台构建视频大屏,可以进行视频的播放,并且可以同时播放多个画面;
4.视频大屏具备切换功能,可以对摄像头现场以及服务器进行切换。
1.3技术方案
根据实际的业务需求,以及整体规划,主要从以下几方面进行技术选型考虑:
1.基于项目需求构建视频大屏,对现场摄像头进行实时视频采集和播放;
2.考虑后续与UMC产品的融合,能够基于UMC组件进行容器化部署;
3.支持Web端的交互,直接基于浏览器、H5等方式进行视频播放;
4.支持国标GB28181,并能基于GB28181进行格式转换,实现Web端播放,以及视频流的推、拉交互;
5.综合考虑,采用SRS4.0流媒体服务器平台进行视频流的集成中转。
2环境搭建
SRS是一个开源的流媒体服务器工具,安装部署相对简单,主要的工作是配置相关的服务器参数,实现视频流的推拉操作。
2.1SRS部署
1.介质下载:
http://ossrs.net/srs.release/releases/download.html
2.上传压缩包到服务器:
3.解压安装包:
4.解压后进入该目录下:
5.编译、安装:
6.启动运行(后台启动):
7.浏览器输入地址访问(打开防火墙的8080端口):
2.2参数配置
SRS相关配置文件,主要调整conf文件夹中push.gb28181.conf的内容:
其中:
1.rtc_server:服务器信息,需要将candidate改为服务器IP,由于视频流采用外网对接,建议改为外网IP;
2.vhost:开启rtmp_to_rtc(on),实现rtmp到rtc的转换;
3.http_hooks:视频推流、拉流的校验流程,通过ESB流程进行服务器IP和token的校验。
2.3测试验证
通过SRS提供的web端地址,通过OBS进行推流,并通过SRS自带的Web端口地址进行播放。
1.OBS推流配置:
2.开始推流:
3.Web端播放:
3接口开发
接口开发主要是针对DAP进行视频大屏配置时页面的视频播放以及相关服务器菜单获取的流程开发过程。
3.1数据存储
在主数据平台扩展一类主数据,用于存储视频采集设备(摄像头)的相关信息。
1.建立景区主数据用于对采集设备进行区分,以及提供DAP的菜单展现:
2.在景区配置相关的IP白名单:
3.2接入鉴权
扩展视频推拉的鉴权接口,对推拉视频的相关地址进行鉴权处理。
1.IP校验
服务端在推流时调用hooks中配置的ESB接口,根据入参中的IP获取本次调用时的IP地址,并对IP地址与主数据中景区存储的IP进行校验,如果校验通过返回值为“0”,如果未通过返回值为“1”。
(1)采集端推流时通过http_hooks调用推流校验,入参为on_publish的入参格式:
(2)获取IP地址后与主数据中配置的白名单进行比对,如果不包含返回错误信息,如果包含返回正确信息。
IP通过:
IP未通过:
具体流程如下:
(1)获取入参的数据信息;
(2)获取MDM中的白名单地址;
(3)将IP与白名单中的地址进行匹配;
(4)针对匹配结果:成功/失败进行返回值的处理。
2.拉流校验
当DAP播放时,SRS根据hooks中配置的地址调用ESB接口,根据入参的param获取tokenId,通过tokenId去获取Redis中存储的视频流播放地址,如果获取到了视频流地址返回值为“0”,如果未通过返回值为“1”。
(1)DAP在播放时,SRS通过http_hooks调用拉流校验,入参格式:
(2)通过入参的tokenId从缓存中获取视频流地址,能获取则返回正确信息,如果获取不到则返回错误信息:
调用成功的返回信息:
调用失败返回信息:
具体流程如下:
(1)DAP拉流时获取拉流的入参信息;
(2)截取校验的tokenId;
(3)读取缓存中存储的播放地址;
(4)针对匹配结果:成功/失败进行返回值的处理。
3.3参数获取
开发DAP视频流拉取的访问地址,用于DAP调用拉取视频。
1.获取景区
服务地址如下:
http://localhost:9090/StreamingMedia/services/GetParameters/getparametersScenicspot
(1)入参:组织ID
(2)出参:
(3)如果没有查询到对应的景区信息,返回空值:
具体流程如下:
(1)获取传入的组织ID;
(2)根据组织ID获取景区信息;
(3)根据查询的景区信息进行返回值的构造。
2.获取服务
服务地址如下:
http://localhost:9090/StreamingMedia/services/GetParameters/getparametersServices
(1)入参为景区ID:
(2)出参:
(3)如果没有获取到对应的服务器信息,返回空值:
具体的流程图如下:
(1)DAP调用接口时入参为景区ID;
(2)获取景区ID后通过景区ID获取该景区中的设备服务器;
(3)构造设备服务器以及对应的返回值返回给DAP。
3.播放地址
服务地址如下:
http://localhost:9090/StreamingMedia/services/GetParameters/getparametersStreaming
(1)入参是服务器ID:
(2)出参:
(3)如果没有获取到对应的播放地址信息,返回空值:
具体流程如下:
(1)首先通过服务器ID获取sip;
(2)通过服务器的ID调用流媒体服务器的通道接口,具体调用方式如下:
(3)根据输出的播放地址对count进行赋值,如果没有查询到数据则返回相应信息;
(4)如果查询到了数据进入循环的Redis数据写入,每个播放地址生成一个对应的tokenId并将tokenId做为key将数据写入到Redis中;
(5)返回相应的结果。
4效果展现
视频的采集最终会在DAP的视频大屏中呈现,在DAP预置有视频播放组件,可以通过读取视频流的方式进行视频播放。
4.1环境处理
由于DAP的视频播放是通过Web端播放的,而Web端播放视频是通过WebRTC的方式调用SRS的相关接口实现的,所以在DAP配置视频播放时需要开启相关的防火墙端口,主要端口包括:
1.1935:tcp端口,视频推流时访问SRS服务器的端口;
2.1985:tcp端口,视频播放时调用SRS的相关API的端口;
3.8080:tcp端口,SRS的Web端控制台访问端口,前期测试打开,通过DAP播放时不需要;
4.5060:udp端口,sip的udp监听端口,用于实现视频流的推送;
5.8090:udp端口,rtc服务的监听端口,用于DAP视频播放时的视频流访问。
4.2模拟推流
通过OBS的方式进行模拟,将本地视频推送的服务器上用于DAP的播放。
4.3视频播放
配置DAP的视频展现组件,用于页面视频的播放。
5总结分析
本次开发配置工作一方面是对项目工作的完善,另一方面也是在完善优化产品的相关功能,使产品在实际项目中能够满足更多的业务场景和需要,提升产品的完备性和全面性。
5.1技术方案
数据中台方案是数通畅联的核心方案之一,主要通过MDM、DAP、ESB三个产品的组合实现企业基础数据、业务数据的汇聚整合,构建企业数据仓库,实现不同主题域的指标分析,并以图形图表的方式进行可视化展现,满足企业领导层对于企业业务、数据的实时查看,及时发现问题以及制定决策。而本次项目工作的完善也是对数据中台方案的一个补充,使数据中台方案能够支撑更多的业务场景。
5.2个人总结
对于视频摄像头的接入在之前的项目中有涉及到,只不过之前是在Portal门户和DAP中分别引入摄像头,实现摄像头视频的播放,并且之前采用的方式是直接引入插件的方式,即在页面中引入摄像头厂商提供的第三方插件,通过地址访问的方式直接连接摄像头进行播放。而本次技术方案采用SRS流媒体服务器的方式,相对更加全面和细致,同时基于GB28181的国标进行对接,使得配置更加灵活、更加标准,并且能够满足不同厂商、不同设备的接入需要,提高整体对接的统一化和标准化。
5.3优化完善
本次对接考虑到对接验证的需要以及和厂商的联测测试,所以采用的是直接在服务器上部署SRS服务,然后通过修改配置文件的方式实现视频流的集成对接,后续这种对接方式还需要进一步优化。本次之所以选择SRS服务器就是考虑到SRS可以进行容器化,后续需要基于UMC平台将SRS封装成组件,基于UMC组件进行容器化部署,使得SRS的部署、配置、维护过程更加方便和灵活。
每次项目中出现新的需求都是一次非常好的产品优化机会,所以在实施项目时,对于项目中的需要要充分分析考虑,考虑是否可以纳入到产品的范围,从而实现对产品的优化升级。同时在选择相关的组件和工具时也要考虑和现有方案、体系的融合,使解决方案更加全面、更加灵活,便于后续产品培训类项目的实施交付。