最近,國家政策開始鼓勵“地攤經(jīng)濟”,一時間各家企業(yè)平臺紛紛推出地攤扶持政策,地攤概念股順勢大漲,地攤生態(tài)及配套商品也開始走俏,甚至在網(wǎng)絡(luò)上也涌現(xiàn)出各種“新攤主速成攻略”,萬億的煙火經(jīng)濟儼然已經(jīng)走上風口。
實際上,早就有人已經(jīng)在網(wǎng)上“擺地攤”了,那就是直播帶貨!受到疫情的影響,線下實體紛紛停擺,直播帶貨受到了前所未有的追捧,企業(yè)們紛紛選擇通過直播的形式,來提升品牌形象、保持與用戶的互動并完成商品的銷售。

那么問題就來了,在搭建直播平臺或者應(yīng)用的過程中,都需要關(guān)注哪些技術(shù)呢?CDN又對直播起到什么作用呢?
一個直播系統(tǒng)都包括什么?
通常整個直播的系統(tǒng)可能包括:推流端經(jīng)過一次邊緣節(jié)點的加速,將視頻直播流推到直播中心,在直播中心完成一系列轉(zhuǎn)碼、截圖、錄制、水印等處理,然后視頻流再經(jīng)過CDN分發(fā),分發(fā)到不同的播放端,播放端有不同的SDK進行秒開、弱網(wǎng)等優(yōu)化動作。
直播系統(tǒng)中的推流與播放
對于視頻直播來講,最重要的兩個環(huán)節(jié),一個是推流,一個是播放。推流一般采用RTMP協(xié)議,常用的推流端包括OBS、手機APP、FFmpeg等。播放除了采用RTMP協(xié)議,還可以采用HTTP FLV和HLS協(xié)議,RTMP和HTTP FLV是流式傳輸,HLS是文件加速傳輸,常見的播放端包括:Flash / VLC / HTML5 / 手機App等等。對于阿里云直播系統(tǒng)來講,大部分直播分發(fā)都是通過流式傳輸完成的,只有一少部分量是使用文件加速分發(fā)完成的。
流式分發(fā)與CDN直播系統(tǒng)
其實在直播場景中,不管是推流還是播放,流式分發(fā)都是長連接的,一場直播可能5個小時,推流在這5小時內(nèi)不會中斷。對于播放器來講,服務(wù)器端獲取到的是一幀一幀的音視頻數(shù)據(jù),不管是什么傳輸協(xié)議,都是采用FLV tag來封裝。每一幀音頻或者視頻,都會有一個時間戳的屬性。
視頻直播流會傳輸音頻幀和視頻幀,對于音頻幀來講,它每一幀都可以獨立解碼,播放器從服務(wù)器獲取到任何一幀音頻幀之后,都可以獨立渲染,聽到聲音。而視頻分為視頻關(guān)鍵幀和非關(guān)鍵幀,關(guān)鍵幀可以獨立解碼渲染,播放器拿到后可以直接看到畫面,一般10K以上甚至幾十K;其他非關(guān)鍵幀解碼依賴于前面的一些視頻幀,播放器會根據(jù)前面的幀和這一幀來解碼產(chǎn)生畫面,非關(guān)鍵幀一般大小是幾K甚至不到1K。對于播放器來說,服務(wù)器一般會從視頻關(guān)鍵幀開始發(fā)送,這樣才不會產(chǎn)生花屏。
對于節(jié)點上直播服務(wù)器存儲的內(nèi)容,如果是文件加速,節(jié)點上存儲的內(nèi)容很明確,就是文件數(shù)據(jù), URL不變的話文件數(shù)據(jù)內(nèi)容也不變。但是對于直播來講,傳輸?shù)木褪菐瑪?shù)據(jù),緩存的也是不斷變化的幀序列數(shù)據(jù)。
下面的圖里可以看到,當前的服務(wù)器緩存了V1-V3五幀數(shù)據(jù),當V4這個關(guān)鍵幀出現(xiàn)了,服務(wù)器把之前的丟掉,開始緩存V4開始的音視頻數(shù)據(jù),以這個策略保證過來的播放端都是當前最新的數(shù)據(jù)。一般直播服務(wù)器都是用這個策略來進行服務(wù)器緩存的。

直播平臺面臨的挑戰(zhàn)?
1、 前面也說了,直播系統(tǒng)包含推流、轉(zhuǎn)碼、分發(fā)、播放等各個環(huán)境,經(jīng)歷了冗長復雜的網(wǎng)絡(luò)環(huán)境,尤其是當業(yè)務(wù)場景逐漸豐富起來之后,功能需求也越來越多
2、 一些關(guān)鍵指標的提升,比如:卡頓率、打開速度、流暢度、回源率等,任何指標的下降都可能會導致整個應(yīng)用的用戶體驗下降,影響直播效果
3、 直播平臺經(jīng)常會面臨業(yè)務(wù)突發(fā),數(shù)十萬甚至數(shù)百萬用戶的同時在線,對服務(wù)器和帶寬考驗十分巨大
直播平臺為什么要使用CDN?
1、減少卡頓率,提升用戶體驗
直播,尤其是電商直播,對網(wǎng)絡(luò)抖動十分敏感,稍有問題就會出現(xiàn)卡頓、花屏等問題,嚴重影響用戶體驗,甚至直接掉線影響銷售。CDN借助負載均衡系統(tǒng)能夠?qū)?nèi)容推送到接近用戶的邊緣節(jié)點,使得用戶就近取得資源,可以大大提升訪問效率。
2、業(yè)務(wù)峰值來臨的時候,為流量高峰護航
在確保直播流暢度上,全球覆蓋的CDN節(jié)點和精準調(diào)度系統(tǒng)缺一不可。CDN節(jié)點是采用分布式架構(gòu),節(jié)點資源與帶寬儲備就代表了能夠覆蓋的用戶的量級和廣度。當突發(fā)峰值特別高的時候,CDN系統(tǒng)會確保用更精準的調(diào)度策略,比如DNS、IP調(diào)度,來降低對直播的影響。打比方有一個裝了很多冰塊和水的杯子,如果我們要把杯子里面的狹小空間全部用上,我們先要把冰塊放進去,再倒液態(tài)水。在智能調(diào)度的場景里,把“固體”和“液體”結(jié)合起來考慮,才能做到所有的節(jié)點、水位的精準控制,實現(xiàn)更精準的調(diào)度。
所以,選擇節(jié)點和帶寬資源覆蓋廣泛,綜合實力強,質(zhì)量有保證,具備大型項目最佳實踐的CDN服務(wù)提供商對直播帶貨平臺來說至關(guān)重要。想要在云上開啟“地攤經(jīng)濟”,阿里云CDN,了解一下
