最近,國家政策開始鼓勵“地攤經濟”,一時間各家企業平台紛紛推出地攤扶持政策,地攤概念股順勢大漲,地攤生态及配套商品也開始走俏,甚至在網絡上也湧現出各種“新攤主速成攻略”,萬億的煙火經濟俨然已經走上風口。

實際上,早就有人已經在網上“擺地攤”了,那就是直播帶貨!受到疫情的影響,線下實體紛紛停擺,直播帶貨受到了前所未有的追捧,企業們紛紛選擇通過直播的形式,來提升品牌形象、保持與使用者的互動并完成商品的銷售。
那麼問題就來了,在搭建直播平台或者應用的過程中,都需要關注哪些技術呢?CDN又對直播起到什麼作用呢?
一個直播系統都包括什麼?
通常整個直播的系統可能包括:推流端經過一次邊緣節點的加速,将視訊直播流推到直播中心,在直播中心完成一系列轉碼、截圖、錄制、水印等處理,然後視訊流再經過CDN分發,分發到不同的播放端,播放端有不同的SDK進行秒開、弱網等優化動作。
直播系統中的推流與播放
對于視訊直播來講,最重要的兩個環節,一個是推流,一個是播放。推流一般采用RTMP協定,常用的推流端包括OBS、手機APP、FFmpeg等。播放除了采用RTMP協定,還可以采用HTTP FLV和HLS協定,RTMP和HTTP FLV是流式傳輸,HLS是檔案加速傳輸,常見的播放端包括:Flash / VLC / HTML5 / 手機App等等。對于阿裡雲直播系統來講,大部分直播分發都是通過流式傳輸完成的,隻有一少部分量是使用檔案加速分發完成的。
流式分發與CDN直播系統
其實在直播場景中,不管是推流還是播放,流式分發都是長連接配接的,一場直播可能5個小時,推流在這5小時内不會中斷。對于播放器來講,伺服器端擷取到的是一幀一幀的音視訊資料,不管是什麼傳輸協定,都是采用FLV tag來封裝。每一幀音頻或者視訊,都會有一個時間戳的屬性。
視訊直播流會傳輸音頻幀和視訊幀,對于音頻幀來講,它每一幀都可以獨立解碼,播放器從伺服器擷取到任何一幀音頻幀之後,都可以獨立渲染,聽到聲音。而視訊分為視訊關鍵幀和非關鍵幀,關鍵幀可以獨立解碼渲染,播放器拿到後可以直接看到畫面,一般10K以上甚至幾十K;其他非關鍵幀解碼依賴于前面的一些視訊幀,播放器會根據前面的幀和這一幀來解碼産生畫面,非關鍵幀一般大小是幾K甚至不到1K。對于播放器來說,伺服器一般會從視訊關鍵幀開始發送,這樣才不會産生花屏。
對于節點上直播伺服器存儲的内容,如果是檔案加速,節點上存儲的内容很明确,就是檔案資料, URL不變的話檔案資料内容也不變。但是對于直播來講,傳輸的就是幀資料,緩存的也是不斷變化的幀序列資料。
下面的圖裡可以看到,目前的伺服器緩存了V1-V3五幀資料,當V4這個關鍵幀出現了,伺服器把之前的丢掉,開始緩存V4開始的音視訊資料,以這個政策保證過來的播放端都是目前最新的資料。一般直播伺服器都是用這個政策來進行伺服器緩存的。
直播平台面臨的挑戰?
1、 前面也說了,直播系統包含推流、轉碼、分發、播放等各個環境,經曆了冗長複雜的網絡環境,尤其是當業務場景逐漸豐富起來之後,功能需求也越來越多
2、 一些關鍵名額的提升,比如:卡頓率、打開速度、流暢度、回源率等,任何名額的下降都可能會導緻整個應用的使用者體驗下降,影響直播效果
3、 直播平台經常會面臨業務突發,數十萬甚至數百萬使用者的同時線上,對伺服器和帶寬考驗十分巨大
直播平台為什麼要使用CDN?
1、減少卡頓率,提升使用者體驗
直播,尤其是電商直播,對網絡抖動十分敏感,稍有問題就會出現卡頓、花屏等問題,嚴重影響使用者體驗,甚至直接掉線影響銷售。CDN借助負載均衡系統能夠将内容推送到接近使用者的邊緣節點,使得使用者就近取得資源,可以大大提升通路效率。
2、業務峰值來臨的時候,為流量高峰護航
在確定直播流暢度上,全球覆寫的CDN節點和精準排程系統缺一不可。CDN節點是采用分布式架構,節點資源與帶寬儲備就代表了能夠覆寫的使用者的量級和廣度。當突發峰值特别高的時候,CDN系統會確定用更精準的排程政策,比如DNS、IP排程,來降低對直播的影響。打比方有一個裝了很多冰塊和水的杯子,如果我們要把杯子裡面的狹小空間全部用上,我們先要把冰塊放進去,再倒液态水。在智能排程的場景裡,把“固體”和“液體”結合起來考慮,才能做到所有的節點、水位的精準控制,實作更精準的排程。
是以,選擇節點和帶寬資源覆寫廣泛,綜合實力強,品質有保證,具備大型項目最佳實踐的CDN服務提供商對直播帶貨平台來說至關重要。想要在雲上開啟“地攤經濟”,阿裡雲CDN,了解一下~
阿裡雲全速重構年中大促中,CDN/全站加速、視訊直播、視訊點播等多款産品都推出限時折扣,
點選登陸活動頁面了解優惠詳情點選回顧CDN百科第一講,最近你的APP崩了嗎?
https://developer.aliyun.com/article/757268點選回顧CDN百科第二講,假如沒用CDN,網絡世界會變成什麼樣?
https://developer.aliyun.com/article/759623CDN百科第三講,如果用了雲伺服器,還需要做CDN加速嗎?
https://developer.aliyun.com/article/763524【CDN百科】專欄中,我們會不斷科普CDN知識,解讀CDN實踐,分享CDN案例,如果你也關注CDN、使用CDN,請留言回複你關心的話題,如果被選中就有機會獲得阿裡雲ET公仔一個,包郵哦!