偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

高清視頻下如何節(jié)省帶寬?

開發(fā) 開發(fā)工具
據(jù)顯示,國內(nèi)互聯(lián)網(wǎng)流量每月被消耗 200EB,且 80% 的流量消耗來自于視頻領域。隨著 5G 的普及,云制播等得到快速發(fā)展,流量消耗會越來越大,而這背后是非常高昂的帶寬成本。如何通過技術創(chuàng)新,讓用戶流暢看高清的同時,實現(xiàn)平均帶寬成本的持續(xù)下降?

數(shù)據(jù)顯示,國內(nèi)互聯(lián)網(wǎng)流量每月被消耗 200EB,且 80% 的流量消耗來自于視頻領域。隨著 5G 的普及,云制播等得到快速發(fā)展,流量消耗會越來越大,而這背后是非常高昂的帶寬成本。如何通過技術創(chuàng)新,讓用戶流暢看高清的同時,實現(xiàn)平均帶寬成本的持續(xù)下降?本文為阿里文娛技術專家七甲的分享,將詳解介紹文娛在云邊端內(nèi)容分發(fā)領域的最新探索,希望對音視頻、泛內(nèi)容分發(fā)領域的技術同學有所啟發(fā)。

一 節(jié)省帶寬成本的技術挑戰(zhàn)

從實際業(yè)務場景出發(fā),節(jié)省帶寬成本這個命題,在技術上面臨非常多的挑戰(zhàn)。

第一,優(yōu)酷服務的終端類型多,移動端有 Android,IPhone,IPad;PC 端有 Window 和 MAC,還有 Web 端,OTT 端等等。不同終端有不同特性,在處理機制上就會不同。即使同一類終端,針對特殊機型也需要做專門適配。

??

??

 

第二,視頻業(yè)務的種類多。像直播業(yè)務,點播業(yè)務,緩存下載業(yè)務,短視頻業(yè)務,每種業(yè)務所關注的指標都不相同,比如點播會關注播放是否流暢;直播還關注時延;緩存下載主要關注下載的速度。

第三,應用場景的多樣化。即使同一業(yè)務,也有很多細分場景,處理策略也存在差異。比如直播和點播有智能檔,緩存下載有邊下邊播,點播有倍速播放。不同的網(wǎng)絡類型,在處理上也會有所區(qū)別。

第四,視頻多,長尾視頻更多。

  • 優(yōu)酷有海量的資源,而邊緣節(jié)點的存儲是有限的,并不能所有資源都存,需要從中找最熱的資源存儲。
  • 視頻格式多,不同的清晰度,會導致供源節(jié)點被稀釋掉,導致供給不足。
  • 顯著的長尾特征,大部分視頻的單日的播放量少,也需要處理方案。

二 技術策略:云邊端內(nèi)容分發(fā)網(wǎng)絡

云邊端內(nèi)容分發(fā)網(wǎng)絡,簡稱 PCDN,它是以 P2P 技術為基礎,通過挖掘海量的碎片化的閑置資源,構建高品質(zhì)低成本的內(nèi)容分發(fā)網(wǎng)絡系統(tǒng)。

??

??

 

PCDN 是一個三級網(wǎng)絡加速體系:

  • 一級是云,也就是 CDN。
  • 二級是邊緣網(wǎng)絡,包括邊緣節(jié)點,路由設備,商業(yè) WiFi 等。這些節(jié)點不會直接參與消費,主要是作為供源節(jié)點,為其它節(jié)點提供上行。
  • 三級是終端設備,這些設備是流量的主要消費者,其中一小部分能力強的節(jié)點,也可以為其它設備供源。
  • 當有設備播放視頻時,PCDN 網(wǎng)絡就可以提供視頻加速,保證視頻穩(wěn)定流暢的播放;通過合理地切換從不同節(jié)點的下載,讓成本降到最低。

