GB28181实现摄像头语音对讲 - web音频采集调用示例

Posted kumukim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GB28181实现摄像头语音对讲 - web音频采集调用示例相关的知识,希望对你有一定的参考价值。

背景分析

近年来,国内视频监控应用发展迅猛,系统接入规模不断扩大,涌现了大量平台提供商,平台提供商的接入协议各不相同,终端制造商需要给每款终端维护提供各种不同平台的软件版本,造成了极大的资源浪费。各地视频大规模建设后,省级、国家级集中调阅,对重特大事件通过视频掌握现场并进行指挥调度的需求逐步涌现,然而不同平台间缺乏统一的互通协议。在这样的产业背景下,基于终端标准化、平台互联互通的需求,GB/T28181应运而生。

GB28181 web无插件播放

通过GB28181实现WEB端无插件播放已经有现成做的非常好的产品LiveGBS:https://www.liveqing.com/docs/products/LiveGBS.html 。这里主要介绍基于LiveGBS如何实现摄像头语音对话、喊话功能。主要一步是观看端要实现语音采集并回传给摄像头端。具体流程见https://blog.csdn.net/jinlong0603/article/details/99719962

前端页面语音采集示例

   function  talkStart(e) 
      if(this.recorder) 
        return;
      
      var $target = $(e.currentTarget);
      LiveRecorder.get((rec, err) => 
        if(err) 
          alert(err);
          return
        
        this.muted_bak = this.muted;
        this.$refs["player"].setMuted(true);
        $target.addClass("active");
        this.recorder = rec;
        this.recorder.start();
      , 
        sampleBits: 16,
        sampleRate: 8000,
        pcmCallback: pcm => 
          if(this.bAudiosendError) return;
          var reader = new window.FileReader();
          reader.onloadend = () => 
            var base64 = reader.result;
            var base64 = base64.split(',')[1];
            this.bAudioSending = true;
            $.get("/api/v1/control/talk", 
              serial: this.serial,
              code: this.code,
              audio: base64,
            ).error(() => 
              if(!this.bAudioSendError) 
                this.bAudioSendError = true;
                setTimeout(() => 
                  this.bAudioSendError = false;
                , 10000);
              
            ).always(() => 
              this.bAudioSending = false;
            )
          
          reader.readAsDataURL(pcm);
        
      )
    
    function talkStop() 
      if(this.recorder) 
        this.recorder.stop();
        this.recorder = null;
        $(this.$el).find(".fa-microphone.active, .ptz-talk.active").removeClass("active");
        this.$refs["player"].setMuted(this.muted_bak);
        return;
      
    ,

以上是关于GB28181实现摄像头语音对讲 - web音频采集调用示例的主要内容,如果未能解决你的问题,请参考以下文章

iOS语音对讲(三)FFmpeg实时解码AAC并播放PCM

LiveGBS通过GB28181协议接入海康大华华为等各厂家硬盘录像机NVR 或者带存储的摄像头实现WEB直播及录像查询回放

监控摄像头GB28181转RTMPFLVHLSRTSP多种格式实现网页嵌入播放

解释

GB28181协议视频安防平台EasyGBS国标配置查询步骤及信令示例

GB28181实现摄像头网页无插件直播回放过程中设备状态分析