关于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 端应用.本文 ...
随机推荐
- iOS开发中获取WiFi相关信息
iOS 开发中难免会遇到很多与网络方面的判断,这里做个汇总,大多可能是与WiFi相关的. 1.Ping域名.Ping某IP 有 时候可能会遇到ping 某个域名或者ip通不通,再做下一步操作.这里的p ...
- django对数据查询结果进行排序的方法
在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序. 那么,使用 order_by() 这个方法就可以搞定了. ? 1 2 >>> Publis ...
- Java this关键字
this 关键字有三个应用: 1.this调用本类中的属性,也就是类中的成员变量 2.this调用本类中的其他方法 3.this调用本类中的其他构造方法,调用时要放在构造方法的首行 来看下面这段代码: ...
- spdk intel
前言 继为SDN和NFV领域带来福音的DPDK之后,英特尔于2015年9月开始,逐步将为NVMe等新一代存储规范优化的Linux性能工具包SPDK(Storage Performance Develo ...
- Apache安装及配置ssl
目录 1.windows安装 软件准备 安装apache 开启ssl(Https访问) 打开httpd.conf,解除下面配置的注释 查看ssl模块使用哪一个配置文件 配置https虚拟主机 简单配置 ...
- 学习vulkan的几个有用的网址
<ignore_js_op> 1)一个权威向导网站:https://vulkan-tutorial.com/2)Imagination图形组织官网http://imgtec.eetrend ...
- mySql 注入攻击
注入攻击 1.原理: a.只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入; b.字符串拼接和没有判断用户输入是否合法------>导致用户可以玩填字游戏-----> ...
- Leetcode: Word Squares && Summary: Another Important Implementation of Trie(Retrieve all the words with a given Prefix)
Given a set of words (without duplicates), find all word squares you can build from them. A sequence ...
- struts自定义拦截器配置
配置自己的拦截器可以先参照下系统的拦截器是怎么配置的,首先打开struts-default.xml搜索下interceptor:系统里的拦截器有很多,拦截器都是放在堆栈里的,系统引用的是默认堆栈, & ...
- Cassandra数据类型:
Cassandra在CQL语言层面支持多种数据类型[12]. CQL类型 对应Java类型 描述 ascii String ascii字符串 bigint long 64位整数 blob ByteBu ...