如何从opensource OPUS演示二进制文件中使用opus DTX

时间:2016-09-27 07:12:40

标签: opus

我想要OPUS DTX的帮助

1.Ohow OPUS DTX正在运行。 2.如果opus编码器和解码器适用于dtx 3.在OPUS中是否存在DTX的位代表

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

1 个答案:

答案 0 :(得分:2)

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

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

接收方应使用正常的数据包丢失隐藏来处理丢失的数据包,其处理方式与处理数据包丢失的方式相同。特别是它可以调用opus_decode() data = NULLlen = 0frame_size等于丢失帧的大小,解码器将生成音频数据以隐藏丢失的帧。