日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

前面講解了音視頻編解碼的基本知識(shí),相信閱讀過(guò)的朋友,都有個(gè)基本的認(rèn)識(shí)。音視頻除了存儲(chǔ),還如何傳輸呢?比如直播互動(dòng),網(wǎng)上課堂等,這些場(chǎng)景中,音視頻是如何實(shí)現(xiàn)在網(wǎng)絡(luò)中傳輸呢?今天這篇文章,就講解下,音視頻的傳輸?shù)幕局R(shí)。本文主要講解一些基本的傳輸協(xié)議、擁塞控制,音視頻同步,校驗(yàn),QOS服務(wù)質(zhì)量等。

一.傳輸協(xié)議

流媒體的很多協(xié)議都是在傳統(tǒng)的TCP/UDP協(xié)議之上,加強(qiáng)流媒體在網(wǎng)絡(luò)傳輸中的穩(wěn)定性。在端到端的結(jié)構(gòu)中,發(fā)送端的音視頻數(shù)據(jù)通過(guò)流媒體協(xié)議發(fā)送給接收端,中間的傳輸過(guò)程重要的部分就是用TCP/UDP。下面是流媒體與TCP/UDP協(xié)議的結(jié)構(gòu)圖。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

流媒體協(xié)議結(jié)構(gòu)圖

 

流媒體中有一些常用的協(xié)議,比如RTMP,RTSP,RTP等,這些協(xié)議底層或者說(shuō)傳輸層,基本都是基于TCP/IP模型,也就是在局域網(wǎng)的實(shí)現(xiàn)還是TCP/IP。傳輸層有著承上啟下的作用,對(duì)上提供服務(wù),對(duì)下提供網(wǎng)絡(luò)傳輸是否可靠,是否能夠增加網(wǎng)絡(luò)服務(wù)的質(zhì)量。其作用如圖所示。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

傳輸層作用

TCP協(xié)議都很熟悉了,具有如下這些特點(diǎn):

1.面向連接的協(xié)議,可靠,順序包

2.一種字節(jié)流

3.滑動(dòng)窗口,流量控制

TCP通過(guò)三次握手建立連接后,應(yīng)用層的數(shù)據(jù)會(huì)不斷發(fā)到TCP緩沖中去,在流媒體中,數(shù)據(jù)這個(gè)層次需要切片,并加上header,形成segment,TCP報(bào)頭如圖所示:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

TCP header

為什么音視頻在有些場(chǎng)景不直接用TCP呢?具有以下原因。

1.在實(shí)時(shí)語(yǔ)音,視頻等場(chǎng)景下,TCP的重傳會(huì)造成流媒體極大延時(shí),用戶體驗(yàn)差

2.擁塞控制會(huì)造成大量卡頓,主要體現(xiàn)在弱網(wǎng)環(huán)境中,碼率不變的情況。

3.TCP報(bào)頭要大于UDP,數(shù)據(jù)量更大。

4.TCP連接需要花大量的時(shí)間,對(duì)于畫(huà)面秒開(kāi)會(huì)有一定的影響。

以上都是在實(shí)時(shí)互動(dòng)的場(chǎng)景中,不用TCP的原因,這些場(chǎng)景使用UDP肯能更加合適。

UDP報(bào)頭如下:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

UDP報(bào)頭

UDP更加適合一對(duì)多實(shí)時(shí)互動(dòng)的流媒體場(chǎng)景中,在網(wǎng)絡(luò)帶寬足夠的情況,采用UDP,會(huì)更加符合實(shí)際,在UDP包加一個(gè)時(shí)標(biāo)和序號(hào),再加上適當(dāng)?shù)木彌_,也可以記錄無(wú)序包,同步音視頻數(shù)據(jù)等效果。

這里并不是說(shuō)哪種協(xié)議更加好,關(guān)鍵是看使用場(chǎng)景。TCP與UDP對(duì)比。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

TCP與UDP對(duì)比

編程思路,這里暫時(shí)不講解具體編程代碼,后面會(huì)有專欄來(lái)去分析。

TCP協(xié)議套接字編碼流程。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

TCP編碼流程

UDP套接字編碼流程

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

UDP套接字編碼流程

RTP協(xié)議應(yīng)用在組播,一對(duì)多的場(chǎng)景中比較多,它是基于UDP協(xié)議之上,RTP協(xié)議的應(yīng)用部分主要是提供一些控制信息,比如同步,報(bào)文分割等,具體報(bào)文格式如下,PT(類型)、M(標(biāo)記)、時(shí)間戳,RTP格式如下:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

RTP格式

