关于webrtc视频会议的解决方案
以我的经验来看视频会议分两种模式:网状模型,星型
1、网状模型
所谓的网状模型就是参加会议的人中每两个人建立一个点对点的连接。
比如:一个会议室有三个人A,B,C 基于网络模型就需要这样:
1、A和B建立连接
2、B和C建立连接
3、A和C建立连接
这样一个三个人的会议就需要建立三条连接 计算方法:3*(3-1)/2
同理:4个人的会议需要建立的连接数4*(4-1)/2 = 6 ,5个人的会议就需要 5*(5-1)/2 = 10
适用场景:这种模型只适合3-4个人参加会议的情况,因为参加会议的人每增加一个,就会增加n-1个连接(n表示参加会议的人数),这样终端的负载会急剧增加。
note: 会议人数每增加一个人,每个终端就会增加一个链接,n个人参加的会议,每个终端就需要建立n-1个连接
2、星型模型
星型模型又分为:通过服务器合成转发和通过某一个终端转发两种情况。
a 、 在3个人的时候也这个使用如下的模型:
1、A,B,C参加会议
2、A 和 B 建立连接
3、B 和 C 建立连接
4、B 转发A的音视频给C,B转发C的音视频给A
这种情况在B的情况的设备性能较高,而A和C的性能较弱的情况下使用,以B为桥梁实现3方通话,这样减轻了服务器的负担。 适用场景:这种模型只适合3个人的会议。
b、通过服务器合成转发
每一个参加会议的人都把自己采集到的音视频发到服务器端,经过服务器的合成之后,分发给每一个参加会议的人。
如下模型:
1、A,B,C参加会议
2、A,B,C分别和服务器建立连接
3、A,B,C把采集到的视音频发往服务器
4、服务器把A,B,C发过的音视频合成之后发到A,B,C
这样无论多少人参加会议,每一个与会的终端都只建立了一个连接,把负载放在服务器端,适用场景:适合4个人以上的会议
这里面有问题:不要让服务器把终端发出的数据再发送回来,如服务器不应该把A发送到服务器的音视频再发送给A,因为那样做的话A就会听(看)到自己的声音(视频),那样做是不合理的
不合理的地方请广大网友指正:243203950
关于webrtc视频会议的解决方案的更多相关文章
- TeleMCU视频会议之Android版本号WebRTC client支持
本文原创自 http://blog.csdn.net/voipmaker 转载注明出处. 最新版本号TeleMCU 添加了Android手机端WebRTC视频会议能力,Android手机安装Chro ...
- 为什么大家都在用WebRTC?
WebRTC代表网络实时通信.它是一种非常令人兴奋,强大且具有高度破坏性的尖端技术和标准.自从WebRTC诞生以来,80%的浏览器都开始支持它.有数据显示,2017年~2021年期间,WebRTC市场 ...
- WebRtc VoiceEngine代码解析
WebRtc中VoiceEngine可以完成大部分的VOIP相关人物,包括采集.自动增益.噪声消除.回声抑制.编解码.RTP传输.下边我们通过代码来解析Voe中处理流程: 创建VoiceEngine和 ...
- webrtc前景如何
首先WebRTC是什么? WebRTC --- Web browsers with Real-Time Communications (RTC). WebRTC是一个免费.开放的项目.使web浏览器通 ...
- 基于webRTC技术 音频和视频,IM解
由于原来的文章 http://blog.csdn.net/voipmaker 转载注明出处. 基于WebRTC技术可实现点对点音视频.即时通信.视频会议.最新的系统组件包含: TeleICE NAT ...
- 利用jmeter对WebRTC应用进行压力测试(java)
利用jmeter对WebRTC应用进行压力测试(java) 说明:WebRTC是一款开源的多人即时视频API,与一般的http请求不同,webrtc应用实际压力主要是码流 最近负责了一个WebRTC的 ...
- 5G时代,视频会议的未来
过去,2G打开了了移动互联网天下,3G促成了即时通信,诞生了QQ.微信等巨头,4G 带来了短视频兴起,字节跳动等公司崛起.2.3.4G的出现促成了移动互联网10年繁荣.而5G的出现,也会促成至少10年 ...
- 阿里云亮相2019联通合作伙伴大会,边缘计算等3款云产品助力5G时代产业数字化转型
4月23日,2019中国联通合作伙伴大会在上海正式开幕,本次大会以“合作不设限,共筑新生态”为主题,涉及5G.边缘计算.云计算.物联网.新媒体.人工智能.互联网化等各领域超过600家合作伙伴与3万名各 ...
- 如何用 Electron + WebRTC 开发一个跨平台的视频会议应用
在搭建在线教育.医疗.视频会议等场景时,很多中小型公司常常面临 PC 客户端和 Web 端二选一的抉择.Electron 技术的出现解决了这一难题,只需前端开发就能完成一个跨平台的 PC 端应用.本文 ...
随机推荐
- python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)
1.元组()元组跟列表一样,但是不能增删改,能查.元组又叫只读列表2个方法 一个 count 一个 index2.字典{}字典是通过key来寻找value因为这里功能比较多,所以写入了一个Code里面 ...
- objective-c static变量的使用总结
在java中,我们经常使用的是单例模式,这些设计模式在ios开发中也比较常用,最近也在考虑使用在ios开发中使用单例模式 在objective-c中,需要在.m文件里面定义个static变量来表示全局 ...
- JS操作cookie
JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求.cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由Ja ...
- phpexcel 导出 科学计数问题
今天在用php做excel导出的时候遇到了一个小问题,如图 单元格默认格式为常规格式,当数值过长时就会变成科学计数. 解决方法: 如果输出的excel的$data数据是手动添加的,那就在对应值得后面添 ...
- ssl双向认证和单向认证原理
有朋友在搞一个项目,周末有聊到一些安全性的东西,很自然会想起https,但https究竟如何实施,其原理又是什么? 基于ssl,一般的应用都是单向认证,如果应用场景要求对客户来源做验证也可以实现成双向 ...
- 源码阅读 etherum-block.py
def calc_difficulty(parent, timestamp): config = parent.config offset = parent.difficulty // config[ ...
- 原生js封装Ajax
[转载请注明出处] 1 /** * @fileoverview ajax请求公用组件 * @author Limo * @date 2015/08/07 * Native package ajax m ...
- 关于phpmyadmin的小笔记
默认情况下,phpmyadmin联系的是localhost. 如果此时hostname不是localhost而是其它什么的话,在phpmyadmin是不能连接上的,虽然在命令行mysql -h loc ...
- [转]Android - 文件读写操作 总结
转自:http://blog.csdn.net/ztp800201/article/details/7322110 Android - 文件读写操作 总结 分类: Android2012-03-05 ...
- LeetCode Plus One Linked List
原题链接在这里:https://leetcode.com/problems/plus-one-linked-list/ 题目: Given a non-negative number represen ...