直播源代碼,CDN也存在難點難以解決
CDN一直是直播源代碼搭建不可缺少的一部分,它可以幫助增加直播視頻流的傳輸速度、保存直播回放、儲存視頻數(shù)據(jù)等,CDN似乎已經(jīng)成為直播源代碼默認(rèn)的三方工具,但就是這么一個強(qiáng)力的輔助工具,它也有無法解決的難點存在。
?

一、CDN難點
1、播放延遲,播放延遲多是由網(wǎng)絡(luò)延遲造成的,是指從主播端采集到觀眾端播放之間的時間差。本身CDN是為了加速直播源代碼傳輸直播畫面存在的,為什么這里說播放延遲是CDN難以解決的難點呢?
在節(jié)點少、網(wǎng)絡(luò)情況較好的情況下,網(wǎng)絡(luò)延遲相對是最小的,及時存在緩存,延遲也能控制在1-2秒內(nèi),但同樣的網(wǎng)絡(luò)環(huán)境下,節(jié)點變多就會增加網(wǎng)絡(luò)的延遲,本身用戶請求由CDN發(fā)送到指定節(jié)點上響應(yīng)有需要時間,網(wǎng)絡(luò)不好了,這個時間也會變得更長
2、網(wǎng)絡(luò)抖動,與上述情況一樣,保證畫面流暢的前提是每一幀的動畫都能跟上,一旦有一幀動畫遇到了網(wǎng)絡(luò)擁堵,播放端就無法按照接收順序把內(nèi)容播放出來,網(wǎng)絡(luò)抖動下會造成播放延遲對應(yīng)增大
?

二、針對CDN難點的解決方案
直播源代碼常用的CDN是存儲轉(zhuǎn)發(fā)結(jié)構(gòu),目的是為了能實現(xiàn)各個邊緣節(jié)點緩存分發(fā)內(nèi)容,是以源站為基礎(chǔ),分配到下面各個小節(jié)點上。SDRTN不一樣,它本質(zhì)上是實時傳輸網(wǎng)絡(luò),用戶的數(shù)據(jù)在網(wǎng)絡(luò)單元內(nèi)部和傳輸線路上都以實時交換方式傳送,從而保證最低延遲。
如此來看是不是就要拋棄CDN呢?當(dāng)然不是,SDRTN只是一個傳輸協(xié)議,可以選擇拋棄傳統(tǒng)基于TCP協(xié)議的方案,從底層協(xié)議和布網(wǎng)上選擇UDP協(xié)議的方案。
?

三、CDN的工作流程
我們來看一下CDN在直播源代碼中的工作流程
主播開始直播,向DNS發(fā)送解析請求,DNS返回最優(yōu)的節(jié)點IP地址,主播端采集音視頻數(shù)據(jù),發(fā)送給CDN節(jié)點,CDN節(jié)點進(jìn)行緩存等處理,觀眾端要觀看直播,開始向DNS發(fā)起請求,DNS返回最優(yōu)節(jié)點IP地址,用戶向CDN節(jié)點請求音視頻數(shù)據(jù),CDN節(jié)點同步其他節(jié)點的以視頻數(shù)據(jù),最后由節(jié)點將直播內(nèi)容發(fā)送給用戶。
雖然CDN節(jié)點存在部分難點,但它發(fā)揮的作用仍然是直播源代碼無法舍棄的。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉(zhuǎn)載,否則將追究相關(guān)法律責(zé)任