【尖端乾貨】星域CDN·直播旗艦版三大黑科技淺析

原文地址:https://xycdn.com/news/detail/id/50


2016年5月,星域CDN推出了“旗艦版”和“極速版”兩款直播新品,截止筆者撰文,星域CDN的這兩款新品已經服務了百餘家企業的直播業務,並且得到了小米、愛奇藝、熊貓直播、bilibili、陌陌、觸手、戰旗直播、大朋VR、GoGal夠格等多個直播行業大佬的公開點贊。單從量級來看,星域CDN目前可以說已經承擔了直播行業1/3的流量。


當然,業界更爲關注的還是使用了“無限節點”技術的旗艦版方案,而作爲星域CDN·直播旗艦版的技術研發工程師,筆者也接到了很多圈內朋友的詢問,海量的節點如何調度?直播數據流如何分發到離用戶更近、網絡質量更好的節點?星域直播SDK如何智能選取多個優質節點進行並行傳輸?星域CDN的直播流暢度是不是真的能達到99%?


在這裏,筆者就簡單介紹一下星域CDN·直播旗艦版的幾個技術要點,希望能幫助大家更好的瞭解星域CDN的直播技術:


一、傳統直播流分發由單路變爲多路

目前大多數CDN廠商,包括傳統CDN廠商和雲廠商,提供的直播直播CDN分發基本都基於樹狀結構,由源節點,中繼節點和邊緣節點三層組成,當播放客戶端觀看發起拉流請求時,通過RTMP或者HTTP-FLV協議向邊緣節點請求直播流數據時,邊緣節點如果沒有該路直播流的數據,就會實時回源到中繼節點,同理中繼節點最後會回源到源節點拉取該路主播流。如下(圖1 左)所示:

xm

圖1


使用傳統的分發結構(圖1 左)會造成:

1、卡頓率高

抗抖動能力差,回源都是基於TCP,這要這條鏈路不斷開,鏈路的抖動會影響分發速率,這樣最終會影響這條鏈路下面的所有觀看用戶的卡頓;

2、高碼率直播穩定性差

單條鏈路分發速率,對於5Mbps內碼率的TCP分發能滿足,但對於10Mpbs,20Mpbs甚至更高的碼率的直播流單條鏈路的穩定性肯定是不足的;


星域CDN多路分發的優勢

爲了提高CDN內部分發鏈路的穩定性,星域CDN(圖1右)會將直播流進行chunk分片,同時在一層分發傳輸中將chunk片打成碎片,分發給下一層節點,例如在中繼服務器1這層,源服務器1和2同時分發碎片數據,中繼服務器1只要收到足夠的碎片就能夠解碼出chunk片,如此一來,一臺源服務器的波動對這層直播流分發來講影響就大大的減少了


二、播放端單路訂閱變爲多路訂閱

我們都知道,當前用戶播放端拉流都是基於TCP協議(圖2):

xm

圖2


而用戶播放端到邊緣服務器之間的抗抖動性相比機房節點分發更弱,單條鏈路的拉取速率更加有限。


星域CDN多路訂閱的特點:

1、完整、可靠、可擴展的私有協議

星域CDN·直播旗艦版在處理播放端拉流的時候,採用SDK向邊緣端拉取碎片數據,而SDK拉取數據的協議與CDN內部分發協議是保持一致的,使得SDK在多終端上如PC端flashsdk,Mobile端的androidsdk和iossdk都能很容易移植底層私有協議傳輸;

2、扛網絡抖動性強

星域CDN·直播旗艦版SDK可以向多個邊緣服務器拉取數據,而多源拉取的核心優勢就是單點抖動容錯能力強,部分邊緣服務器無法拉取,其它服務器仍可以保障數據拉取成功;

3、首屏秒開

爲了保證首屏時長和可用性,星域CDN·直播旗艦版SDK保留了傳統CDN播放的線路,即在啓動播放的時候直接通過DNS或者302方式去拉取flv流,保證秒級首屏時長,一旦出現碎片數據分發過慢或者延時過高時,則回退到單點線路,保證的直播流的低延時。


三、通過迅雷賺錢寶實現“無限節點”

衆所周知,CDN的服務能力與節點數量是正相關的,而幾乎所有的CDN廠商都以建多少機房節點,覆蓋多運營商來說明自家CDN的分發實力,與業內其他所有CDN服務不同,星域CDN首創了“無限節點“模式,可通過迅雷賺錢寶構建百萬量級甚至“無限”的節點網絡,從而將CDN服務能力進行數量級的擴大。


具體到星域CDN·直播旗艦版,用戶在收看直播時,播放器不僅可以從邊緣服務器拉取數據,同時也可以向賺錢寶節點拉取數據(圖3 右)。

xm

圖3


迅雷賺錢寶是一款TOC的智能硬件產品,普通家庭用戶購買後接入路由器就可以將自己空閒的帶寬、存儲等資源貢獻出來,而網心科技將這些資源再進行整合加工,就成爲了星域CDN服務。由於迅雷賺錢寶遍佈千家萬戶,所以當某個用戶收看星域CDN支持的直播活動時,他的直播數據可能就來自於其鄰居的迅雷賺錢寶節點。只要播放端“近”的賺錢寶數量足夠多,SDK就能就“近實時”拉取碎片數據完成解碼組裝,提高給播放器近實時的直播流數據。


實例

如下圖所示,直播客戶對於直播延遲和視頻流質量要求不盡相同,各家採用的視頻編碼器不同或者編碼器採用的參數不同,導致源流的gop結構不盡相同,從CDN廠商的角度,源流的gop結構是難以從程序的角度判斷的,對各家客戶做差異化處理也存在較大的困難,而統一用相同的編碼參數做轉碼則破壞了源流的gop結構,使得轉碼之後的水印流在延時數據上發生改變,有可能達不到客戶的要求。  如圖4、5、6所示,是一路直播流(1080P,4Mpbs碼率)從開播到當天23:59:59秒的通過賺錢寶的全網流量帶寬佔比(70~80%),卡頓率均值在1%左右,首屏時長平均在400ms 。

xm

 圖4:一直播流房間賺錢寶分發帶寬佔比

xm

圖5:一直播流房間高峯期時段5分鐘粒度卡頓率(%)


xm

 圖6:一直播流房間高峯期時段5分鐘粒度統計首屏時長(ms)


圖4、5、6從首屏時長,卡頓率,賺錢寶流量佔比三個數據反映了當前直播旗艦版的服務質量情況。如圖所示,用戶開播時首屏時長與直播流延時可以達到業內較高水準;在卡頓率方面平均控制在1%,遠優於傳統CDN的3~4%的水平;賺錢寶流量的佔比的穩定曲線可以看出直播旗艦版的基於“無限節點”的模式效果是明顯的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章