從 PCDN 系統(tǒng)架構可以看出,云邊端內(nèi)容分發(fā)網(wǎng)絡分為三級網(wǎng)絡,涵蓋十多類節(jié)點,每類節(jié)點的上行能力,帶寬成本,存儲能力都各不相同。下面我們從帶寬成本,上行能力,存儲大小,節(jié)點規(guī)模,資源定位這五方面,對比一二三級各類節(jié)點的能力和特征,最后給每類節(jié)點做出定位。

??

??

 

一級節(jié)點的上傳能力強、服務穩(wěn)定,但帶寬成本很高,所以用它來下載必要的,緊急的數(shù)據(jù)。

二級節(jié)點的上傳能力比一級稍差,但 24 小時在線,能提供較穩(wěn)定的服務,在某些條件下,可用來代替一級使用。

三級節(jié)點的上傳能力弱,存儲又小,也不能保證穩(wěn)定在線。優(yōu)勢就是規(guī)模大,成本低。可以通過多點下載,就近下載,將成本大幅的降低。

所以,根據(jù)三種節(jié)點特征,揚長避短,最大化的利用每一類節(jié)點的優(yōu)勢。比如,三級節(jié)點存儲小,要最大化利用它的上行帶寬,緩存頭部非常熱的資源。二級節(jié)點存儲大,能夠穩(wěn)定供源,可以存儲中熱和長尾的視頻。 三 PCDN 底層基石:P2P 的基本原理

云邊端內(nèi)容分發(fā)網(wǎng)絡,底層用到 P2P 網(wǎng)絡技術,這張圖是一個簡單點的 P2P 模型:

??

??

 

節(jié)點 A 和節(jié)點 B 都看了《冰糖燉雪梨》的第 12 集,節(jié)點 A 先看的,觀看后本地會存有一部分數(shù)據(jù),當節(jié)點 B 在觀看的時候,可以直接從節(jié)點 A,通過點對點數(shù)據(jù)傳輸?shù)姆绞较螺d數(shù)據(jù),不需要所有數(shù)據(jù)都從 CDN 下載。 在整個數(shù)據(jù)的分享過程,可以拆分成資源緩存、節(jié)點分配、下載調(diào)度和數(shù)據(jù)分享四個關鍵環(huán)節(jié)。

??

??

 

1 資源存儲

第一個環(huán)節(jié),資源存儲。在這個環(huán)節(jié)中做了三事情:

  • 如何標識一個資源?
  • 將各類資源歸一化,切成一個個固定大小的分片。
  • 決定哪些資源該存,哪些資源不該存?

資源標識

要標識一個資源,大家首先會想到的是 URL,但 URL 太長,在交互過程中不方便,并且會增加傳輸帶寬的損耗;另外,URL 中的很多可變元素,比如時間戳,鑒權信息等干擾信息必須去掉,否則會導致同一個視頻生成不同的資源 ID,不能相互分享。

優(yōu)酷有一套資源 ID 的生成算法,會根據(jù) URL 關鍵特征信息,生成全局唯一的資源 ID,且長度小于 URL 長度,便于交互。

資源分組

第一,優(yōu)酷有海量的視頻資源,有的文件很大,一旦超出緩存上限,就無法在本地緩存整個資源,無法做 P2P 分享,所以說要做切分。

第二,不同的視頻格式,比如 HLS 格式,會先請求一個 TS 索引文件,再依次請求每一個 ts。不同的視頻格式如果單獨處理,邏輯復雜度,且維護成本非常高。所以我們會在下載入口將視頻資源做分組,歸一成固定大小的文件,統(tǒng)一下載內(nèi)核,簡化邏輯,減少維護成本。

第三,有助于提高分享效率。前面講 P2P 原理,節(jié)點 A 無需等整個視頻看完,前面的數(shù)據(jù)就可以分享。如果以整個視頻為單位進行分享,必須等整個視頻數(shù)據(jù)下載完成,效率就會非常低。