RTSP,也是一種流媒體協(xié)議,在很對(duì)安防場(chǎng)景中,使用的十分頻繁,一般工作在TCP之上,它也是采用一種流式傳輸,可以減小延遲。當(dāng)接收端有足夠數(shù)據(jù)之后,就會(huì)解碼播放。RTSP主要特性如下:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

RTSP主要特性

 

二.擁塞控制

擁塞控制主要是解決網(wǎng)絡(luò)堵塞的情況,解決好網(wǎng)絡(luò)堵塞的傳輸,一直是業(yè)內(nèi)關(guān)注的問(wèn)題,有很多的專家組建團(tuán)隊(duì)去攻克這些難題。擁塞控制可以做些什么呢?在網(wǎng)絡(luò)資源和帶寬有限的情況,如何控制質(zhì)量,盡可能提升質(zhì)量,就是傳輸視頻的有效手段。網(wǎng)絡(luò)堵塞表現(xiàn)在數(shù)據(jù)包延時(shí)增加,丟棄率增加,性能下降。擁塞控制對(duì)網(wǎng)絡(luò)性能影響如下:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

擁塞控制對(duì)網(wǎng)絡(luò)性能影響

產(chǎn)生擁塞控制主要是由以下幾點(diǎn)影響的?

1.帶寬,最大值受香農(nóng)定理限制,發(fā)送速率小于或等于信道容量。

2.存儲(chǔ)空間,主要體現(xiàn)在數(shù)據(jù)報(bào)的丟棄上。

3.處理器能力,這個(gè)不僅僅指的是CPU,還有GPU,其它硬件編解碼器等。

根據(jù)服務(wù)模型不同,擁塞控制可分為預(yù)留策略和反饋策略。

預(yù)留策略主要是向網(wǎng)絡(luò)提交資源請(qǐng)求,在帶寬足夠,則會(huì)為主機(jī)預(yù)留響應(yīng)資源。否則拒絕。

反饋策略主要是根據(jù)反饋,動(dòng)態(tài)調(diào)整發(fā)送速率。

網(wǎng)絡(luò)層的擁塞控制

網(wǎng)絡(luò)層的擁塞控制主要利用路由器的包調(diào)度算法和緩存管理技術(shù),也就數(shù)要處理好兩個(gè)基本問(wèn)題。存儲(chǔ)和轉(zhuǎn)發(fā)。在技術(shù)上實(shí)現(xiàn)思想包括。

TCP擁塞控制分為4個(gè)階段:慢啟動(dòng)、擁塞避免、快速重傳、恢復(fù)階段。如果在TCP啟動(dòng)階段,向網(wǎng)絡(luò)發(fā)出了很多數(shù)據(jù),這個(gè)時(shí)候可能造成網(wǎng)絡(luò)吞吐量下降。慢啟動(dòng)階段就是為了避免出現(xiàn)數(shù)據(jù)爆發(fā)的情況。慢啟動(dòng)流程就是當(dāng)建立新的連接時(shí),先初始化一個(gè)數(shù)據(jù)包大小,按照擁塞窗口大小發(fā)送數(shù)據(jù),收到一個(gè)ACK,擁塞窗口就增加一個(gè)數(shù)據(jù)包的發(fā)送量,基于這種反饋的策略,保證不破壞網(wǎng)絡(luò)狀態(tài)平衡,使啟動(dòng)階段能夠穩(wěn)定。如果連續(xù)收到確認(rèn)幀,則控制算法判定網(wǎng)絡(luò)要發(fā)生擁塞,這時(shí)就需要進(jìn)入擁塞避免階段。若超時(shí),窗口置1,就需要設(shè)置慢啟動(dòng)閾值,如果慢啟動(dòng)閾值小于擁塞窗口,TCP就執(zhí)行擁塞避免算法,每收到一個(gè)確認(rèn)幀,就需要增加一個(gè)數(shù)據(jù)包。反之TCP重新進(jìn)入慢啟動(dòng)。擁塞控制過(guò)程如下圖所示:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

擁塞控制

當(dāng)源端收到3個(gè)或3個(gè)以上確認(rèn)時(shí),TCP就斷定數(shù)據(jù)已經(jīng)丟失,重傳該數(shù)據(jù)包,迅速進(jìn)入快傳和恢復(fù)階段。

1.先進(jìn)先出(FIFO)

比如FFmpeg、MediaCode等開(kāi)源代碼或音視頻架構(gòu)都是應(yīng)用的非常多,基于此方法,路由轉(zhuǎn)發(fā)的壓力會(huì)下降。如圖所示:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

FIFO處理?yè)砣?/p>

FIFO優(yōu)點(diǎn)是通過(guò)緩存,可以提前得到一些信息,避免卡頓。缺點(diǎn)是對(duì)于特殊包的公平性較差,快速恢復(fù)的效率也不高。

2.公平排隊(duì)算法

