searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

多人通话架构简介

2024-09-29 09:55:16
7
0

常见架构

目前常用的多人通话架构主要为Mesh方案、SFU结构、MCU结构。

MCU结构

MCU 架构是非常成熟的技术,在硬件视频会议中应用非常广泛。MCU 架构是非常成熟的技术,在硬件视频会议中应用非常广泛,比较有名的项目是 FreeSWITCH。该方案由一个服务器和多个终端组成,如下图所示,各终端将自己要共享的音视频流发送给媒体服务器,服务器端将会混合在同一个房间中的所有终端的音视频流,最终生成一个混合后的音视频流再发给各个终端。实际上服务器端就是一个音视频混合器, 要进行解码、混流、重新编码的操作,因此这种方案服务器对CPU的消耗巨大,已逐步被淘汰。

MCU 的优势:

  • 技术非常成熟,有硬件MCU和软件MCU在硬件视频会议中应用非常广泛,但已逐步被淘汰。
  • 作为音视频网关,通过解码、再编码可以屏蔽不同编解码设备的差异化,满足更多客户的集成需求,提升用户体验和产品竞争力。
  • 一致性好,将多路视频混合成一路,所有参与人看到的是相同的画面,客户体验非常好。
  • 带宽成本低

MCU 的缺点:

  • 重新解码、编码、混流都需要大量的运算,对CPU资源的消耗很大。
  • 重新解码、编码、混流会带来延迟。
  • 由于机器资源耗费很大,所以MCU所能提供的容量有限,一般十几路视频就会达到上限。

 

SFU结构

SFU架构方案也是由一个服务器和多个终端组成,但SFU 不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端。实际上可以理解为一个音视频路由转发器,目前 WebRTC 多方通信媒体服务器都是SFU架构。这种架构灵活性能高,搭配视频的 Simulcast 模式或 SVC 模式,使其成为更多公司的选择。

SFU的优势:

  • 数据包直接转发,不需要编码、解码,对 CPU 资源消耗很小。
  • 直接转发也极大地降低了延迟,提高了实时性。
  • 灵活性,能够更好地适应不同的网络状况和终端类型。目前 SFU 实现都支持 SVC 模式和simulcast模式,用于适配 WiFi4G 等不同网络状况,以及 PhonePadPC 等不同终端设备。

SFU的缺点:

  • 带宽成本高(若n个用户通话,对于每个客户端,存在1条上传和n-1条下载)。
  • 数据包直接转发,参与人观看多路视频的时候可能会出现不同步;相同的视频流,不同的参与人看到的画面也可能不一致
  • (混流)参与人同时观看多路视频,在多路视频窗口显示、渲染等会带来很多麻烦,尤其对多人实时通信进行录制,多路流也会带来很多回放的困难。总之,整体在通用性、一致性方面比较差。

 

Mesh架构

Mesh结构是一个网状结构,多个终端之间两两进行连接。这种方案对各终端的带宽要求比较高。

Mesh的优势:

  • 不需要服务器中转数据,现有 WebRTC 通信模型就可以实现NAT穿透,不需要单独开发媒体服务器。
  • 能够充分利用客户端的带宽资源。
  • 能够节省服务器的资源,控制成本。

Mesh的缺点:

  • 参与人越多,占用的带宽就越大。除此之外
  • 对 CPU、Memory 等资源具有极大的考验
  • 如果有部分用户的网络不能实现 NAT 穿越,但还想让这些人与其他人互通,需要更可靠的穿透方案。

 


多个PeerConnection与单个PeerConnection多个SSRC的区别

多人通话方案中通常有两种协商方案,建立多个PeerConnection和建立单个PeerConnection但包含多个SSRC。licode/kurento/janus 基于多PeerConnection,Mediasoup和jitsi基于单PeerConnectionSSRC方案。他们的区别在于:

  • peerConnection易于加入和删除,断开或增加peerconnection即可,不用重新协商
  • peerConnection可以连接到不同的目的地
  • peerConnection中,每个RTPconnection有自己的NAT,增加网络、内存、CPU开销
  • peerConnectionWeb-internal视图混乱
  • peerConnection中,不同peerconnetion ssrc值可能相同,跟踪和调试增加困难
0条评论
0 / 1000
李****秀
4文章数
0粉丝数
李****秀
4 文章 | 0 粉丝
李****秀
4文章数
0粉丝数
李****秀
4 文章 | 0 粉丝
原创

