一對(duì)一直播技術(shù)中延遲與卡頓的矛盾關(guān)系如何解決?-創(chuàng)新互聯(lián)

一對(duì)一直播技術(shù)中延遲與卡頓的矛盾關(guān)系如何解決?

創(chuàng)新互聯(lián)建站專(zhuān)注于安達(dá)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站開(kāi)發(fā)。安達(dá)網(wǎng)站建設(shè)公司,為安達(dá)等地區(qū)提供建站服務(wù)。全流程按需定制,專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)

由于直播推送端會(huì)存在于各種不同的網(wǎng)絡(luò)環(huán)境下面:有線(xiàn)、無(wú)線(xiàn)、3G、4G、衛(wèi)星信號(hào)等等,在這些網(wǎng)絡(luò)條件下,如何做到直播流暢不卡頓,我們這個(gè)時(shí)候就需要引入可變碼率和丟幀兩種策略,保證推送的實(shí)時(shí)和數(shù)據(jù)的有效。之前我們介紹過(guò)直播過(guò)程卡頓時(shí),切換碼率與選擇性丟幀的處理策略研究,下面先介紹一些基礎(chǔ)知識(shí)和解決原理。

基礎(chǔ)知識(shí):I幀、B幀、P幀

I幀表示關(guān)鍵幀。 你可以理解為這一幀畫(huà)面的完整保留;解碼時(shí)只需要本幀數(shù)據(jù)就可以完成。(因?yàn)榘暾?huà)面)

P幀表示這一幀跟之前的一個(gè)關(guān)鍵幀(或P幀)的差別。 解碼時(shí)需要用之前緩存的畫(huà)面疊加上本幀定義的差別,生成最終畫(huà)面。(也就是差別幀,P幀沒(méi)有完整畫(huà)面數(shù)據(jù),只有與前一幀的畫(huà)面差別的數(shù)據(jù))

一對(duì)一直播技術(shù)中延遲與卡頓的矛盾關(guān)系如何解決?

B幀是雙向差別幀。 B幀記錄的是本幀與前后幀的差別(具體比較復(fù)雜,有4種情況)。換言之,要解碼B幀,不僅要取得之前的緩存畫(huà)面,還要解碼之后的畫(huà)面,通過(guò)前后畫(huà)面的與本幀數(shù)據(jù)的疊加取得最終的畫(huà)面。

B幀壓縮率高,但是編解碼時(shí)會(huì)比較耗費(fèi)CPU,而且在直播中可能會(huì)增加直播延時(shí),因此在移動(dòng)端上一般不使用B幀。

關(guān)鍵幀緩存策略

一個(gè)典型的視頻幀序列為IBBPBBPBBP……

一對(duì)一直播技術(shù)中延遲與卡頓的矛盾關(guān)系如何解決?

對(duì)于直播而言,為了減少直播的延時(shí),通常在編碼時(shí)不使用B幀。P幀B幀對(duì)于I幀都有直接或者間接的依賴(lài)關(guān)系,所以播放器要解碼一個(gè)視頻幀序列,并進(jìn)行播放,必須首先解碼出I幀,其后續(xù)的B幀和P幀才能進(jìn)行解碼,這樣服務(wù)端如何進(jìn)行關(guān)鍵幀的緩存,則對(duì)直播的延時(shí)以及其他方面有非常大的影響。

比較好的策略是服務(wù)端自動(dòng)判斷關(guān)鍵幀的間隔,按業(yè)務(wù)需求緩存幀序列,保證在緩存中存儲(chǔ)至少兩個(gè)或者以上的關(guān)鍵幀,以應(yīng)對(duì)低延時(shí)、防卡頓、智能丟包等需求。

延遲與卡頓的折中

直播的延時(shí)與卡頓是分析直播業(yè)務(wù)質(zhì)量時(shí),非常關(guān)注的兩項(xiàng)指標(biāo)。 互動(dòng)直播的場(chǎng)景對(duì)延時(shí)非常敏感,新聞體育類(lèi)直播則更加關(guān)注播放的流暢度。

然而,這兩項(xiàng)指標(biāo)從理論上來(lái)說(shuō),是一對(duì)矛盾的關(guān)系——需要更低的延時(shí),則表明服務(wù)器端和播放端的緩沖區(qū)都必須更短,來(lái)自網(wǎng)絡(luò)的異常抖動(dòng)容易引起卡頓;業(yè)務(wù)可以接受較高的延時(shí)時(shí),服務(wù)端和播放端都可以有較長(zhǎng)的緩沖區(qū),以應(yīng)對(duì)來(lái)自網(wǎng)絡(luò)的抖動(dòng),提供更流暢的直播體驗(yàn)。

