0

我需要 OPUS DTX 的帮助

1.OPUS DTX 是如何工作的。2. opus 编码器和解码器如何在 dtx 上工作 3. OPUS 中是否有 DTX 的位表示

从 rfc 启用 DTX 时,每 400 毫秒只编码一帧,它不适用于 opus_demo 二进制文件。请帮助 OPUS DTX。

4

1 回答 1

5

在网络上使用 Opus 时,使用诸如 RTP 等协议,其中数据包带有时间戳,如果您想减少在没有语音活动期间发送的数据包,可以启用 DTX。仍然大约每 400 毫秒发送一个数据包,更新背景噪声。使用数据包时间戳,接收器可以确定任何间隙的持续时间,并用背景噪声填充它们以使其听起来自然。

opus_encoder_ctl(enc, OPUS_SET_DTX(1));使用或使用-dtx选项在编码器中启用 DTX opus_demo。然后,简单地不要发送任何由编码器生成的长度为 2 字节或更短的数据包。(这些“DTX 数据包”只是长度为零的帧,具有正常的 1 或 2 字节数据包头 (TOC),并且不包含任何音频数据。)长度大于 2 字节的数据包应照常发送.

接收方应该使用正常的丢包隐藏来处理丢失的包,就像处理丢包一样。特别是它可以调用opus_decode(), data = NULL,len = 0frame_size等于丢失帧的大小,解码器将生成音频数据来隐藏丢失的帧。

于 2016-11-20T00:19:45.060 回答