我需要在DTX上的帮助
1. DTX方案的工作方式。2. opus编码器和解码器如何工作于dtx 3.在OPUS中是否有DTX的位表示
当启用DTX时,从rfc开始,每400毫秒只对一帧进行编码,它不适合我使用opus_demo二进制文件。请帮我处理DTX。
发布于 2016-11-20 00:19:45
当在网络上使用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等于丢失帧的大小,解码器将生成音频数据以隐藏丢失的帧。
https://stackoverflow.com/questions/39718307
复制相似问题