GB28181协议明确规定了GB28181服务端可以与前端设备进行双向对讲,完整的GB28181平台是不仅有web配置,前端设备注册,还支持GB28181客户端登录的,比如视跃科技的realgbs平台,所以GB28181的对讲首先是GB28181客户端与前端设备的对讲,然后为了方便,同时也增加了web无插件与前段设备对讲。完整的GB28181对讲流程图如下:
客户端发起对讲就不详细描述了,他属于标准的GB28181的部分,大家可以查阅GB28181-2016标准文档,这里重点讲一下web无插件的与前端对讲的实现。
html5浏览器支持从浏览器端声音的采集,但是为了安全性,html5标准要求必须使用https加密的协议,所以采集音频的页面必须是https的,就是http的openssl加密版,当然视跃realgbs已经支持并自动部署了。
html5采集音频是试用navigator.getUserMedia对象,然后创建音频上下文环境对象,最后通过音频参数创建音频采集对象,最终以回调形式将音频裸数据抛出,代码如下:
// 请求麦克风
navigator.getUserMedia = navigator.getUserMedia
// 创建一个音频环境对象
var audioContext = window.AudioContext
var context = new audioContext()
var config = {}
config.channelCount = 1 //GB28181都是单通道音频
config.numberOfInputChannels = 1
config.numberOfOutputChannels = 1
config.sampleBits = 16
config.sampleRate = 8000
// 创建缓存,用来缓存声音
config.bufferSize = 1024
// 将声音输入这个对像
var audioInput = context.createMediaStreamSource(stream)
后面的回调会把数据抛出来,抛出来后通过websocket发送给平台,同时根据实时的音量变化,我们简单的做了一个音柱,这样至少让用户觉得你采集到声音啦,如下图(演示地址):
其实web和平台的对接是采用http/https协议的,是GB28181协议之外的,所以这个灵活性也比较高,大家可以点击下载免费试用。
更多信息
e-mail: yujesoft@163.com
tel: 13971177602
web:www.founu.com