方案介绍
对车辆进行实时定位跟踪;
对车内外情况进行实时视频监控;
统计设备上报的报警数据及设备的录像文件;
查看车辆历史轨迹录像回放;
车辆行驶数据报表分析;
核心内容
本软件主要涉及到了八个模块,定位模块、监控模块、安全模块、回放模块、设备模块、统计模块、企业模块、统计模块,采用自主研发的技术及架构,使监控车载设备变的简单易操作,可随时监控车辆位置,查看车内监控,监听车内讲话,远程与车内对讲,远程对车载设备进行升级等
🔱 技术架构
本系统主要由数据采集、消息分发、流批计算、数据存储、数据统计这几个部分组成,车机通过国部标协议连接到平台,平台采用Netty服务与车机进行数据接收传输,接收数据并按协议解析写入到kafka,由Flink程序来进行入库处理车机上报的轨迹数据和报警数据,最后生成可视化报表进行展示。具体的数据流转过程如下图:
💠 核心流程
数据采集
消息分发
流批计算
数据存储
数据统计
设备连接协议
基于Netty实现 JT/T808部标协议的消息处理,实现对终端设备上传的数据解码、对用户下发到终端的消息实现解码;严格按照字节顺序和长度写入,不产生额外的描述性信息。
设备信息处理软件实现编码、解码流程
终端注册
终端向平台发送消息告知其安装在哪一辆车上,终端在未注册的情况下先进行注册,注册后获得鉴权码,鉴权码可在终端鉴权时使用,平台验证组成编码消息返回给终端应答。
终端注册处理流程
编码、解码
编码:将发送的二进制数据转换成交通部JTT808车载终端通信协议规定的格式的二进制数据流,编码功能由编码器(encoder)完成。
解码:根据交通部JTT808车载终端通信协议的格式,对二进制数据进行解析,解码功能由解码器(decoder)完成。
编解码流程
JT808协议消息构造与下发
客户端用户通过监控平台对指定终端下发消息,将消息构造成JTT808部标协议二进制文件并下发到车载终端。
音视频处理协议
音视频处理软件是根据交通部JTT/1078-2016道路运输车辆车载终端视频通信协议开发的软件服务,完成对音视频传输的数据对接,到转码、封装为新形式音视频,以提供给用户实时播放。
主要要完成对RTP消息包的解析,从中分离出音频或视频的数据体,并且完成解码或重装封装的工作,并提供音视频流的订阅,以供给用户前端来播放。
音视频的传输与播放一般流程:
用户前端:比如浏览器网页或是手机APP
WEB服务器:承接用户端的操作,并与1078指令服务器打交道,是一个中间桥梁
1078协议网关服务器:在808的基础上,增加了对1078协议指令支撑的服务器端
音视频处理服务器:当车载终端传输音视频数据上来时,需要完成对协议的解析,以及流媒体的转播等
车载终端:安装在车辆上,连接到我们的1078协议网关服务器上来,将车辆的一些实时数据传输到服务器端,并且能够响应服务器的下行指令
播放流程:
1. 用户前端选择车辆、以及要调阅的视频通道,向后端的WEB服务器发起调阅请求
2. WEB服务器通知1078指令服务器,向目标车载终端的连接通道上,发送9101指令,通知目标车载终端开始传输音视频
3. 车载终端在接收到9101指令后,通过指令消息体里所包含的流媒体服务器的IP与端口,建立一个新的连接,开始传输音视频
4. 流媒体服务器将收到车载终端发过来的音视频数据包,完成解析并且通过各种流转换,重编码、封装成可供前端播放的音视频流
5. 用户前端开始播放流媒体服务器所提供的音视频流
3.1 RTP数据解析
4.1 音视频编码与封装
车载终端传输过来的音频或视频,用户前端的浏览器或APP不一定能够直接播放,通常需要封装为其它形式。
1.读取输入:通过输入的形式,去拆解输入数据源的封装形式,数据编码等。
2.音视频分离:对于比如mp4这一类的封装媒体文件,它是一个输入,同时具备音频和视频的,它将在接下来的处理流程上,分为多个stream,然后接下来是我们要对这每一个stream进行处理,比如转码等。
3.解码:如果我们有需要进行音视频处理,比如为音频增加回声,那么将可能会在这一个环节上,完成从封装格式到原始音视频数据解码的过程,为接下来的音频滤镜处理提供数据支持。
4.滤镜处理:在这一环节上,可以对每一个流进行处理,比如音频可以增加回声,视频可以增加图像处理滤镜等。
5.编码:可能会在这一步进行A编码到B编码的转换过程。
6.音视频整合:在这一步完成流的合并的过程。
7.输出:它跟输入差不多,输出需要声明封装形式,输出的目标,可以是一个或是多个,然后可以是文件、stdout、网络协议等等等等。