直播系統(tǒng)代碼,最好的方法是靠協(xié)議降低延遲
延遲的控制和改變不是靠直播系統(tǒng)代碼優(yōu)化就能完成的,有時(shí)候是需要借助開發(fā)協(xié)議的應(yīng)用改變延遲對(duì)直播的影響,借助實(shí)時(shí)傳輸協(xié)議的優(yōu)勢,在不同網(wǎng)絡(luò)環(huán)境下,直播系統(tǒng)代碼都有不錯(cuò)的表現(xiàn),傳輸協(xié)議不僅能提高傳輸?shù)乃俣龋€能保證傳輸?shù)臅r(shí)效性,具體的選擇可以?參考以下的方案。
?

一、傳輸協(xié)議的選擇
直播系統(tǒng)代碼一般會(huì)選擇RTMP做為傳輸協(xié)議,它和常用的CDN分發(fā)網(wǎng)絡(luò)有較好的兼容性,在協(xié)議的劃分上有重要的一點(diǎn)是看它屬于什么協(xié)議下的,一般直播系統(tǒng)代碼用到的是TCP協(xié)議,而一些音視頻軟件為了保證實(shí)時(shí)性會(huì)用到UDP協(xié)議,兩者的優(yōu)勢決定了他們要服務(wù)于不同的使用環(huán)境。
二、TCP協(xié)議
1、TCP協(xié)議屬于通用協(xié)議,不是針對(duì)直播系統(tǒng)代碼的使用環(huán)境專門設(shè)計(jì)的,所以它有所有傳輸協(xié)議都有的缺點(diǎn),受到網(wǎng)絡(luò)波動(dòng)的影響比較大
2、有內(nèi)嵌的ARQ,但沒有FEC,不允許開發(fā)者對(duì)ARQ策略進(jìn)行控制,不能實(shí)現(xiàn)FEC
3、由于不是專門針對(duì)實(shí)時(shí)音視頻環(huán)境開發(fā)的,所以在實(shí)時(shí)性上很難保證,尤其是連麥這種實(shí)時(shí)性要求極高的服務(wù)
?

三、UDP協(xié)議
1、專門用來實(shí)時(shí)傳輸?shù)耐ㄓ崊f(xié)議,在弱網(wǎng)絡(luò)環(huán)境下仍然有很好的表現(xiàn),允許端到端全鏈條進(jìn)行信道策略控制
2、適合設(shè)計(jì)直播的通訊機(jī)制,根據(jù)網(wǎng)絡(luò)情況自適應(yīng)的選取ARQ和FEC策略,以及調(diào)整傳輸碼率和報(bào)文數(shù)量
正常網(wǎng)絡(luò)環(huán)境下,TCP協(xié)議和UDP協(xié)議對(duì)直播系統(tǒng)代碼的提升是相同的,但一旦受到網(wǎng)絡(luò)波動(dòng)影響,UDP協(xié)議就會(huì)顯得更穩(wěn)定,但代價(jià)是,UDP協(xié)議無法應(yīng)用多人的直播環(huán)境中,只適合一對(duì)一、一對(duì)多有人數(shù)限制的條件下使用。
?

直播系統(tǒng)代碼想要獲得更低的延遲,需要在各個(gè)環(huán)節(jié)進(jìn)行優(yōu)化處理,同時(shí)要考慮到網(wǎng)絡(luò)環(huán)境對(duì)直播的影響,必須要考慮的是弱網(wǎng)絡(luò)環(huán)境的影響,畢竟不是每個(gè)協(xié)議都能在弱網(wǎng)環(huán)境下有好的表現(xiàn),再就是兼容性,不同協(xié)議針對(duì)的設(shè)備也不同,比如移動(dòng)端設(shè)備、pc端設(shè)備等,兼容適配性的調(diào)整也非常重要。這是在協(xié)議之外直播系統(tǒng)代碼開發(fā)過程中需要額外注意的。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任