當(dāng)然,對(duì)于網(wǎng)絡(luò)條件非常好的用戶(hù),這兩項(xiàng)是可以同時(shí)保證的,這里主要是針對(duì)網(wǎng)絡(luò)條件不是那么好的用戶(hù),如何解決延時(shí)與卡頓的問(wèn)題。

這里通常有兩種技術(shù)來(lái)平衡和優(yōu)化這兩個(gè)指標(biāo)。

一是服務(wù)端提供靈活的配置策略 。

對(duì)于延時(shí)要求更敏感的,則在服務(wù)端在保證關(guān)鍵幀的情況下,對(duì)每個(gè)連接維持一個(gè)較小的緩沖隊(duì)列;對(duì)于卡頓要求更高的直播,則適當(dāng)增加緩沖隊(duì)列的長(zhǎng)度,保證播放的流暢。

二是服務(wù)端對(duì)所有連接的網(wǎng)絡(luò)情況進(jìn)行智能檢測(cè) 。

當(dāng)網(wǎng)絡(luò)狀況良好時(shí),服務(wù)端會(huì)縮小該連接的緩沖隊(duì)列的大小,降低延遲;而當(dāng)網(wǎng)絡(luò)狀況較差時(shí),特別是檢測(cè)到抖動(dòng)較為明顯時(shí),服務(wù)端對(duì)該連接增加緩沖隊(duì)列長(zhǎng)度,優(yōu)先保證播放的流暢性。

丟包策略

什么時(shí)候需要丟包呢?

對(duì)于一個(gè)網(wǎng)絡(luò)連接很好,延時(shí)也比較小的連接,丟包策略永遠(yuǎn)沒(méi)有用武之地的。而網(wǎng)絡(luò)連接比較差的用戶(hù),因?yàn)橄螺d速度比較慢或者抖動(dòng)比較大,這個(gè)用戶(hù)的延時(shí)就會(huì)越來(lái)越高。

另外一種情況是,如果直播流關(guān)鍵幀間隔比較長(zhǎng),那么在保證首包是關(guān)鍵幀的情況下,觀(guān)看這個(gè)節(jié)目的觀(guān)眾,延遲有可能會(huì)達(dá)到一個(gè)關(guān)鍵幀序列的長(zhǎng)度。上述兩種情況,都需要啟用丟包策略,來(lái)調(diào)整播放的延時(shí)。

關(guān)于丟包,需要解決兩個(gè)問(wèn)題:

一是正確判斷何時(shí)需要進(jìn)行丟包;

二是如何丟包以使得對(duì)觀(guān)眾的播放體驗(yàn)影響最小。 較好的做法是后端周期監(jiān)控所有連接的緩沖隊(duì)列的長(zhǎng)度,這樣隊(duì)列長(zhǎng)度與時(shí)間形成一個(gè)離散的函數(shù)關(guān)系,后端通過(guò)自研算法來(lái)分析這個(gè)離散函數(shù),判斷是否需要丟包。

一般的丟幀策略,就是直接丟棄一個(gè)完整的視頻幀序列,這種策略看似簡(jiǎn)單,但對(duì)用戶(hù)播放的影響體驗(yàn)非常大。 而應(yīng)該是后臺(tái)采用逐步丟幀的策略,每個(gè)視頻幀序列,丟最后的一到兩幀,使得用戶(hù)的感知最小,平滑的逐步縮小延時(shí)的效果。

以上就是:內(nèi)容緩存與傳輸策略?xún)?yōu)化細(xì)節(jié)原理。

蘇寧旗下子品牌蘇寧視頻云已累計(jì)服務(wù)客戶(hù)超過(guò)2000個(gè);蘇寧視頻云憑借PPTV 十年媒體技術(shù)和服務(wù)經(jīng)驗(yàn),融合流媒體技術(shù)、P2P、CDN 分發(fā)、海量存儲(chǔ)、安全策略等構(gòu)建的專(zhuān)注視頻領(lǐng)域的一站式SaaS 服務(wù)平臺(tái)。蘇寧視頻云集視頻云直播、云點(diǎn)播、云上傳、云轉(zhuǎn)碼、云存儲(chǔ)、云統(tǒng)計(jì)等功能于一體,多平臺(tái)全方位支持客戶(hù)各種視頻場(chǎng)景的業(yè)務(wù)需求。

分享名稱(chēng):一對(duì)一直播技術(shù)中延遲與卡頓的矛盾關(guān)系如何解決?-創(chuàng)新互聯(lián)
文章來(lái)源:http://muchs.cn/article32/dheppc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站設(shè)計(jì)、搜索引擎優(yōu)化網(wǎng)站策劃、建站公司網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司