第四,提高緩存利用率。一個基本常識,如果將視頻按時間切分,每個時間點的播放數(shù)并不相同。例如片頭片尾,觀看的人非常少;另外,細心的同學會留意到,在進度條上方有很多劇情提示,精彩劇情會被反復觀看。特別在綜藝節(jié)目中,當某位明星出現(xiàn)時,觀看的次數(shù)會明顯增多。而對不精彩的劇情呢,很多人會拖拽視頻,跳過去播放。所以,在切片之后,我們可以對播放量多的視頻多存儲,對于播放量少的視頻少存儲,從而提高整體的資源利用率和 P2P 分享率。

資源存儲

消費端在每個分片下載時,都會從服務端請求這個分片對應的節(jié)點列表,服務端就可以根據(jù)這個分片被請求的次數(shù),來推算出大致的播放量。并且服務端有所有資源的被訪問記錄,就可以判斷哪些分片是熱門的,哪些是冷門的。邊緣節(jié)點在和服務端交互時拿到這個信息,來決定哪些資源該存,哪些不該存。

??

??

 

2 節(jié)點分配

第二個環(huán)節(jié),是節(jié)點分配。在這個環(huán)節(jié)中包括節(jié)點篩選,節(jié)點調(diào)度和智能分配。

節(jié)點篩選

第一個是根據(jù) NAT 類型過濾。所謂的 NAT 就是地址映射,是為了解決 IPv4 地址短缺的問題而引入的。大部分家庭網(wǎng)絡終端設備都是在路由下面,實際分配的是一個內(nèi)網(wǎng) IP 地址,訪問外網(wǎng)會通過 NAT 映射出一個公網(wǎng) IP 和端口,我們常見的 NAT 類型有四種:全錐形、地址受限型、端口受限型和對稱型。其中“對稱型和對稱型節(jié)點”之前、“對稱型和端口受限型節(jié)點”之間的連通性是非常差的。所以,我們會根據(jù) NAT 類型,將無法連通的節(jié)點過濾掉,提供返回的有效節(jié)點比例。

第二個是節(jié)點質(zhì)量過濾。在大規(guī)模的節(jié)點網(wǎng)絡中,節(jié)點能力參差不齊,如果優(yōu)質(zhì)節(jié)點和質(zhì)量差的節(jié)點混合在一起,就會增加端側節(jié)點質(zhì)量評估的成本。因此需要過濾掉質(zhì)量差的節(jié)點,提高返回節(jié)點的整體質(zhì)量。

節(jié)點調(diào)度

第一個是就近原則。在距離維度上將節(jié)點劃分成 5 個范圍,范圍從小到大,依次是:鄰近節(jié)點,本市,本省,本大區(qū),全國。其中鄰近節(jié)點主要,指同一個社區(qū),企業(yè),校園等。從數(shù)據(jù)上看,距離越近,速度越快,延遲會更低。

第二個是能力匹配原則。打個比方,節(jié)點 A 的上行能力是節(jié)點 B 的兩倍,那么在分配次數(shù)上,按 2:1 的比例分配節(jié)點,這樣就能將 A 和 B 節(jié)點的上行能力最大化的發(fā)揮出來。否則如果按 1:1 的比例分配,可能會出現(xiàn),A 的上行跑不滿,而節(jié)點 B 的負載過高等問題。

智能分配

前面的篩選和調(diào)度,主要是針對供給側節(jié)點信息的。而動態(tài)分配主要是針對消費側的信息的,就是消費節(jié)點在請求節(jié)點的時候,會上報一些當前請求的信息,動態(tài)計算出需要返回的節(jié)點個數(shù),以及不同節(jié)點的比例。

第一個是清晰度,清晰度越高,需要的節(jié)點個數(shù)越多。

第二個是 buffer 水位,當 buffer 水位較低時,多分配一些高質(zhì)量的節(jié)點,提高下載速度;當 buffer 水位較高時,多分配一些低成本的節(jié)點,降低帶寬成本。

第三個是,不同的節(jié)點按一定的比例返回,保證每一種節(jié)點都能分配到,同時也給端側一些決策空間。

3 下載調(diào)度

第三個環(huán)節(jié),是下載調(diào)度。在這個環(huán)節(jié)中包括調(diào)度策略,節(jié)點管理和任務分配。