多人通话架构简介

2024-09-29 09:55:16
7
0

常见架构

目前常用的多人通话架构主要为Mesh方案、SFU结构、MCU结构。

MCU结构

MCU 架构是非常成熟的技术,在硬件视频会议中应用非常广泛。MCU 架构是非常成熟的技术,在硬件视频会议中应用非常广泛,比较有名的项目是 FreeSWITCH。该方案由一个服务器和多个终端组成,如下图所示,各终端将自己要共享的音视频流发送给媒体服务器,服务器端将会混合在同一个房间中的所有终端的音视频流,最终生成一个混合后的音视频流再发给各个终端。实际上服务器端就是一个音视频混合器, 要进行解码、混流、重新编码的操作,因此这种方案服务器对CPU的消耗巨大,已逐步被淘汰。

MCU 的优势:

  • 技术非常成熟,有硬件MCU和软件MCU在硬件视频会议中应用非常广泛,但已逐步被淘汰。
  • 作为音视频网关,通过解码、再编码可以屏蔽不同编解码设备的差异化,满足更多客户的集成需求,提升用户体验和产品竞争力。
  • 一致性好,将多路视频混合成一路,所有参与人看到的是相同的画面,客户体验非常好。
  • 带宽成本低

MCU 的缺点:

  • 重新解码、编码、混流都需要大量的运算,对CPU资源的消耗很大。
  • 重新解码、编码、混流会带来延迟。
  • 由于机器资源耗费很大,所以MCU所能提供的容量有限,一般十几路视频就会达到上限。

 

SFU结构

SFU架构方案也是由一个服务器和多个终端组成,但SFU 不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给房间内的其他终端。实际上可以理解为一个音视频路由转发器,目前 WebRTC 多方通信媒体服务器都是SFU架构。这种架构灵活性能高,搭配视频的 Simulcast 模式或 SVC 模式,使其成为更多公司的选择。

SFU的优势:

  • 数据包直接转发,不需要编码、解码,对 CPU 资源消耗很小。
  • 直接转发也极大地降低了延迟,提高了实时性。
  • 灵活性,能够更好地适应不同的网络状况和终端类型。目前 SFU 实现都支持 SVC 模式和simulcast模式,用于适配 WiFi4G 等不同网络状况,以及 PhonePadPC 等不同终端设备。

SFU的缺点:

  • 带宽成本高(若n个用户通话,对于每个客户端,存在1条上传和n-1条下载)。
  • 数据包直接转发,参与人观看多路视频的时候可能会出现不同步;相同的视频流,不同的参与人看到的画面也可能不一致
  • (混流)参与人同时观看多路视频,在多路视频窗口显示、渲染等会带来很多麻烦,尤其对多人实时通信进行录制,多路流也会带来很多回放的困难。总之,整体在通用性、一致性方面比较差。

 

Mesh架构

Mesh结构是一个网状结构,多个终端之间两两进行连接。这种方案对各终端的带宽要求比较高。

Mesh的优势:

  • 不需要服务器中转数据,现有 WebRTC 通信模型就可以实现NAT穿透,不需要单独开发媒体服务器。
  • 能够充分利用客户端的带宽资源。
  • 能够节省服务器的资源,控制成本。

Mesh的缺点:

  • 参与人越多,占用的带宽就越大。除此之外
  • 对 CPU、Memory 等资源具有极大的考验
  • 如果有部分用户的网络不能实现 NAT 穿越,但还想让这些人与其他人互通,需要更可靠的穿透方案。

 


多个PeerConnection与单个PeerConnection多个SSRC的区别

多人通话方案中通常有两种协商方案,建立多个PeerConnection和建立单个PeerConnection但包含多个SSRC。licode/kurento/janus 基于多PeerConnection,Mediasoup和jitsi基于单PeerConnectionSSRC方案。他们的区别在于:

  • peerConnection易于加入和删除,断开或增加peerconnection即可,不用重新协商
  • peerConnection可以连接到不同的目的地
  • peerConnection中,每个RTPconnection有自己的NAT,增加网络、内存、CPU开销
  • peerConnectionWeb-internal视图混乱
  • peerConnection中,不同peerconnetion ssrc值可能相同,跟踪和调试增加困难
文章来自个人专栏
音视频后端分享
4 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
1