前言
交通部与2016年10月份推出了JT/T 1078-2016标准,全称是《道路运输车辆卫星定位系统视频通信协议》。该标准将改变以往两客一危车辆的视频监控设备通信协议都是设备厂商私有协议的局面。
JT/T 1078协议又是对JT/T808协议的拓展,在808协议的基础上增加了对视频设备通信协议的拓展。所以如果我们之前做过808的部标协议,再着手做1078协议就会容易理解很多。
2018年时候,我本打算将基于部标1078视频监控服务完成,奈何个人精力实在有限,而且这块也不是我们的主营业务,就暂时搁置了,后面手头上的事情忙完后,就着手处理此事,其中遇到很多的难点问题,其中流媒体服务器便是最麻烦的问题所在。
流媒体实现
整体的架构
我下面用一个简单的图形来说明我当时实现的想法:
说明
首先在我们服务器网关上增加了对1078协议的一些音视频指令,应用于服务器网关之间走的是TCP通讯,做法与我们之前做的808是一样的。
当我们需要观看试试音视频时候,应用会给设备下发一个指令,该指令将用于打通设备与流媒体之间的通讯。设备返回与流媒体通讯成功的指令后,应用程序开始向流媒体进行拉去当前要观看的视频流。
视频流已经支持FLV与HLS,可以根据需要自行配置就可以了。
补充说明:这里我将实时视频与历史音视频回放分开,主要是为了将来可靠性,担心视频转成MP4进行存储时候影响流媒体整个的性能。
功能
1、目前支持FLV与HLS两张视频流拉去方式
2、支持H.264视频解码(目前市面上的视频监控设备都是H.264编解码)
3、支持G.711A,ADPCMA,AAC等常见的音频格式,如果有其他格式的设备可以与我联系我这边将其集成,目前没有找到其他格式的音频机器
4、支持主动断开设备传输:在没有客户端拉流的情况下,支持主动通知设备断开音视频的继续传输从而达到节约设备流量的目的
5、支持200路以上实时观看,目前测试情况,对内存与CPU的占用并不明显,只要网络允许就可以接入更多路同时观看