2016-09-27 165 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等於丟失幀的大小,並且解碼器將生成音頻數據以隱藏丟失的幀。