[发明专利]一种基于webrtc实现多方音频通话的方法以及系统有效
申请号: | 201610055005.3 | 申请日: | 2016-01-27 |
公开(公告)号: | CN105743889B | 公开(公告)日: | 2019-05-17 |
发明(设计)人: | 刘敏 | 申请(专利权)人: | 福建星网智慧科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08;G10L19/20 |
代理公司: | 福州市鼓楼区京华专利事务所(普通合伙) 35212 | 代理人: | 林晓琴 |
地址: | 361000 福建省厦门市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 webrtc 实现 多方 音频 通话 方法 以及 系统 | ||
本发明提供一种基于webrtc实现多方音频通话的方法,发起端与n个参与端发起通话,建立n路语音通路;发起端开辟缓冲区,发起端将n个参与端的音频编码数据存入缓冲区,并采集发起端的音频编码数据;其中音频编码数据为16bit的语音帧;将n+1个音频编码数据扩展为32bit的数据,分别存储到n+1个变量中;将n+1个变量逐一累加得到和值;发起端将所述和值减去所要发送的参与端的变量得到一发送值;将所述发送值重新转换为16bit的音频帧,通过发起端将该音频帧打包发送至对应的参与端;本发明还提供一种基于webrtc实现多方音频通话的系统,节约了资源,并使得更多人参与通话。
技术领域
本发明涉及一种基于webrtc实现多方音频通话的方法以及系统。
背景技术
WebRTC是一项在浏览器内部进行实时视频和音频通信的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得一项技术。它是一系列技术的组合,能在端到端之间实现实时、低延时的通信,可以用于视频和音频会议以及游戏。虽然通常都使用WebSockets来实现实时通信,但WebRTC却尝试通过直接在端到端之间建立连接来显著地降低延迟。
一对一的视频和音频通话使用WebRTC来实现是最简单的。但多方通话较难实现,如图1所示,一种方法是所有参与者两两相连,但由于WebRTC终端的CPU占用率过高和带宽的限制,这种方法不能供超过5-6人使用。如图2所示,另一种方法是使用一个外设服务器,聚集所有的流,以合并成单一流的方式将其广播到所有其他参与者,但这种方法往往需要在终端之外再搭建一个中间服务器,造成资源的浪费。
发明内容
本发明要解决的技术问题,在于提供一种基于webrtc实现多方音频通话的方法以及系统,节约了资源,并使得更多人参与通话。
本发明之一是这样实现的:一种基于webrtc实现多方音频通话的方法,包括如下步骤:
步骤1、发起端与n个参与端发起通话,建立n路语音通路;
步骤2、发起端开辟缓冲区,发起端将n个参与端的音频编码数据存入缓冲区,并采集发起端的音频编码数据;其中音频编码数据为16bit的语音帧;
步骤3、将n+1个音频编码数据扩展为32bit的数据,分别存储到n+1个变量中;
步骤4、将n+1个变量逐一累加得到和值;
步骤5、发起端将所述和值减去所要发送的参与端的变量得到一发送值;
步骤6、将所述发送值重新转换为16bit的音频帧,通过发起端将该音频帧打包发送至对应的参与端;
步骤7、发起端重复步骤5和步骤6,直至发起端将所有对应的音频帧发送至对应的参与端。
进一步地,所述步骤1进一步具体为:发起端与n个参与端发起通话,建立n路语音通路,并为发起端和n个参与端设置一权重因子,所述权重因子小于等于1。
进一步地,所述步骤2进一步具体为:发起端开辟n个环形缓冲区,每个所述环形缓冲区设有一读取指针和写入指针,发起端将n个参与端的音频编码数据分别往所述参与端对应的环形缓冲区填充,之后将各环形缓冲区的写入指针指向距离填充完成时间最近的语音帧,并采集发起端的音频编码数据;将各个音频编码数据乘以其对应的权重因子;其中音频编码数据为16bit的语音帧。
进一步地,所述步骤2与步骤3之间还包括一步骤a:
在读取环形缓冲区中的语音帧前校准读取指针的位置,将读取指针前移一位;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福建星网智慧科技股份有限公司,未经福建星网智慧科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610055005.3/2.html,转载请声明来源钻瓜专利网。