RTP抗丟包傳輸方案
發(fā)布日期:2022-05-23
點擊次數(shù):380
基于UDP的RTP傳輸在復(fù)雜的公網(wǎng)環(huán)境下,尤其是3G、4G、WIFI網(wǎng)絡(luò)時面臨丟包、亂序、重復(fù)、抖動等問題,嚴(yán)重影響實時音視頻互動效果,即使是一個rtp包得丟失,如果接收端不做處理,也會導(dǎo)致視頻馬賽克的出現(xiàn),本方案采用多種方式結(jié)合,致力于解決udp傳輸視頻包丟失問題,方案包括視頻接收端jitter buffer 處理包亂序/重復(fù)問題,F(xiàn)EC(前向糾錯) 優(yōu)先處理丟包恢復(fù),以及當(dāng)fec恢復(fù)不了丟失數(shù)據(jù)包時采用丟包重傳策略請求重傳數(shù)據(jù)包,如果重傳依然有丟包情況,則解碼端不去解碼(有可能花屏),直接請求發(fā)送方發(fā)送I幀,這幾種方式組合,在實踐中能有效避免丟包導(dǎo)致的花屏,卡頓現(xiàn)象,通過調(diào)整FEC冗余度,可以達(dá)到不同丟包率的處理。
這里的FEC前向糾錯技術(shù)已經(jīng)應(yīng)用很廣泛,其大概原理就是每K個媒體包發(fā)出后,利用這個K個媒體包生成N-K個冗余包,這里的N是媒體包和數(shù)據(jù)包的總和,接收端只要接收到K個數(shù)據(jù)包(包括媒體包和冗余包),就可以恢復(fù)出K個媒體包中任意一個丟失的媒體包。