【书籍阅读】WebRTC学习记录1

WebRTC学习记录1

WebRTC的网络拓扑

在这里插入图片描述

Mesh结构

每个参与者都向其他所有参与者发送媒体流,同时接收其他所有参与者发送的媒体流。
每个参与者以P2P的方式相互连接,数据交换基本不经过中央服务器(部分无法使用P2P的场景,会经过TURN服务器)。
需要 N-1个上行链路和N-1个下行链路,通常只能支持6人以下的实时互动场景。
由于没有媒体服务器的参与,Mesh网络结构难以对视频做额外的处理,不支持视频录制、视频转码、视频合流等操作。

MCU结构

MCU(Multipoint Control Unit)是一种传统的中心化网络结构,参与者仅与中心的MCU媒体服务器连接。MCU媒体服务器合并所有参与者的视频流,生成一个包含所有参与者画面的视频流,参与者只需要拉取合流画面。
需要1个上行链路和1个下行链路。
可以支持多人同时在线进行音视频通信,比较适合多人实时互动场景。
MCU负责复杂操作,服务器端压力较大,需要较高的配置。同时由于合流画面固定,界面布局也不够灵活。

SFU结构

SFU(Selective Forwarding Unit)仍然有中心节点媒体服务器,但是中心节点只负责转发,不做合流、转码等资源开销较大的媒体处理工作,所以服务器压力会小很多。
需要1个上行链路和N-1个下行链路。
SFU服务器和TURN服务器不同,TURN服务器仅仅是为WebRTC客户端提供的一种辅助数据转发通道,在无法使用P2P的情况下进行透明的数据转发,TURN服务器不具备复制、转发媒体数据的能力。
SFU对于参与实时互动的人数也有一定的限制,适用于在线教学、大型会议等场景。

Simulcast联播

早起的SFU只是将媒体流从发送端转发给接收端,无法独立为不同参与者调整视频码率,其结果是发送者㤇自行调整码率,以适应接收条件最差的参与者,而那些网络环境较好的参与者只能接收相同质量的媒体流,别无选择
Simulcast对SFU进行了优化,发送端可以同时发送多个不同质量的媒体流给接收端。SFU能够根据参与者的网络质量,决定转发给参与者哪种质量的媒体流。
因为发送者需要发送多个不同质量的媒体流,所以会显著增加发送设备的载荷,同时占用发送者上行带宽资源。

可伸缩视频编码

可伸缩视频编码(Scalable Video Coding,SVC)是Simulcast的改进技术。它使用分层编码技术,发送端只需要发送一个独立的视频流给SFU,SFU根据不同的层,解码出不同质量的视频流,并发送给不同接收条件的参与者。
SVC中多个层次的媒体流相互依赖,较高质量的媒体数据需要较低质量的媒体数据解码。SFU接收到SVC编码的内容后,根据客户端的接收条件选择不同的编码层次,从而获得不同质量的媒体流。
空间可伸缩性:包括多个不同分辨率层
时间可伸缩性:包括多个不同帧率层
质量可伸缩性:包括多个不同码率层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值