這種算法表示每一路數(shù)據(jù)流都需要維護(hù)一個(gè)隊(duì)列,路由器以輪詢方式訪問(wèn),當(dāng)路由器來(lái)回掃描所有隊(duì)列,將第一個(gè)包發(fā)出。FQ的工作原理如圖所示:

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

FQ處理?yè)砣?/p>

FQ的優(yōu)點(diǎn)是在輪詢機(jī)制下表示什么時(shí)候可以發(fā)送完畢,通過(guò)結(jié)束時(shí)間去安排數(shù)據(jù)包發(fā)送,保證算法公平性,同時(shí)不會(huì)影響統(tǒng)計(jì)復(fù)用。缺點(diǎn)實(shí)現(xiàn)復(fù)雜,需要更多的資源和容錯(cuò)處理。市面上也有一些改進(jìn)算法,比如加權(quán)公平排隊(duì)算法、通過(guò)加權(quán)的方式分配緩存資源。

3.ECN

ECN將更平均分配在路由器和終端節(jié)點(diǎn),這類通知是通過(guò)簡(jiǎn)單的經(jīng)過(guò)路由器的數(shù)據(jù)包中設(shè)置一個(gè)擁塞位來(lái)實(shí)現(xiàn),先把ECN使能位發(fā)送,由路由器根據(jù)網(wǎng)絡(luò)設(shè)置CE比特位,如果接受到網(wǎng)絡(luò)反饋的這類CE置位的數(shù)據(jù)包,然后發(fā)出的數(shù)據(jù)包標(biāo)記為丟棄包。

優(yōu)點(diǎn)是不需要超時(shí)重傳,不依賴TCP定時(shí),對(duì)于網(wǎng)絡(luò)的突發(fā)性變化更好。

4.REQ

這個(gè)算法可估計(jì)擁塞什么時(shí)候發(fā)生,按照一定的概率丟包,提高吞吐量。

基于網(wǎng)絡(luò)層和傳輸層的控制算法比較

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

 

在組播環(huán)境的音視頻的層次化傳輸方案如下圖所示,這種基于應(yīng)用層的控制,需要把音視頻切分成更小的數(shù)據(jù)片,網(wǎng)絡(luò)發(fā)生堵塞時(shí),丟掉一些不太重要的數(shù)據(jù)。這些類型的方法有3類,自適應(yīng)算法,重傳和緩沖。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

應(yīng)用層的擁塞控制切片流程

三類算法的延時(shí)比較。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

 

三、音視頻同步

音視頻同步是流媒體中十分重要的模塊,直接影響用戶體驗(yàn),如果音視頻不同步,不僅僅導(dǎo)致觀感效果差,而且還可能會(huì)引起視頻卡頓,音頻無(wú)法播放等。所以這個(gè)模塊與解碼,編碼等模塊都有著千絲萬(wàn)縷的聯(lián)系。一般同步機(jī)制主要是分為三種,音頻同步視頻,視頻同步音頻,音視頻同步一個(gè)固定時(shí)鐘,字幕也有同步,這里暫且不討論。

音視頻同步背后的故事?

音視頻在傳輸過(guò)程中,延時(shí)抖動(dòng),時(shí)鐘偏差,網(wǎng)絡(luò)變化都會(huì)導(dǎo)致同步的過(guò)程發(fā)生變化。以下是延時(shí)抖動(dòng)對(duì)流媒體同步的影響。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

傳輸前

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

傳輸后

流媒體在采集,傳輸,解碼等過(guò)程中,都會(huì)實(shí)現(xiàn)相應(yīng)的同步機(jī)制。

本地文件流同步方法:

(1)基于參考點(diǎn)同步

使用流媒體的音頻或者視頻的索引作為參考點(diǎn),開(kāi)始打開(kāi)文件,讀取文件的頭信息,讀取第n幀的音頻數(shù)據(jù),檢查前面的n-1幀是否播放完,如果已經(jīng)播放完,則跳過(guò)下一幀視頻,只播放第n幀的視頻,重新返回到音頻的N+1幀讀取,如果前面的第N幀音頻還沒(méi)有播放完,則把第n幀音頻放到輸出隊(duì)列,然后讀取并顯示第n幀視頻,如果上述情況出現(xiàn)很多次,則顯示視頻時(shí)加入一定延時(shí)。

(2)基于參考時(shí)鐘同步

