7

我们正在使用licode MCU 将视频从 Google Chrome 流式传输到服务器并进行记录。这里棘手的部分是只涉及一个 Chrome 浏览器,因此服务器端代码必须处理向客户端发送反馈。

我们添加了服务器端代码,每 5 秒向客户端发送一次 REMB(带宽)数据包。这会导致客户端增加比特率,以便视频质量良好。

我们对 PLI 数据包做了类似的事情,试图提高视频质量。录制的视频有块状伪影,看起来不太好。当前代码每 0.8 秒发送一个 PLI,这会导致客户端发送一个关键帧(全帧视频)。这修复了糟糕的视频质量,因为它强制使用关键帧,但是当出现丢包(wifi 网络)时,它很快又变坏了。

我的问题是应该如何使用这些 PLI 数据包?

我认为 PLI 的意思是:

PLI    - Picture Loss Indication
4

1 回答 1

3

您的应用程序应至少发送三种 RTCP 反馈:

  • 大约每秒一个准确的接收方报告 (RFC 3550),向发送方指示丢包率和抖动率;这将导致发送者根据链接特性调整其吞吐量;
  • 丢失数据包时的通用 NACK (RFC 4585);这将通过使发送方重新发送任何丢失的数据包来避免损坏;
  • 一个 PLI (RFC 4585),只要它在给定的时间间隔内没有看到关键帧,例如两秒。

仅当 REMB 增长过快时才需要发送 REMB 以限制吞吐量,例如,如果接收器报告中提供的反馈不准确。

于 2020-12-26T16:02:09.423 回答