調(diào)度策略

在左邊這個圖形中,下面這個是播放進度條。這個點所在的位置就是播放點,播放點左邊的數(shù)據(jù),是已經(jīng)播完的數(shù)據(jù),是藍色的線,播放點右邊灰色的這段區(qū)間是本地有緩存數(shù)據(jù)的區(qū)間,再往右這段,是將要下載的數(shù)據(jù)區(qū)間,這個點也叫下載點。

??

??

 

在下載調(diào)度上,我們的基本原則是:體驗優(yōu)先,兼顧成本。

根據(jù)播放點后面,buffer 水位的高低,可以劃分成幾個區(qū)間,紅色這個區(qū)間,是緊急區(qū),說明當前的 buffer 數(shù)據(jù)比較少,如果不及時補充數(shù)據(jù),可能會影響播放體驗,這個區(qū)間內(nèi)主要是從 CDN 節(jié)點下載,快速填滿 buffer;中間這個區(qū)間是過渡區(qū),buffer 數(shù)據(jù)沒有那么緊急了,可以讓一部分數(shù)據(jù)從二三級下載,如果,buffer 水位降低,可以繼續(xù)用一級下,如果 buffer 水位升高,則可以用二三級接管下載。最右邊的區(qū)間是安全區(qū),可以全都走二級和三級下載。當然,這里面會有很多細節(jié)的策略,比如這兩條水位線,并不是固定不變的,而會根據(jù)歷史卡頓情況,當前網(wǎng)絡質(zhì)量,P2P 節(jié)點數(shù)和下載速度等,實時決策,動態(tài)調(diào)整的。

節(jié)點管理

首先是節(jié)點獲取,這里為了節(jié)省和服務端交互的損耗,在上一個分片沒下完的時候,可以提前獲取下一個分片的節(jié)點,并且提前建立好一部分連接,等當前分片開始下載的時候,就可以直接發(fā)送任務請求。在每個節(jié)點的下載過程中,會根據(jù)節(jié)點的首包時間,下載速度,任務完成數(shù)量和質(zhì)量等信息,給節(jié)點打分。最后任務會逐步收斂到質(zhì)量好的節(jié)點上,而質(zhì)量差的節(jié)點,就會被逐步淘汰掉。 任務分配

這里面我們遵循多勞多得的方式,給下載速度快,完成質(zhì)量好的節(jié)點,優(yōu)先分配任務和分配更多的任務。同時,會監(jiān)測每個節(jié)點當前的下載速度,RTT,提前預判后面的數(shù)據(jù),是否會超時,如果預判會超時,就會提前回收任務,再分配給其他節(jié)點,而不會死等改任務超時。

??

??

 

4 數(shù)據(jù)分享

第四個環(huán)節(jié),是數(shù)據(jù)分享。數(shù)據(jù)分享的過程,其實就是兩個節(jié)點之間建立連接,發(fā)送任務請求,供給端收到后,如果本地有數(shù)據(jù),就會返回實際數(shù)據(jù)。最后在消費端會統(tǒng)一對數(shù)據(jù)數(shù)據(jù)做校驗,判斷是否被篡改,確保數(shù)據(jù)的一致性,這么一個過程。

節(jié)點連接

這里面重點講一下節(jié)點之間的連接,這里說的連接主要指節(jié)點間的建立一種連通性,互相發(fā)包,對方能收到。節(jié)點間的連接主要有三種方式,有直連,反連和打洞三種方式,直連主要是用在對端是公網(wǎng)節(jié)點,可直接訪問的,比如大部分邊緣節(jié)點都在公網(wǎng)上,終端設備可以通過直連的方式訪問;反連主要是用在,己方在公網(wǎng),可以直接被訪問,對端在 NAT 后面,這時候可以向?qū)Ψ降?Relay 發(fā)一個反連請求,由對端的 Relay 轉發(fā)給這個節(jié)點,再由對端發(fā)起向自己的直連,這種在己方在公網(wǎng)上,或者是全錐地址類型的時候,可以用。最后是打洞,這種方式,常用在兩個節(jié)點都在 NAT 后面。

