天天看點

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

藍光和4k視訊正逐漸普及,4K視訊峰值碼率超10Mbit/s。架構平台部TVideo平台從資源,鍊路、緩存、接入進行調優,有效解決4k高碼率視訊的二次緩沖問題,播放體驗全面領先競品。

歡迎大家前往雲+社群,擷取更多騰訊海量技術實踐幹貨哦~

由 騰訊技術工程官方号 釋出在雲+社群

背景

随着音視訊編解碼、超分辨率、VR/AR等技術的發展,iPhone8、4K電視、VR眼鏡等終端裝置的更新換代,高碼率高分辨率片源(4K視訊、360°全景視訊等)的層出不窮,多媒體使用者觀看體驗正在逐漸更新,整個行業生态鍊正在快速向高品質内容切換。

就分辨率而言,上面提到的4K視訊指分辨率達4096*2160的片源,對比其它分辨率還有2K(2560*1440)、1080P(1920*1080,目前騰訊視訊藍光的分辨率)等。騰訊視訊在2017年下半年為進一步提升使用者體驗推出“杜比特權”,引進4K片源(見圖1)。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

分辨率的提升必然伴随着碼率的提升。相比藍光視訊的3Mbit/s碼率,杜比特權4K視訊峰值超過10Mbit/s,這對背景下載下傳(Tvideo平台)帶來巨大挑戰,為提供至少10Mbit/s下載下傳速度,需要在網絡延時、緩存IO、回源速率等方面進行優化更新。

1.Tvideo平台介紹

騰訊視訊Tvideo平台營運着公司内部各項重要音視訊業務,除騰訊視訊外,還為空間視訊、QQ音樂等提供支撐。擁有16T+自建帶寬,億級别的視訊庫。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

i

Tvideo采取多層緩存,冷熱分類架構。音視訊檔案上傳到Tvideo背景源站,源站存儲子產品為每個檔案加入特征資訊,防止惡意使用者盜鍊,分析檔案熱度,按不同優先級将檔案推送到中間源;中間源緩存按業務進行軟體隔離,保障每個業務有獨立存儲空間;城域點負載邊緣加速,通過排程、鍊路加速等措施保障資料快速傳輸到使用者終端。

2.高碼率視訊背景優化揭秘

目前高碼率視訊面臨着網絡延時,緩存IO不均,接入/回源耗時帶來的卡頓等一系列問題,如杜比視界4K節目,碼率峰值高達10Mbit/s,一部電影高達10GB存儲,如何保障背景服務品質,提升使用者觀看體驗?

針對上述問題,Tvideo平台在鍊路、緩存、接入等做了多項優化,解決緩存負載、鍊路卡頓、播放高延時等問題。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

2.1 鍊路加速

用戶端播放媒體過程中,沒有出現任何卡頓稱之為無緩沖,反之稱之為二次緩沖,無緩存占比越高,說明背景服務越好,鍊路加速重點解決使用者播放音視訊卡頓的問題。

引起卡頓的因素很多,如背景網卡降速,傳輸網絡波動、跨省&營運商通路速度跟不上、小片請求造成IO碎片等。Tvideo通過如下政策,解決鍊路帶來的卡頓:

  1. 極速分發:多線程10MB/s速度下發,異步落盤
  2. 資料合并:HLS多分片合并直出,僞流處理
  3. 回源加速:根據用戶端場景,後端自動加速
  4. 慢速修正:支援跨網矯正,慢速連結協定棧加速
  5. 按碼率回源:根據現網回源速度,自動選擇最佳回源路徑

對于檔案在邊緣節點不命中場景,分為熱點不命中和普通檔案不命中,鍊路加速政策分别使用極速分發和回源加速,實作邊緣節點“100%命中”。

