我有一個簡單的應用程序,其中我發送OPUS數據包從一個客戶到其他說A到B.計算OPUS分組長度
A讀取從OPUS文件中的一個分組,並且20ms的或之後發送到B. 再次30ms再讀取一個數據包併發送給B,依此類推。 到目前爲止,我使用UDP上的RTP,所以在B的接收端,當我收到數據包時,我收到完整的數據包。收到完整的數據包後,我寫入一個新文件。
這工作正常。
現在我打算支持TCP上的RTP。 A將從OPUS文件讀取一個完整的數據包併發送給B. 當在B收到數據包時,它可能會作爲單個數據包或多個數據包(tcp行爲)接收。我的要求是,我應該緩衝數據,直到我收到完整的數據包。一旦我收到完整的數據包,我將把它寫入一個文件。
現在我的問題是,在接收時如何確定B處的OPUS數據包的長度,以便我可以緩衝它。
不想要使用libopus等,如果以某種方式,我可以避免它。如果通過任何方式從收到的數據,我可以找出包長度?
是的,想通了,RFC 4571解釋了同樣的事情。 – Kamal