2016-09-27 130 views
-1

我想在OPUS DTX帮助如何使用opus DTX从开源OPUS演示二进制

1.how OPUS DTX正在工作。 2.how巨著编码器和解码器适用于DTX 3.Is有任何位表示为DTX的OPUS

与RFC当DTX启用时,只有一帧进行编码 每400毫秒它没有与opus_demo对我的作品二进制文件。 请帮助OPUS DTX。

回答

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 = 0frame_size等于丢失帧的大小,并且解码器将生成音频数据以隐藏丢失的帧。