極速分發指的是将檔案從源站快速分發到邊緣節點,解決源站、中間源等繁忙鍊路擁堵的情況,極速分發通過P2P組網、分級削峰、智能識别碼率等方式,實作秒級内将一個切片視訊推送到全網,在騰訊視訊熱劇搶先看、熱點突發、會員保障等場景,發揮着重要的作用。由于分發網絡節點間熱點互通,将全網TOP(k)高碼率熱點檔案分發到邊緣節點,實作熱點視訊邊緣命中,減少鍊路延時。

對于普通普通不命中場景,采取回源加速政策,每次回源記錄回源速度,高碼率視訊使用回源速度大于碼率3倍以上的回源IP,無法滿情況下,采取多回源IP并發分片回源。

杜比視界4K視訊采取fmp4分片,由于fmp4切片檔案過小,每次回源請求小分片造成鍊路速度達不到預期,Tvido采取進行多分片合并回源下載下傳政策,減少鍊路延時。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

上圖測試音頻小檔案多個分片合并的回源速度,可以看到,在TCP沒有建立起來的情況下,将多個小分片合并回源速度效果明顯。

當然背景鍊路加速還包括對用戶端通路區分優先級,當用戶端進行緊急下載下傳,後端使用多連接配接加速;對于慢速請求,則選擇協定棧加速等,通過上述優化,最大限度縮減耗時,保障鍊路下載下傳速度。

2.2 緩存優化

緩存是Tvideo的核心子產品,包括緩存按業務管理政策,熱點檔案&分片界定算法,冷檔案淘汰、全局負載均衡等算法。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

image.png

上圖所示為Tvideo平台城域點機房叢集架構,其中中心索引子產品維護叢集中所有檔案的索引資訊,下載下傳HTTP子產品負責業務請求的接入,資料存儲子產品負責冷熱資料管理。

冷熱資料存儲子產品和記憶體緩存統稱為緩存,熱點分級是緩存子產品的分級是緩存子產品的核心,對于普通視訊熱點統計政策相對簡單:下載下傳HTTP子產品在接入階段通過邊緣計算,快速處理70%左右的熱點請求;而相對冷的請求,通過中心索引子產品計算,通過以上熱點統計分級計算,實作熱點快速統計。

而對于高碼率視訊,除了使用上述正常方法,另外對緩存進行了特定的分級,包括根據機房次元分級,根據通路模型分級,根據碼率進行IO分級和熱點擴散分級。

2.2.1 根據機房次元進行緩存分級政策

Tvideo平台每個機房品質存在一定差異,這樣可以把資源分為優質資源和普通資源,通過現網通路流水分析得到不同機房品質情況後,将整個平台的緩存資源池按碼率進行劃分,對于普通機房,緩存更多的低碼率視訊,優質機房用于緩存高碼率視訊。通過機房排程完成優質機房服務高碼率請求,避免高碼率視訊請求命中低品質機房的情況。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

優質資源在檔案淘汰過程中,保障高碼率檔案每次淘汰數量小于标準淘汰值(如高碼率每次淘汰5%,普通視訊每次淘汰10%),保障機房更多的空間存儲高碼率視訊;而對于普通機房,一般隻覆寫低碼率業務,隻有在資源不夠的時候才會用上,可以空出更多存儲供普通視訊等業務使用。通過上述實體媒體的分級,保障業務品質。

2.2.2 根據用戶端通路模型進行緩存分級

根據用戶端通路模型,可以将用戶端下載下傳過程分為快速階段、漸進式階段、P2P階段。由于用戶端每個階段要求的下載下傳速度不一樣,後端緩存需要能夠區分不同階段,進而進行特殊處理。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

使用者觀看一部影片,從用戶端播放邏輯看,在剛開始播放時,用戶端進入快速下載下傳階段。該階段用戶端播放器緩沖區沒有資料,要求快速填滿播放器緩沖區,以便減少網絡抖動等因素帶來的卡頓。當用戶端緩沖區填滿後,用戶端進入漸進式P2P階段,該階段用戶端停止向背景下載下傳,采取P2P下載下傳,如果P2P速度過慢,當緩存的内容過少時,再次向背景Tvideo下載下傳,此過程叫漸進式下載下傳。簡單舉個例子,用戶端首次播放,快速下載下傳180秒将緩沖區填滿,播放器開始播放,同時進入P2P下載下傳,由于P2P下載下傳速度達不到高碼率要求,當用戶端緩沖區小于90秒後,用戶端會向背景Tvideo平台繼續下載下傳,直到将緩沖區填滿。