數(shù)據(jù)傳輸

節(jié)點連通之后,主要就是協(xié)議交互和數(shù)據(jù)傳輸,這里我們也自研了一種可靠的 UDP 傳輸方式,同時優(yōu)化了里面的擁塞控制算法,增加快速啟動,丟包預判,快速重傳等機制,讓傳輸更加的高效。 數(shù)據(jù)校驗

數(shù)據(jù)校驗是為了保證數(shù)據(jù)的一致性。在 P2P 網(wǎng)絡中,如果有臟數(shù)據(jù)是非常致命的,因為它會一傳十,十傳百,快速擴散到整個網(wǎng)絡中,污染整個網(wǎng)絡數(shù)據(jù)。針對此,我們也有一套非常完備的方案,從磁盤存儲,上傳鏈路,網(wǎng)絡傳輸,下載鏈路等各環(huán)節(jié)都增加了校驗機制。

常見的校驗方法主要有 MD5,CRC 等。MD5 的安全性高,但性能開銷大,Crc 的安全性較弱,但性能開銷少。我們也采用了 MD5+Crc 相結合的技術方案,對關鍵數(shù)據(jù)做 MD5 校驗,對非關鍵數(shù)據(jù)做 crc 校驗,即保證數(shù)據(jù)一致性,又能最大化降低性能損耗。

??

??

 

通常情況下,劇集的熱度越高,越節(jié)省成本。因為熱劇的播放量大,供源節(jié)點多,分享效果好。但是,新片源并不適用這個規(guī)律。因為資源緩存需要一個時間窗口,很多熱劇熱綜都會選擇在晚間整點發(fā)布,用戶也會在發(fā)布的第一時間觀看,而新發(fā)布的片源在短時間內(nèi),并沒有那么多供源節(jié)點。在這一時間窗口內(nèi),供需非常不平衡,P2P 分享率也比較低。

針對此,我們采用了智能預推和快速回源方案。所謂智能預推,是綜合前幾集的播放量,同類視頻播放量的變化曲線,以及地區(qū),運營商,清晰度等維度的播放信息,計算出需要往哪些地區(qū)的邊緣節(jié)點,推送多少副本數(shù),在新片上線前,提前推送下去。

所謂快速回源,主要是針對不容易預測的,短時間內(nèi)訪問量突然增加的資源,通過回源到邊緣節(jié)點,讓邊緣節(jié)點快速下載整個視頻,對之后再觀看視頻的節(jié)點進行加速。

通過這兩個方法,熱門劇集上線時,就不用擔心沒有供源節(jié)點,或者供源節(jié)點不足,導致分享率低。

??

??

 

大型直播主要指大型活動、體育賽事直播,比如像雙11 貓晚、春晚,國慶閱兵直播、世界杯直播等。 直播和點播的場景差異較大,挑戰(zhàn)也比點播大,主要表現(xiàn)在幾個方面:

  • 首先是低延時。為了減少直播時延,在直播場景中實時能拿到的數(shù)據(jù)量非常有限,并且大家的播放點都是接近的,可供分享的數(shù)據(jù)非常少,所以會導致整體的供源節(jié)點不足。
  • 其次是 buffer 水位低。因為數(shù)據(jù)量有限,一般只能拿到 2-3 個 ts,時長只有幾秒到十幾秒,這對調(diào)度的要求非常高。前面提到的點播的緊急區(qū)水位,在幾十秒用來抗網(wǎng)絡抖動,但是直播不會有那么多 buffer。所以如果調(diào)度策略不合理就很容易造成卡頓。但前面讓出的 buffer 水位過多,又會減少 P2P 分享。
  • 第三是高動態(tài)。對于點播來說,只要這個設備已經(jīng)緩存了該資源,那么不需要用戶在線看這個視頻,也可以對外分享,和用戶行為無關。但是,直播場景并不是這樣的,在直播場景中一旦退出直播間,這路流的數(shù)據(jù)就斷了,就不能再為其它節(jié)點供源。而在直播過程中,進出直播間是很常見的。

