WebRTC 'goog-remb' 和 'transport-cc' SDP 线路

WebRTC 'goog-remb' and 'transport-cc' SDP lines

我想知道这条 SDP 线的含义是什么,因为我正在尝试获得可能的最平滑帧率,丢包率在 5% 到 10% 之间。

我不知道的台词是: a=rtcp-fb:100 goog-remb a=rtcp-fb:100 传输-cc

我不知道为什么 firefox(例如)正在删除 "transport-cc" 功能,即使我必须解码不完整的视频帧,我是否想让流帧速率平滑?

此致,希望有人能帮助我 :)

古斯塔沃·加西亚 (Gustavo García) 写了一篇关于此的博客 post,名为 Bandwidth Estimation in WebRTC (and the new Sender Side BWE)

总结一下:goog-rembtransport-cc都是拥塞控制机制,goog-remb being an older method and transport-cc是较新的方法.

我最好的猜测是 firefox 正在剥离 transport-cc,因为 firefox 尚未采用 transport-cc 更改。根据我的经验,Chrome 在 webrtc 更改方面始终领先于 Firefox。

在有损网络中,这些拥塞控制算法可以告诉发送方降低发送比特率。降低发送比特率可以减少损失(以牺牲质量为代价)。然而,如果网络总是有 10% 的损耗,比如嘈杂的 WiFi 网络,您仍然可能会遇到视频帧解码问题。

处理视频解码失败是 vp8/h264 视频编码参数的功能,而不是拥塞控制的功能。正如我所说,拥塞控制可能有助于减少丢失(如果您的网络被 WebRTC 数据包淹没),但如果您只有一个有损网络(例如,糟糕的 wifi),拥塞控制算法只会降低质量而不会改善解码失败.

google-remb和transport-cc只能处理拥塞,如果你想在5%到10%的丢包率下获得最流畅的帧率,你必须区分不同的情况:

  1. 由于网络拥塞导致数据包丢失

使用联播或 svc 空间可伸缩性,选择低分辨率

  1. 修复了由于 wifi 设备或其他原因造成的数据包丢失

使用nack和fec,增加冗余度