上述三個階段對Tvideo背景速度要求不一樣,背景根據邊緣計算,探測到快速下載下傳階段的請求後,進行緩存記憶體加速,将部分資料預拉到記憶體。而漸進式下載下傳過程中,背景根據檔案VID進行預測,将檔案預熱到高速緩存媒體上。在P2P補洞階段,進行緩存負載均衡,保障機房内緩存負載相對平衡。

2.2.3 根據檔案碼率進行IO分級

目前Tvideo平台機房叢集采取SATA和SSD存儲混搭模型,解決回源較高問題,如SATA統一使用4T盤,保障邊緣節點有足夠的存儲,能夠擋住熱點,根據通路熱度,逐漸向高速媒體SSD上擴散。由于SATA單盤隻能支援120Mbit/s,暫不考慮其它請求,若一個機房同時有大于12個使用者通路同一個4K檔案(10Mbit/s)時,SATA單盤将無法支撐所有使用者的下載下傳,需要快速将檔案擴散到SSD上備份。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

由于普通視訊和高碼率視訊對機房叢集内熱點擴散的需求不同,特别是4k視訊這類音視訊分開存儲,高碼率視訊對下載下傳速度敏感業務,按碼率和IO頻率分級,向SSD和記憶體擴散,解決由于磁盤速度不夠,帶來的卡頓問題。

2.3 接入優化

接入優化主要解決跨省、跨營運商、資源不足等情況造成的卡頓,通過合理配置設定資源,解決由于資源不夠,帶來的卡頓。

用戶端每次播放前,通過Tvideo排程平台接口擷取具體下載下傳位址,排程平台根據用戶端的IP、碼率等資訊,選擇一個合适的機房,通過負載均衡算法,選擇機房的一個可以下載下傳位址傳回給用戶端,用戶端擷取到下載下傳位址後,向機房進行通路。簡單的可以了解為,一個上海電信的使用者請求播放,首先會通路Tvideo排程平台,然後Tvideo傳回上海電信0001機房的一個下載下傳位址給用戶端,用戶端向上海0001機房請求資料。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

針對高峰期資源緊張、高碼率視訊卡頓率高,通路品質得不到保證的情況,進行排程分級政策:将VIP、高碼率視訊盡量本地覆寫,而低碼率、音頻、離線下載下傳等業務,排程到二級資源或者區域資源,保障播放品質。如上表,當晚高峰,上海市區資源不夠,将VIP高碼率的排程到上海本地,而VIP低碼率的排程到二級覆寫,而離線下載下傳排程到區域覆寫如華東資源空閑的地方。

針對小營運商多出口問題,通過排程特征串,進行二次排程,解決跨網帶來的卡頓。如上海移動使用者通過Tvideo排程平台排程到了上海電信0001機房,用戶端通路上海電信0001機房的下載下傳伺服器,下載下傳伺服器發現用戶端IP不是電信的,傳回302,讓使用者跳轉到移動IP,進行通路。

總結

從資源,鍊路、緩存、接入進行調優,并通過碼率分級、IO分級、業務分級等多角度優化,有效解決藍光、4k高碼率視訊的二次緩沖問題。下圖是自建和外包的無緩沖率的對比,通過上述優化,高碼率無緩沖率提升1.5%。

從藍光到4K,騰訊視訊高碼率下載下傳背後的技術

相關閱讀

騰訊視訊 web 站點 https 改造:總結篇

騰訊視訊:如何更好地利用 cdn 支援業務?

十億級視訊播放技術優化揭密

此文已由作者授權雲加社群釋出,轉載請注明原文出處

海量技術實踐經驗,盡在雲加社群!

https://cloud.tencent.com/developer