百科 > IT百科 > 百科學堂 > 正文
百科學堂

讓肥宅無延遲見血小板 B站“強拆”了進度條

  就算你手持4G無線流量卡,就算你坐擁百兆寬帶,那又怎麼樣?遇上信號不好、網路波動,追番的你還是要忍受Loading動畫在你眼前頤指氣使——就喜歡你看不慣我又幹不掉我的樣子

bilibili

  不過這樣的日子終於要結束了。

  為了把Loading動畫幹掉,B站將引入Dynamic Adaptive Streaming over HTTP(又稱為MPGE-DASH)技術,翻譯成中文來說就是網路動態自適應流媒體技術。

  在介紹DASH技術之前,我們先來回顧一下視頻網站常見的流媒體方案。

  我們最熟悉的視頻格式莫過於FLV和MP4,在新方案出來之前,幾乎所有的視頻網站都是採用「整段加載」的FLV或MP4格式(可以理解成進度條加載完,整個視頻也下載完了)。

整段FLV或MP4

  採用這樣的方案原因很簡單,一是格式簡單,便於壓制;二是相容性高,能夠適應多種平台。但其缺點也很明顯,隨著視頻時長增加,整段視頻(尤其是MP4格式)體積會變得非常龐大,導致拉取和加載就會變得極為緩慢。無限劍制的詠唱就變成這種模樣——

  「體ゾザ出來サゆペ

  血潮ゾ室N 心...Loading中...ゾ硝子

  幾ギヂソ場メ越りサ...Loading中...不敗

  ...Loading中...ギクソ一度パ敗走ゾスゑ

  ギクソ...Loading中...一度パ理解イホスゆ 」

  估計是怕被賤骨頭(理論上不止)拿去祭天,B站攻城獅們在16年的時候選擇了分段FLV的方案。分段FLV意思就是把整段FLV分割成一個一個小段,用戶想看哪娷I哪堙A視頻也就只加載落點的那一小段。不用從0%開始,加載速度自然更快了。

分段FLV

  然而即便是在分段的情況下,高清晰度視頻還是比較難保證播放中途或者拖拽時不出現緩衝的情況。於是,就有了即將引入的DASH。

  按奶粉的理解,DASH技術其實可以看做是分段FLV的陞級版,兩者根本的區別在於前者可以自動調整視頻碼率,而後者在默認情況下只能一個碼率播到底。

DASH

  具體來說,DASH會透過MPD(Media Presentation Description)將視頻內容切割成一個個很短的文件片段,每一個片段擁有不同的視頻碼率,DASH Client(即用戶端)可以根據網路狀況選擇一個碼率播放,不同碼率之間可以實現無縫切換。

視頻碼率:數據傳輸時,單位時間傳送的數據位數。碼率越大,畫質越好。我們平時在視頻右下角選擇的360P、720P、1080P分別對應500kbps、2000kbps和3000kbps碼率。

  下圖很好地解釋了DASH的應用流程:當用戶端偵測到網速不佳時,原本1080P(3000kbps)清晰度的視頻會預先將下一個片段切換至480P清晰度;當網速充足時,用戶端則會預先將下一個片段切換到更高清晰度的規格。不論網速怎樣,你都能及時追上血小板!

DASH

  為了讓大家更直觀地感受這個「無縫切換」的過程,奶粉截取了最早引入DASH技術之一的YouTube的視頻片段。大家留意看右下角的清晰度變化,隨著網速不斷上昇,視頻清晰度從144p逐步切換至240p、480p,但整個播放過程沒有出現絲毫的卡頓脫節。

Youtube

  不過「無縫切換」並不代表「無感切換」,從720p到240p的清晰度變化對於絕大多數人來說還是肉眼可辨的。對於番薯們的終極渴望——「不卡+清晰」,DASH只是最大程度地優化了前者。要想實現後者的慢網看高清,到底還是看壓制技術,而這一天尚有時日。

  B站在這個時候引入DASH,除了為了提升用戶體驗之外,更大的原因在於自身國際化進程的要求。屬於B站的納斯達克之鐘已經敲響,要想實現「無國界地用愛發電」,技術國際化必不可少。

嗶哩嗶哩

  在B站之前,YouTube、Netflix、Hulu這些站在塔尖上的老大哥已經完成了DASH的部署。這相當於默認了DASH作為下一代國際流媒體技術標準的事實。因此,將引入DASH無疑是B站與國際接軌的最好選擇,至少在技術上如此。

  DASH一詞本身有著「猛衝」之意,或許在番薯們看來,這不僅僅是B站的猛衝,這也是二次元的一次猛衝。下一次喊口號,是不是該加一句:用愛發電,Dash,Dash!

網友評論