技术分享| 融合通讯的架构介绍

在融合通讯中,我们经常听到如下一些术语:MCU服务,SFU架构,MESH架构,星形网络等等。很多客户听到这些数据都是一脸雾水,经常说我们就是要一个可以把多种设备拉到同一个会议中,怎么搞这么复杂。今天我们就来聊聊这些术语都从哪来的,分别都应用在什么地方,我们anyRTC又是如何做的。

一.Mesh 架构

由于WebRTC的普及,人们对于音视频通讯已不再像以前那么陌生,WebRTC本身是一个P2P的通讯模型,P2P就是点对点通讯,借助STUN/TURN服务可以实现任意网络下的通讯。对于P2P的通讯模型最常用的架构就是MESH:即多个终端之间两两相互连接,形成一个类网状结构。

在这里插入图片描述

如图所示B1、B2、B3、B4 四个终端进行多对多通信,当 B1 想要共享媒体(比如音频、视频)时,它需要分别向 B2、B3 和 B4 发送数据。同样的道理,B2 想要共享媒体,就需要分别向 B1、B3 和 B4发送数据,依次类推。这种方案对于终端少的情况比较友好,但是随着终端的数量增加,对各终端的带宽要求就会很高。

二.SFU架构

可以看出MESH架构并不太适合大规模的组会的场景,而SFU架构就应运而生。

在这里插入图片描述

SFU(Selective Forwarding Unit)架构:是由一个服务器和多个终端组成,但与 MESH相比,SFU在服务端对一路流进行广播,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端,比如B1发布一路流到SFU,SFU就会把这路流分发给B2、B3 和 B4。同时SFU也不做音视频转码,对服务器的配置要求不高,实时性也很好,灵活度非常高,非常适合大规模的分发网络,这也就让SFU架构轻松成为目前市面上应用最普遍的架构。

三.MCU架构

这时候就有人会问,SFU架构已经看似完美了,其他架构就不需要了吧。答案非也,下面我们就介绍视频会议的鼻祖架构:MCU架构。

在这里插入图片描述

MCU(Multipoint Conferencing Unit)架构:由一个服务器和多个终端组成一个星形结构,与SFU不同,MCU是会做编解码和视频合成的。B1、B2、B3和B4将自己要共享的音视频流发送给服务器,服务器端会将在同一个房间中的所有终端的音视频流进行解码混屏,最终生成一个混合后的音视频流再发给各个终端,这样不同的终端就可以看到 / 听到其他终端的音视频了。由于增加了编解码,这会对服务器的配置要求非常高,所以MCU架构不太适合大规模分发,但这并不是说这个架构不重要。

MCU架构由于起步早,技术非常成熟,在硬件视频会议中应用非常广泛。同时MCU通过解码、再编码可以规避不同编解码设备的差异化,满足更多客户的集成和接入需求,提升用户体验和产品竞争力。还有就是接入MCU的终端都是一路上传一路接收,对于网络要求就不会那么高,用户体验相对较好。

四.总结

通过上面的介绍,我们了解了关于流媒体服务的这么多架构,anyRTC融合通讯系统,可以根据用户的实际需求交付不同的解决方案,这样才能更好的贴合实际的需求。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/34302.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web安全-Godzilla(哥斯拉)Webshell管理工具使用

为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 工具下载地址02 运行环境03 工具介绍04 使用案例 01 工具下载地址 https://github.com/BeichenDream/Godzilla点击页面右侧"releases",进入工具的版本下载页面。 在个人终端…

[Qt 教程之Widgets模块] —— QFontComboBox 字体选择器

Qt系列教程总目录 文章目录 3.2.1 创建 QFontComboBox3.2.2 成员函数1. 书写系统2. 字体过滤器3. 当前字体4. 信号 该控件用于选择字体,在一些软件中经常有类似控件,如下: Microsoft Office: Photoshop: QFontComboB…

QT调用glog日志流程

glog日志库是Google开源的轻量级的日志库,平时在开发过程中经常要使用到日志,本篇记录Qt项目使用glog日志库的记录。 1.首先下载cmake,Download | CMake 安装设置环境变量,检查安装情况 2.下载glog源码 git clone https://git…

JMeter录制HTTPS脚本解决办法

目录 前言: 背景 解决方法 前言: 在使用JMeter录制HTTPS脚本时,可能会遇到一些问题,例如SSL证书错误或请求失败等。解决这些问题的一种常见的方法是通过安装并信任服务器的SSL证书来解决。 背景 在对某项目进行脚本录制的时…

Django框架-5

路由系统 通过URL(Uniform Resource Locator,统一资源定位符)可以访问互联网上的资源——用户通过 浏览器向指定URL发起请求,Web服务器接收请求并返回用户请求的资源,因此可以将URL视为用户与服务器之间交互的桥梁。 …

