视频会议的几种通信架构

news/2024/10/24 0:30:29/

1. Mesh:网状结构,会议中client两两相连,不需要Server, 缺点client上行带宽要求多,加会人数越多,client系统资源要求越高。

2.MCU:星形结构,Server接收每个共享端的音视频流,经过解码、与其他解码后的音视频进行混流、重新编码,之后再将混好的音视频流发送给会议中的所有人。对Server要求高,解码、混流、编码导致延时,消耗大量CPU。

3. SFU:Server接收client的音视频流,根据需要转发给其它client。WebRTC的多方通信大多数采用此方案。支持大会。配合Simulcast模式或者SVC模式,可适应不同的网络状况和终端类型。直接转发也极大地降低了延迟,提高了实时性,对CPU资源消耗较小。

Simulcast模式:client向SFU同时发送多路不同分辨率的视频流(如 720P、360P)。而 SFU 可以将接收到的三路流根据各终端的情况而选择其中某一路发送出去。

SVC模式:可伸缩视频编码SVC(Scalable Video Coding)技术是H.264标准的一个扩展。与 Simulcast 模式的同时传多路流不同,SVC 模式是在视频编码时做“手脚”。它在视频编码时将视频分成多层——核心层、中间层和扩展层。上层依赖于底层,而且越上层越清晰,越底层越模糊。在带宽不好的情况下,可以只传输底层,即核心层,在带宽充足的情况下,可以将三层全部传输过去。如PC1共享视频流,编码使用 SVC 分为三层发送给 SFU。SFU 根据接收端的情况,发现 PC2 网络状况不错,于是将 0、1、2 三层都发给 PC2;发现 Phone 网络不好,则只将 0 层发给 Phone。这样就可以适应不同的网络环境和终端类型了。

参考:

https://www.cnblogs.com/yiyi17/p/12076657.html
SFU、MCU 或 P2P:这些 WebRTC 架构之间有什么区别? - 实时互动网
 


http://www.ppmy.cn/news/904254.html

相关文章

PC企业微信登录提示版本过低怎么办?

最近有几个客户向我反馈企业微信登录提示版本过低,我开始也吃惊,4.0的版本怎么会过低呢?于是我自己登录上去试试,但是能成功登录的! 后来经过详细查看发现,他手机端加入13个企业微信,于是我猜测…

部署来客推开源版,微信自动授权登录一直转圈,也不能点击登录

问题:微信自动授权登录一直转圈,也不能点击登录 截图: 出错原因有: 1、小程序 AppID 与 小程序Appsecret 这两个填错了,如果你是测试APPID的话也不行 2、小程序代码那里的uri填错了 function getUri(){return http…

微信游戏奇迹暖暖选取服务器失败,奇迹暖暖微信区为什么登不上_奇迹暖暖微信区登不上解决办法-66街机网...

奇迹暖暖微信区登不上解决办法由66游戏网小编为大家带来,奇迹暖暖微信昨日不少小伙伴发现自己怎么都登录不上去,不知道怎么回事,自己的网络显示的是好的,奇迹暖暖微信区为什么登不上?下面来看看吧! 奇迹暖暖…

深度学习ai学习方向如何规划,算法竞赛,机器学习,搭建环境等答疑

目录 1了解人工智能的背景知识 2 补充数学或编程知识 3 熟悉机器学习工具库 4 系统的学习人工智能 5 动手去做一些AI应用 1了解人工智能的背景知识 一些虽然存在但是在研究或者工业上不常用的知识,为自己腾出更多的时间来去学习,研究。 人工智能里…

Linux--获取最近一次的进程退出码:echo $?

举例&#xff1a; #include <stdio.h> int main() { printf("hello world,pid: %d,ppid: %…

静态输出调节

1.理论部分 15. SISO反馈控制器设计 (6)&#xff1a;输出调节-静态反馈 Output Regulation - 知乎 (zhihu.com) 上述博客已经写的很好了&#xff0c;过多描述 2.仿真实验 3.参考理论 首先通过18式求解出X和U&#xff0c;然后设计一个让原系统初始稳定的控制律Kx&#xff0c;…

Linux 系统编程-开发环境(三)

目录 16 vim 16.1 vi简介 16.1.1 命令行模式 16.1.2 文本输入模式 16.1.3 末行模式 16.2 vim基础操作 16.3 vim分屏操作 16.4 vim打造IDE 16.4.1 简洁版IDE 17 gcc 18 toolchain 19 静态库和共享库 19.1 静态库 19.2 共享库 19.2.1 基础班使 19.2.2 就业班使用…

C语言进阶之文件操作及改造通讯录

文件操作 1.为什么使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名 3. 文件的打开和关闭3.1 文件指针3.2 文件的打开和关闭 4. 文件的顺序读写4.1 顺序读写函数介绍 5. 文件的随机读写5.1 fseek5.2 ftell5.3 rewind 6. 文本文件和二进制文件7. 文件读取结束的判定7.1…