gpt4 book ai didi

c++ - Opus 中的 "useinbandfec is a unidirectional receive-only parameter"是什么意思?

转载 作者:行者123 更新时间:2023-11-28 01:41:54 27 4
gpt4 key购买 nike

我正在尝试用 C++ 实现 Opus 转码器,但我有一些概念性问题。至于useinbandfec这个参数,不太明白“unidirectional receive-only parameter”的意思,写在RFC7587, section 7.1 :

The "useinbandfec" parameter is a unidirectional receive-onlyparameter.

例如,Alice 正在调用 Bob。 Alice 使用 useinbandfec=1 的 Opus 编解码器,而 Bob 不使用 Opus。因此,两者之间应该有一个Opus转码器。如果是这样,我该如何配置 Opus 编码器和解码器的设置?

对于Alice->Bob,需要opus_decode(),第5个参数(fecFlag)应该传什么值?至于需要 Opus 编码器的 Bob->Alice,应该在 opus_encoder_ctl() 中用 OPUS_SET_INBAND_FEC() 发送什么值?

谢谢!

最佳答案

参数useinbandfec

此参数表示编码器将附加信息添加到流中以恢复丢失的数据包。它是如何工作的,当编码器对第 N+1 个数据包进行编码时,它会添加一些关于数据包 N 的信息,如果解码器支持恢复,这些信息对解码器很有用。

如果解码器不支持恢复,则此信息无用且浪费带宽。

单向只接收参数含义

这意味着如果您在 session 描述符 (SDP) 中指定它,那么此参数描述接收方的能力并建议发送方使用或不使用入站 FEC

问题:

1

For example, Alice is calling Bob. Alice uses Opus codec with useinbandfec=1, while Bob doesn't use Opus. Therefore, there should be a Opus transcoder between the two. If so, how can I configure the settings of Opus encoder and decoder?

在此配置中,您需要 Alice 和 Bob 之间的转码器。如果转码器支持 FEC,您可能更愿意将 useinbandfec=1 包含到 SDP fmtp 属性中。如果编码器(Alice 设备上的发送者)也在您的控制之下,您可以设置要求编码器在以下条件下将 FEC 添加到流中:

  • 网络丢失(可以通过 RTCP 检测到)
  • 解码它的转码器能力(可以从 SDP 参数中获知)

2

As for Alice->Bob where opus_decode() is needed, what value should be sent as the 5th parameter (fecFlag)?

opus_decode FEcflags用于检测数据包丢失(例如通过 RTP 序列号)。假设您收到数据包 N 并且丢失了 N-1 个数据包。然后你可以通过将 fecFlag 设置为 true 调用 opus_decode 来恢复数据包 N-1,然后解码数据包 N:

packets[N-1] = decode_opus(pktN, fecFlag=true)
packets[N] = decode_opus(pktN, fecFlag=false)

3

And as for Bob->Alice where a Opus encoder is needed, what value should be sent with OPUS_SET_INBAND_FEC() in opus_encoder_ctl()?

OPUS_SET_INBAND_FEC 最好通过从 Alice SDP 检索到的 useinbandfec 参数来设置。另请注意,除非您不设置 OPUS_SET_PACKET_LOSS_PERC,否则 FEC 不会包含在编码流中。

关于c++ - Opus 中的 "useinbandfec is a unidirectional receive-only parameter"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46819965/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com