Scrapy框架之MongoDB通过配置文件管理参数--Linux安装MongoDB--图形管理工具

目录 MongoDB通过配置文件 问题 解决方案 步骤 提示 Linux安装MongoDB 环境 下载依赖与安装包 解压安装 MongoDB GUI管理工具 独立软件GUI软件 Robo 3T使用 VSCode集成GUI插件 MongoDB通过配置文件 问题 启动MongoDB时,编写参数太麻烦 解决方案 通过配…

MATLAB App Designer基础教程 Matlab GUI入门(四)

坐标轴控件 axis 函数绘图方法技巧 作用: 绘制函数图像显示图像(jpg png tiff) 学习内容 App designer中 plot 和命令行中的 plot函数的不同;如何在坐标轴空间中显示两个函数图像;智能缩进 (Ctrl I&am…

Linux——进程通信之共享内存

目录 一. 回顾上文 二.共享内存 1.定义 2.特点: 3.实现步骤: 如下为成功链接共享内存使用权的完整步骤: 4.函数介绍 4.1shmget函数 4.1.2参数介绍 4.2ftok函数: 4.2.1参数介绍 关于ftok(); shmget();函数的代码实验…

学习Kotlin~类

类 类的field 类定义的每一个属性,kotlin都会产生一个filed,一个setter(),一个getter()field用来存储属性数据,不能直接定义,kotlin会封装,保护它里面数据,只暴露给getter和setter使用只有可变属性才有setter方法需要…

探索 Jetson Nano 为 myCobot 280 机械臂提供的强大功能

探索 Jetson Nano 为 myCobot 280 提供的强大功能,机器人技术的一个有前途的组合 介绍 近年来,科学技术的发展给我们的生活带来了许多新的产品和服务,包括机器人在各个领域的集成。机器人已经成为我们生活中必不可少的一部分,从…

Vim 自定义配色

本文首发于我的个人博客,欢迎点击访问,无广告节面简洁! 最近重新开始学习Vim装上了WSL2,但发现Windows Terminal和vim的组合还是有很多问题需要解决的,由其默认的配色在某些状态下根本看不清字体,所以折腾…

Nginx | 苹果电脑Mac安装和验证Nginx服务过程记录

common wx:CodingTechWork,一起学习进步。 引言 本文主要总结如何在Mac电脑上进行Nginx服务的安装,重点讲解使用brew命令进行安装和验证的过程及问题记录。 安装步骤 安装过程记录 查看nginx信息 首先使用命令brew info nginx进行本机ng…

《Pytorch深度学习和图神经网络(卷 1)》学习笔记——第七章

这一章内容有点丰富,多用了一些时间,实例就有四五个。 这章内容是真多啊!(学完之后又回到开头感叹) 大脑分级处理机制: 将图像从基础像素到局部信息再到整体信息 即将图片由低级特征到高级特征进行逐级计…

基于群组实现从 Azure AD 到极狐GitLab 的单点登录

目录 配置单点登录 在 Azure AD 中创建企业应用 SAML 基础配置 配置 Azure “Attributes & Claims” 配置用户同步 在极狐GitLab 创建 SCIM Token 配置 Azure Provisioning Azure 手动用户预配 测试单点登录 Azure 自动用户同步 配置群组同步 配置 SAML 群组链…

打jar包

pom文件指定打包的类型是jar&#xff0c;并指定启动主类 <packaging>jar</packaging><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>…

什么条件下会出现死锁,如何避免?

文章目录 一、什么是死锁二、产生死锁的原因&#xff1a;三、如何避免死锁&#xff1a; 一、什么是死锁 死锁&#xff0c;简单来说就是两个或者两个以上的线程在执行过程中&#xff0c;去争夺同一个共享资源导致相互等待的现象。如果没有外部干预&#xff0c;线程会一直处于阻塞…

uniapp封装门票等票务样式

先看效果图 ticketpage组件引用后&#xff0c;根据父级背景颜色改变镂空的颜色,空组件只有中间镂空的样式&#xff0c;上面是插槽heaer,下面内容是插槽content&#xff0c;可以自定义自己的内容和样式。我实现的最终效果是用的uview组件&#xff0c;如果复现需要项目引入。可…

Nginx负载均衡与动静分离

一、Nginx负载均衡&#xff1a; 1.概述&#xff1a; Nginx是一款http服务器软件&#xff0c;支持高达50000个并发连接数的响应。 &#xff08;1&#xff09;拥有强大的处理静态资源的能力。 &#xff08;2&#xff09;运行稳定。 &#xff08;3&#xff09;CPU&#xff0c…

【Unity3D编辑器开发】Unity3D中初次尝试使用PropertyDrawer属性

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 前段时间一直比较忙&#xff0c;没有时间更新博客&#xff0c;…

2011年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP、RHCE、CCNP RS、PEST 3等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&…