[webrtc] RTX的處理


以前筆記,整理

 

webrtc中默認開啟rtx用於丟包重傳,rtx的介紹可以參考rfc4588,https://tools.ietf.org/html/rfc4588#section-4

rtx使用額外的ssrc傳輸,ssrc在sdp中會標識出來。

↵a=rtpmap:97 rtx/90000
↵a=ssrc-group:FID 2736695910 239189782

類似這樣。

一個RTX包,在turnserver中是這樣的,原始udp數據->turn/stun協議頭->RTP header1 ->RTP header2

在RTP header1中根據payload type進行區別RTP、RTX數據,如果是RTX的話,需要srtp解出后面的數據,再解析。

 

在客戶端中,RTX封包的關鍵函數是:

https://code.google.com/p/webrtc/source/detail?r=4692
Channel::IsPacketRetransmitted
Channel::HandleRtxPacket
rtp_payload_registry_->IsRtx
RTPPayloadRegistry::RestoreOriginalPacket    移除RTX頭, 還原原始的RTP

鏈接是,webrtc加入rtx的issue

 

目前webrtc的服務器,例如licode,janus是禁止rtx的。以避免復雜的處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM