如何在SFU中合并RTCP接收报告?

问题描述 投票:0回答:1

如果我有一个 SFU 将媒体轨道传输到 10 个客户端,现在我从所有 10 个客户端收到一个 RTCP.RR 数据包(接收器报告)。我应该向媒体轨道的发送者发送什么。

我应该将全部 10 份接收方报告转发给发送方吗?我应该合并它吗?如果我应该合并它,我该怎么做?我应该什么时候发送?

单个媒体轨道的接收器报告有以下 7 个字段。请参阅RFC 3550

  • ssrc
  • 派系失败
  • 累计丢包数
  • 收到的最高序列号
  • 抖动
  • 时间戳
  • 自上次 SR 以来有延迟

我的想法:

  • ssrc:永远一样
  • 丢失分数:最大值
  • 丢包:最大值
  • 序列号:???最低值
  • 抖动:???中等价值
  • 时间戳:最大值
  • 延迟:最大值

但是,在所有 10 个客户端都向其发送接收者报告的发件人报告之后,我应该等待多长时间?例如,如果某个客户端的接收报告数据包丢失了?

webrtc jitter rtcp sfu
1个回答
0
投票

SFU 路由数据包但终止 RTCP。接收器报告应该报告您的 SFU 接收到的内容,而不是接收器接收到的内容,这是两个不同的事情。

有一个例外,那就是分数损失值。 这会驱动 opus FEC 百分比(请参阅来自 slack 人员的旧帖子]),因此应该是每个接收器报告的最大值。 对于联播视频,它应该是较高空间层上的最小损失和最低空间层上的最大损失,因为这可能会驱动编码器的行为,类似于 Opus 的做法(取决于 BWE 机制,这可能是通过而不是分数损失发生的)和目标比特率)

其结果之一是基于时间戳和 DSLR 字段计算的 RTCP 往返时间。它不会描述E2E延迟,而是描述客户端和SFU之间的RTCP延迟。有人可能会说,您可以采用最长的接收端延迟,从而获得 E2E 延迟的上限。

https://datatracker.ietf.org/doc/rfc7667/ 提供了该主题的精彩概述。

© www.soinside.com 2019 - 2024. All rights reserved.