音視頻基于系統(tǒng)固定時(shí)鐘,實(shí)現(xiàn)同步,各自沿著時(shí)鐘線段進(jìn)行播放,如果音視頻的時(shí)間戳與固定時(shí)鐘的誤差超過(guò)設(shè)置的同步門(mén)限,則重新同步。這個(gè)方法優(yōu)點(diǎn)是,音頻和視頻的時(shí)間戳不用交集,相互不影響,缺點(diǎn)是,如果固定時(shí)鐘,音頻,視頻,這三者中的時(shí)間戳不準(zhǔn),或者跳變很大,就會(huì)出現(xiàn)災(zāi)難性的體驗(yàn)。大致的流程是,以參考時(shí)鐘的映射為標(biāo)桿,進(jìn)行同步控制,重置音視頻的起點(diǎn),如果音頻或者視頻超越和落后對(duì)方,則就會(huì)等待或丟棄相應(yīng)數(shù)據(jù)。

網(wǎng)絡(luò)傳輸同步

音視頻在網(wǎng)絡(luò)傳輸過(guò)程中,基于參考時(shí)鐘的這種方法很難實(shí)現(xiàn),或者實(shí)現(xiàn)起來(lái)體驗(yàn)很差,為什么呢?在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,如果時(shí)鐘信息被丟失或者讀取錯(cuò)誤,會(huì)導(dǎo)致解碼端和播放端,同步的效果很差。所以在網(wǎng)絡(luò)中,都是基于音頻同步視頻,或視頻同步音頻,這里以音頻的時(shí)間戳作為基準(zhǔn)進(jìn)行同步,音頻會(huì)以固定速率播放,而視頻會(huì)根據(jù)音頻的時(shí)間戳進(jìn)行等待或者丟棄。

在客戶端和服務(wù)端,會(huì)同步實(shí)現(xiàn)一種反饋機(jī)制,客戶端會(huì)把不同步的信息,發(fā)送給服務(wù)端,由服務(wù)端根據(jù)這種反饋信息進(jìn)行反饋檢測(cè)。當(dāng)客戶端檢測(cè)到失調(diào)后,接收端會(huì)跳過(guò)或暫停。服務(wù)端則調(diào)整發(fā)送速率。

四、差錯(cuò)控制

前面提到的擁塞控制,無(wú)法完全避免包的丟失,這就需要一定的差錯(cuò)控制技術(shù)。可以發(fā)送定義和識(shí)別幀邊界,并處理接收方回送的確認(rèn)幀。如幀數(shù)計(jì)數(shù)法,首尾標(biāo)志法等。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

 

差錯(cuò)控制的方式分為2類,即反饋糾錯(cuò)和前向糾錯(cuò)。反饋糾錯(cuò)方式是指在發(fā)送端對(duì)輸入信息編碼時(shí),加入少量監(jiān)督符號(hào),在接收端需要對(duì)編碼信息進(jìn)行檢查,如果出錯(cuò),需要請(qǐng)求重發(fā),指導(dǎo)收到的信息正確為止。前向糾錯(cuò)就是在發(fā)送端使用一套相對(duì)復(fù)雜的編碼方法,從而能夠在解碼端去糾正傳輸?shù)牟铄e(cuò),接收端不僅能發(fā)現(xiàn)錯(cuò)碼,還要糾正。這些糾錯(cuò)碼,市面上比較常用的海明碼,循環(huán)冗余碼等,這篇文章就不詳細(xì)分析。

五、QoS服務(wù)質(zhì)量

上面介紹的音視頻同步,校驗(yàn),都是Qos的范疇。它是指提供服務(wù)質(zhì)量的期望值以及考驗(yàn)網(wǎng)絡(luò)性能的要求。Qos設(shè)計(jì)滿足一些基本原則,比如,透明原則,綜合原則,分離原則等。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

端與端的Qos

Qos參數(shù)體系結(jié)構(gòu)如下圖所示,用戶使用Qos來(lái)分析網(wǎng)絡(luò)性能。

 

解析音視頻網(wǎng)絡(luò)傳輸技術(shù)之一

Qos參數(shù)體系結(jié)構(gòu)

網(wǎng)絡(luò)接口層,是解決傳輸介質(zhì)問(wèn)題。

網(wǎng)絡(luò)層需要解決延時(shí),抖動(dòng),差錯(cuò)控制等問(wèn)題。

傳輸層解決吞吐量,延時(shí),抖動(dòng),傳輸優(yōu)先級(jí)等問(wèn)題

應(yīng)用層主要是實(shí)現(xiàn)不同場(chǎng)景的參數(shù)配置,及問(wèn)題反饋。

關(guān)于Qos分析,先講解這么多,后面再補(bǔ)充

六、總結(jié)

前面五部分都是十分重要的環(huán)境,如果需要掌控整個(gè)系統(tǒng),或者優(yōu)化,這些基礎(chǔ)知識(shí)是必備,希望各位朋友認(rèn)真閱讀并理解。

分享到:
標(biāo)簽:網(wǎng)絡(luò)傳輸
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定