音视频 WebRTC 面试题 | 音视频面试题集锦 53 期

音视频 WebRTC 面试题 | 音视频面试题集锦 53 期

💡 原文中文,约5100字,阅读约需13分钟。
📝

内容提要

本文分享了WebRTC音视频面试的五个关键点:SFU架构、拥塞控制、QoS机制、安全连接和音画同步。重点讨论了Simulcast与SVC的区别、Google拥塞控制的协同工作、FEC与ARQ的选择策略、DTLS握手过程中的角色确定,以及通过RTCP实现音视频同步。

🎯

关键要点

  • WebRTC音视频面试的五个关键点:SFU架构、拥塞控制、QoS机制、安全连接和音画同步。
  • SFU架构中Simulcast与SVC的区别:Simulcast发送多路独立流,SVC发送一路包含多个层级的流。
  • Google拥塞控制(GCC)的两大引擎:基于延迟的控制器和基于丢包的控制器,协同工作以调整发送码率。
  • 在RTT很小的情况下优先选择ARQ,在RTT很大的情况下优先选择FEC,NACK、PLI和FIR的区别在于请求重传的方式。
  • DTLS握手过程中,ClientHello和ServerHello通过SDP中的a=setup属性确定角色,确保安全连接。
  • 接收端利用RTCP Sender Report将音频流和视频流对齐,实现音画同步,WebRTC默认音频为主。

延伸问答

WebRTC中SFU架构的Simulcast和SVC有什么区别?

Simulcast发送多路独立流,而SVC发送一路包含多个层级的流。Simulcast在弱网时可切换不同质量流,SVC则依赖基础层进行解码。

Google拥塞控制(GCC)是如何工作的?

GCC有两个引擎:基于延迟的控制器监测包到达时间,基于丢包的控制器根据丢包率调整码率,两者协同工作以优化发送码率。

在RTT很小和很大的情况下,FEC和ARQ的选择策略是什么?

RTT很小的情况下优先选择ARQ,因为重传快;RTT很大的情况下优先选择FEC,以避免重传延迟导致的播放问题。

DTLS握手过程中如何确定角色?

DTLS握手通过SDP中的a=setup属性确定角色,Offer端通常设置为actpass,Answer端选择active或passive来决定角色。

WebRTC如何实现音画同步?

接收端通过RTCP Sender Report将音频和视频流的时间戳映射到同一时间轴,调整播放以实现同步。

WebRTC中NACK、PLI和FIR有什么区别?

NACK请求重传丢失的包,PLI请求发送关键帧以恢复画面,FIR也请求关键帧但用于多流切换场景。

➡️

继续阅读