
Simulcast(联播)
技术以不同质量同时发送同一视频流的多个版本的做法。
什么是 Simulcast?
Simulcast(“simultaneous broadcast”的缩写,即同步广播)是 WebRTC 中使用的一种技术,客户端以不同的分辨率和比特率对同一视频流进行多次编码和传输。例如,客户端可能同时发送三个流:一个 720p(高质量)、一个 360p(中等质量)和一个 180p(低质量)。
这项技术对多方视频会议至关重要,它允许媒体服务器(SFU)根据每个参与者的可用带宽和设备能力,有选择性地转发最合适的流版本。
为什么 Simulcast 很重要
在没有 Simulcast 的群组通话中,如果一个参与者的带宽较差,发送方可能被迫为所有人降低质量,或者带宽差的人根本无法看到视频。这将“最低公分母”问题施加给了整个群组。
有了 Simulcast:
- 用户 A(高带宽)接收 720p 流。
- 用户 B(低带宽)接收 180p 流。
- 用户 C(移动设备)接收 360p 流以节省电量和流量。
每个人都能获得其连接能够承受的最佳质量,而不会影响其他人。
Simulcast 与 SVC 的对比
可伸缩视频编码(SVC)是 Simulcast 的替代方案。Simulcast 发送独立的流,而 SVC 发送一个具有多个层的单一流(基础层和增强层)。
虽然 SVC 在带宽效率上可能更好,但 Simulcast 在 WebRTC 中通常更受青睐,因为它对发送方的计算开销更小(编码),并且对丢包更具鲁棒性,因为各个流是独立的。
在 WebRTC 中的工作方式
启用 Simulcast 后,浏览器的编码器通常产生三个层(空间层)。SFU 接收所有三个层。当接收方订阅一个视频轨道时,SFU 决定转发哪个层。SFU 可以即时切换层——例如,如果用户最小化了视频或其网络状况恶化,SFU 会立即切换到较低质量的流。