我想要OPUS DTX的帮助
1.Ohow OPUS DTX正在运行。 2.如果opus编码器和解码器适用于dtx 3.在OPUS中是否存在DTX的位代表
从rfc启用DTX时,只编码一帧 使用opus_demo二进制文件,它每400毫秒都不适用于我。 请帮助OPUS DTX。
答案 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 = NULL
,len = 0
和frame_size
等于丢失帧的大小,解码器将生成音频数据以隐藏丢失的帧。