為了提高直播整體的分享率效率,這里我們重點引入了邊緣節(jié)點。一是將邊緣節(jié)點作為供給,邊緣節(jié)點的服務相對是比較穩(wěn)定的;其次,是邊緣節(jié)點在數(shù)據(jù)內(nèi)容的更新上,會和 CDN 保持高度同步,在大部分情況下用來代替一級。

四 實戰(zhàn)經(jīng)驗分享

對于大型復雜的網(wǎng)絡系統(tǒng),需要學會從點線面體不同的視角去看系統(tǒng),從大到小,層層深入,同時又能夠跳出系統(tǒng),看到系統(tǒng)整體的內(nèi)外部環(huán)境,上下游交互??傮w上,需要去理解整體系統(tǒng)的業(yè)務模式和運作原理。在面上,需要去熟悉系統(tǒng)各個面的劃分和交互,比如 PCDN 里面就包含了調(diào)度面,管控面,業(yè)務面,基礎服務等等。在線上,需要去拆解每個面上的基礎功能模塊,以及不同層級的劃分,比如業(yè)務面上,有上傳,下載,發(fā)布等等。在點上,需要深入了解每個技術點,算法策略等等。

首先,面對一個復雜的網(wǎng)絡系統(tǒng),第一步要做的就是拆解。將一個系統(tǒng),拆分成幾個子系統(tǒng),明確每個子系統(tǒng)的職能,輸入是什么,輸出是什么。當然,光拆解還不夠,要對每個子系統(tǒng)定義出指標,用來反應系統(tǒng)的優(yōu)劣,并將所有的指標通過數(shù)據(jù)和報表展示出來。這樣就能看到整個系統(tǒng)的全貌,以及哪里有瓶頸。

??

??

 

其次,技術一定要與業(yè)務深度融合,才能發(fā)揮最大價值。例如,前文提到的倍速播放,如果在下載調(diào)度決策時,不能準確獲取播放的倍速信息,就可能誤判,導致原來需要從 CDN 下載的時候,沒有去下載,造成卡頓。 最后,建模和快速迭代。在整個 PCDN 網(wǎng)絡系統(tǒng)中,有很多的場景和功能都可以抽象成日常生活中的模型,例如下載調(diào)度算就像一個蓄水池模型,節(jié)點調(diào)度其實是一個供需模型等等。當建立好模型后,還需要及時的反饋,這其中有很多方式,可以通過壓測,用大量樣本去訓練,還有分桶驗證等其他方式,通過這些方式去判斷模型的優(yōu)劣,以及找到模型當中各參數(shù)的最優(yōu)解。

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2013-03-08 16:35:17

高清視頻會議華為TE30

2009-12-14 16:26:50

動態(tài)路由協(xié)議

2020-12-10 19:28:19

聲網(wǎng)直播CDN

2009-11-11 16:13:19

路由器協(xié)議

2015-01-04 17:16:13

2016-11-22 08:16:00

優(yōu)化帶寬新媒體

2015-01-04 17:19:30

迪普科技應用交付

2013-04-22 13:47:43

華為一體化智能視訊TE30

2013-04-30 12:11:25

華為視頻會議TE30

2021-07-20 10:20:55

騰訊云音視頻超高清

2015-07-03 09:02:52

跳躍服務器帶寬

2013-07-05 10:12:35

2011-08-15 10:37:21

視頻極速流量

2009-08-18 11:16:05

Ubuntu系統(tǒng)高清視頻linux系統(tǒng)

2022-12-20 15:24:11

NAT

2011-09-02 10:29:00

2013-10-12 09:11:28

WLANWiFi802.11ac

2016-02-15 11:38:24

視頻會議華為

2017-02-20 11:26:58

VDI閃存存儲

2009-03-25 09:57:00

視頻會議視頻通信會議系統(tǒng)
點贊
收藏

51CTO技術棧公眾號