背景分析

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

  1. EasyPlayerPro Windows播放器进行本地对讲喊话音频采集功能实现

    需求 在安防行业应用中,除了在本地看到摄像机的视频和进行音频监听外,还有一个重要的功能,那就是对讲. EasyPlayerPro-win为了减轻二次开发者的工作量,将本地音频采集也进行了集成: 功能特 ...

  2. 如何用FFmpeg API采集摄像头视频和麦克风音频,并实现录制文件的功能

    之前一直用Directshow技术采集摄像头数据,但是觉得涉及的细节比较多,要开发者比较了解Directshow的框架知识,学习起来有一点点难度.最近发现很多人问怎么用FFmpeg采集摄像头图像,事实 ...

  3. EasyDarwin开源摄像机访问EasyCamera中海康摄像头语音对讲和云台控制转发实现

    转自:http://blog.csdn.net/yanzhuomin/article/details/52887311 EasyCamera中关于摄像头SDK的调用都集中在EasyCameraSour ...

  4. EasyDarwin开源流媒体云平台之语音对讲功能设计与实现

    本文由EasyDarwin开源团队成员Alex贡献:http://blog.csdn.net/cai6811376/article/details/52006958 EasyDarwin云平台一直在稳 ...

  5. Android开发--仿微信语音对讲录音

    原文地址:http://www.2cto.com/kf/201502/378704.html 自微信出现以来取得了很好的成绩,语音对讲的实现更加方便了人与人之间的交流.今天来实践一下微信的语音对讲的录 ...

  6. iOS语音通话(语音对讲)

    中间参考了别人的Demo,下载地址不记得了. 因为项目需要做一个语音对讲功能,其实说白了就是类似QQ的语音通话,但是资料少之又少,研究了好久,才跟同事弄出一个粗略的版本.我记性不好,所以来记录一下,也 ...

  7. js的视频和音频采集

    js的视频和音频采集 今天要写的,不是大家平时会用到的东西.因为兼容性实在不行,只是为了说明下前端原来还能干这些事. 大家能想象前端是能将摄像头和麦克风的视频流和音频流提取出来,再为所欲为的么.或者说 ...

  8. 一种高灵敏度自带DSP降噪算法的音频采集解决方案

    背景调研   随着AI渗透到各行各业,人们对语音的需求也越来越大,最近一两年,各种AI音频设备如雨后春笋般冒出.各种智能AI设备的推出,意味者市场对低成本的音频采集设备越来越多.针对这种情况,我们开发 ...

  9. web音频流转发之AudioNode

    前言 上一章地址: web音频流转发之音频源下一张地址:web音频流转发之音视频直播在这一章我说几个我们需要用到的音频处理模块也就3个吧,包括我们转发流是需要用到的核心模块.更多模块请看MDN,或者看 ...

  10. Waud.js – 使用HTML5降级处理的Web音频库

    Waud.js 是一个Web音频库,有一个HTML5音频降级处理方案. 它允许您利用Web音频API为你的Web应用程序控制音频功能.在不支持Web音频API的非现代浏览器使用HTML5音频降级方案. ...

随机推荐

  1. TypeScript(TS)JavaScript(JS)中的所有循环方法

    for循环: for (let i = 0; i < array.length; i++) { // 循环体 } for-of循环: for (const element of array) { ...

  2. vue_模版语法、计算属性和监视、样式绑定

    vue引入 <html lang="en"> <head> <meta charset="UTF-8"> <title ...

  3. Windows链接创建神器:一键生成符号链接与硬链接的智能批处理工具【NuGet】

    [自用工具]NuGet 或各项目中共用部分目录或文件,利用DOS符号链接解决重复文件的多份拷贝,起到节省磁盘空间的作用. 告别复杂的命令行操作!这款增强版批处理脚本让Windows链接创建变得简单.直 ...

  4. MathQuill

    前言 跟 MathJax.KaTex 不同,mathquill 是一个真正意义上的公式编辑器. 一边输入一边渲染,输出可以是 Tex,但是对于复杂的公式,这种输入方式还是有很大的局限性,输入过程还是需 ...

  5. 从零开始实现简易版Netty(三) MyNetty 高效的数据读取实现

    从零开始实现简易版Netty(三) MyNetty 高效的数据读取实现 1. MyNetty 数据读取处理优化 在上一篇博客中,lab2版本的MyNetty实现了基本的reactor模型和一个简易的p ...

  6. 中大ACM个人赛 ABC题题解

    摸完签到题就跑了 A - Maximum Subrectangle 题意:有个C矩阵,C[i][j] = a[i]b[j], 问你在\(\displaystyle\sum_{i=x1}^{x2}\) ...

  7. Codeforces Global Round 10 ABCD题解

    A. Omkar and Password 题意:每次可以将相邻不相等的两项替换成他们的和(原来的两个数变成一个数),问最短能变成多短. 思路:其实会发现,如果这个序列里但凡存在一对a[i]!=a[i ...

  8. java group Layout 组框架

    简介 https://netbeans.org/features/java/swing.html 里面有一个mattise 专门用来生成布局代码 GroupLayout code 代码先不贴了

  9. 阿里巴巴为什么禁止超过3张表join?

    前言 2017年,<阿里巴巴Java开发手册> 中一条规定掀起技术圈巨浪:"禁止超过三张表进行join操作". 时至今日,这条规范仍被众多企业奉为圭臬. 但背后原因你真 ...

  10. Timeseries Prediction Demo base on LSTM

    示例代码 import json import time import datetime import requests as req import numpy as np import pandas ...