本文來自Bigo多媒體技術團隊的投稿,詳細介紹了Bigo多媒體技術的前生今世,經過何種技術手段支撐起了BigoLive、Likee和imo三大業務。技術棧具體涉及編解碼、傳輸、全球基礎設施架構等三方面。若是你也有獨到的經驗與思考,歡迎經過contribute@livevideostack.com投稿給咱們。
--------------
node
BIGO從2014年創立至今一直聚焦在全球範圍提供音視頻服務,短短五年時間已穩定進入全球App收入排行榜前十。旗下全球視頻直播社區Bigo live,短視頻內容創做平臺Likee,音視頻通信imo服務於全球150個國家的4億多用戶,已造成了涵蓋「實時多人語音/視頻+直播+點播」全面完善的音視頻產品矩陣。
B
IGO能在全球音視頻業務領域高歌猛進,與在音視頻技術領域多年的深厚積累是密不可分的
。
回顧過去十年,YY一直都是國內互聯網業界音視頻技術的開拓者與領軍者。
2008年YY語音的巨大成功,2010年開創音視頻直播,2017年YY Live贏得移動音視頻直播的千播大戰,再到2018年孵化的遊戲直播「虎牙」在紐交所上市,到2020年海外直播BigoLive持續進入全球App收入排行榜前十,Likee成爲全球用戶規模第二的短視頻平臺,都離不開音視頻技術強大的支撐。
BIGO音視頻技術從創立初就站在在YY行業領先的音視頻技術的基礎之上,針對全球複雜多樣的終端分佈與網絡環境,通過多年三大超大規模核心業務在真實場景下的千錘百煉,進一步沉澱出了針對全球當地環境極致優化的BIGO音視頻技術總體解決方案。
BIGO全球音視頻技術總體解決方案的核心能力包括:
a) 超大服務規模:
單月服務的音視頻時長超過100,000,000,000分鐘,在全球範圍內數一
數二
b) 支持海量用戶同時在線:
提供千萬人同時在線的實時視頻互動服務
c) 優質服務能力:在全球複雜網絡環境下提供QoE/QoS行業領先的優質音視頻服務
d) 高性價比:相同服務條件下,平均成本僅爲業界通用水平的50%
接下來將從「音視頻編解碼」,「音視頻傳輸介紹」和「音視頻基礎設施」三個角度深刻剖析BIGO音視頻的十年技術積累。
BIGO音視頻編解碼技術
首先音視頻編解碼技術對於得到清晰、流暢的互動體驗很是關鍵。編解碼算法經過去除音視頻內容的時域、空域、感知域等冗餘,在低帶寬的情形下使視頻也能達到較高的清晰度,可是編解碼算法在實用時,也面臨着一些挑戰:一、如何用有限的計算資源,及時處理千萬級別視頻的編碼;二、視頻內容千差萬別,如何適應不一樣的內容,以發揮編碼算法的最大效用。
Bigo經過自研編碼器、自適應編碼、自適應降噪等技術,有效應對了上述挑戰,提高了相關產品的音視頻基礎體驗。在此,重點介紹自研編碼器與自適應編碼技術。
1. 自研編碼器技術web
在全球複雜的網絡環境下,用戶對視頻畫質提高的需求日益增長,如何以更低的碼率更快的速度提供更高的畫質,這對編碼器技術提出了挑戰,x265編碼器是業界公認的優秀HEVC開源編碼器,相對於上一代編碼器x264,其在同等編碼速度及畫質條件下可以節約40+%的碼率,所以被大量音視頻業界公司集成,以大幅改善視頻基礎體驗。做爲一種視頻基礎技術,咱們認爲x265的編碼性能並未發揮HEVC標準的壓縮極致,所以,咱們自主研發了Bigo265編碼器。如下是Bigo265在不一樣類型測試序列上的編碼表現,與x265的veryslow檔相比,在5倍加速的狀況下,平都可以節省15%的碼率,達到業界領先水平。
咱們在Bigo Likee測試集上對比了Bigo265 與其它標準編碼器的壓縮性能,以下表所示,平均狀況下,Bigo265能夠節省37%的碼率,同時加速1.6倍。
除此以外,咱們在MSU編碼器大賽的測試條件下對Bigo265進行了評估,以下圖所示,能夠看出Bigo265 已經達到了近年MSU編碼器大賽的top級別。
這裏的測試集共三類,包含了不一樣的分辨率和內容複雜度,覆蓋多種視頻場景;其中Likee是業務側的相關視頻,JCTVC是HM官方測試集,MSU是莫斯科大學提供的複雜混合的測試集,以上可見,Bigo265在各種測試視頻上的編碼效果均具備較大優點。下圖是測試序列的時間和空間複雜度:
1) Bigo265技術介紹算法
Bigo265在H265內核的基礎上,基本上支持了HEVC標準所有的編碼工具。另外它添加了數十種高效的快速算法,在很小畫質損失的條件下極大提升了編碼速度。碼率控制方面,支持包括ABR,CBR,VFR, 多PASS,CRF等在內的多種碼率控制方法。預處理部分也作了大量的優化,能夠根據視頻內容自適應的提升編碼效率。下面簡要介紹一下高性價比快速算法技術及自適應碼率控制技術。
高性價比快速算法技術,爲了適應不一樣業務對於速度及質量的不一樣要求,Bigo265提供了八個編碼檔位,每一個檔位快速算法性價比保持一致,以下圖速度質量曲線所示,與x265相比,Bigo265速度質量曲線近似是一條直線,且斜率遠低於x265,所以Bigo265在面對不一樣業務需求時,能夠提供更加平滑的速度及質量,而且在相同速度下,若是編碼速度要求越快,Bigo265相比x265的優點就越大。
自適應碼率控制技術,Bigo265能夠根據視頻場景特徵、內容複雜度、幀類型自適應的進行碼率控制,同時經過AQ/CUTREE技術針對塊級權重調整QP,除此以外,還提供了ROI接口,能夠根據用戶的ROI區域自適應調節QP,以達到碼率穩定的目的。
2) 與業務側結合數據庫
Bigo265已經在Likee和BigoLive的業務上進行了部署,在節約20+%的帶寬同時得到了更優質的用戶觀看體驗。目前編碼器能夠配置多個速度和畫質級別,並針對不一樣的應用場景進行了優化,適用於直播、點播、零延遲、雲遊戲等多種業務下的編碼;另外還提供了豐富的接口,業務部門能夠很方便的進行調整和適配,以知足本身的需求。Bigo的編解碼團隊除了專一於Bigo265編碼效率和速度的改進以外, 同時也開始進行AV一、VVC、AVS3等新一代標準編碼器的研發。
2.自適應編碼技術(BigoCAE)緩存
傳統轉碼服務採用固定的編碼參數進行轉碼,沒法根據視頻內容的複雜度自適應地選擇最佳編碼參數,形成簡單視頻的碼率浪費和複雜視頻的質量不足。BigoCAE致力於自動識別視頻內容的複雜度從而選擇合理的編碼策略,達到質量和碼率的最佳平衡,全局上節約碼率,平衡畫質。
BigoCAE在現有業務中,目標vmaf分 [-2,+2] 範圍內的編碼預測準確度能夠達到93%+。在涵蓋多個分辨率、幀率的3000個測試集上,質量方差明顯變好,減小了低質case,平均碼率節省40%+。
BigoCAE內容自適應轉碼策略立足於咱們的自研Bigo265編碼器,集成了內容分析(遷移學習,編碼特徵分析等)、AI編碼參數預測、細粒度的碼率控制(幀級碼控、ROI碼控)等技術,達到質量平穩,碼率節省的目的。
其中內容分析,採用了編碼特徵與遷移學習特徵。其中編碼特徵採用原始碼流與pass1快速編碼的信息,以下圖所示:
遷移學習採用經典的圖像分類網絡,使用已訓練好的用於cv應用的圖像分類網絡,提取其分類以前的fc層做爲AI編碼預測的輸入特徵。
爲了加快預測速度,知足業務實時需求,AI編碼預測採用一個簡單的淺層神經網絡,以下圖所示:
碼控層面,對ROI區域的內容作了自適應調整,如面部區域是你們比較感興趣的焦點,對此區域咱們作了編碼加強,總體碼率不變的狀況下,使ROI區域比其餘區域更清晰一些。
BigoCAE隨着業務的進化而不斷進化,咱們會不斷引入新的特徵、新的網絡、新的碼控算法改善BigoCAE算法的內容自適應效果。
BIGO音視頻傳輸技術
構建工業級「高可用」,「高通用」,「高質量保障」的音視頻傳輸技術對於音視頻產品很是關鍵,並且不一樣業務場景,對於傳輸技術的優化側重點有很大差異:
另外不一樣國家、地區網絡特性差別很大;跨國家、跨洲的路由和鏈路質量及收費方式也有很大差異。不一樣網絡類型有各自的行爲模式和管道特徵,須要適配不一樣的傳輸控制策略。
最後,不一樣地區用戶的網絡接入類型和方式差異巨大,用戶對於網絡流量費用的偏好也不盡相同。
所以,在制定傳輸策略過程當中,須要對業務場景的側重點、不一樣國家、地區網絡特性以及用戶對於體驗質量和網絡付費偏好等多維度狀況進行綜合考量和優化設計。
面對上述音視頻傳輸關鍵挑戰,BIGO音視頻傳輸技術從設計之初到實際落地,通過持續不斷的演進,構建了完整的傳輸技術基礎體系,包含如下4個關鍵技術方向:
這四個關鍵技術在整個音視頻解決方案中,佔據了重要的位置,下面咱們一一介紹。
1.網絡傳輸擁塞控制技術服務器
若是將互聯網想象成爲公路系統,每一條互聯網路徑就像一條公路。當過多的數據進入網絡,就會像公路系統中因爲某些節點的運輸能力不足產生堵塞。這種數據堵塞咱們一般稱爲鏈路擁塞。
擁塞控制研究已經歷經30餘年,涌現了衆多擁塞控制算法,一些有表明性的算法如圖所示。
在BigoLive直播系統,針對直播的卡頓、清晰度敏感,延時相對不敏感的特色,咱們積累了一套完整的擁塞控制方案——BTP擁塞控制系統,在線上達到了平均零卡頓率超過94%,720p佔比超30%,平均延時低於2s,在業界位於頂尖水平。
BTP擁塞控制系統是一個分場景控制系統,它的主算法是TFRC。TFRC基於速率發送,過程平穩,更適合流媒體傳輸,可是它具備隨機丟包下吞吐率低,以及小帶寬場景下延時高等不足之處。
隨機丟包下吞吐率低:以丟包爲擁塞信號的擁塞算法,當遇到無線網絡Wifi/2G/3G/4G時,會由於無線信道自己可能的信道衰落、信號干擾特性產生一些隨機丟包,這種丟包會使得這一類算法誤判擁塞,致使吞吐率變低。爲解決隨機丟包場景的問題,咱們前置了一個隨機丟包過濾器,它可以在混合了各類不一樣的隨機丟包分佈下的限速網絡下(如10%服從高斯分佈的隨機丟包+800kbps限速),準確過濾出隨機丟包,保留擁塞丟包做爲擁塞控制信號。
小帶寬場景延時高:
對於600kbps如下的小帶寬網絡,它的典型特色是路由buffer隊列長,當檢測到丟包擁塞時,buffer裏堆積的數據等待時間能夠高達10s以上,嚴重影響直播體驗。爲此,咱們引入輔助算法slops,它是一種基於延時的擁塞控制算法,可以準確推斷延時類型和網絡狀態從而實施相應得擁塞控制輸出。
在上述多個算法的共同做用下,BTP擁塞控制系統在實驗室仿真環境的驗證下:具備超過40%的隨機丟包抗性,帶寬低至300kbps依然可用,網絡抖動1200ms仍然工做正常。
傳統的CC算法優化流程是「問題驅動」模式,屬於被動優化,存在諸多侷限:部分問題非關鍵/瓶頸問題、優化後對總體大盤性能改善微弱,日誌欠缺致使問題重現耗時、復現難度大。
咱們研發了大數據驅動的CC算法優化系統。它基於線上用戶真實網絡數據,經過trace特徵分類分析,便於發現關鍵問題,完整/快速進行算法迭代評估。如上圖所示,構建全面的網絡特徵數據庫和搭建系統仿真平臺是大數據驅動的CC算法優化系統的兩個關鍵步驟:
構建網絡特徵數據庫:不失通常性,咱們經過 {帶寬,時延,丟包率,緩存} 來表徵一條端到端的網絡鏈路的特徵。針對每一個關鍵參數,咱們設計了獨立的trace採集方案,以提升採集的準確性,同時確保對用戶體驗影響儘量小。
構建系統仿真平臺:以Pantheon + mahimahi平臺爲依託,咱們擴展豐富了網絡trace的輸入類型、完善CC算法性能分析工具,造成一套完整的系統仿真及分析平臺。
線上閉合驗證:咱們以某國家爲切入點,開展對該國用戶網絡trace的數據分析,以及與不一樣擁塞控制算法的仿真對比,結果以下2圖,吞吐率和時延的綜合收益排名在各個對比CC算法中排名靠前。
同時,在線上進行ab實驗後,得到吞吐率+0.74%,卡頓率-0.38%的技術指標收益,與線下評估一致。基於大數據驅動算法優化系統,咱們上線了數項優化項,取得了顯著的收益。
2.弱網對抗技術微信
用戶接入網絡形態複雜(特別是無線信道自己存在明顯的信道衰落、信號干擾特性)、承載的業務多樣,傳輸過程當中會經歷網絡條件的大幅突變、惡化。從網絡傳輸能力指標上來表徵,便可用帶寬低、端到端時延大、丟包率高,極大的影響用戶的傳輸性能,現有技術可能沒法保證最低質量的QoS要求。
藉助於網絡trace採集系統,咱們對BIGO全球用戶網絡特徵進行了不一樣維度的分析。以某地區用戶網絡爲例,從帶寬指標來看,平均帶寬低於500kbps的佔比約1%;從丟包率指標來看,整體平均丟包率7.2%,鏈接丟包率高於20%的佔比約10%,隨機丟包類型佔比約66%;從時延指標來看,平均RTT高於380ms的鏈接佔比約30%。所以,弱網對抗技術從方法上主要能夠分紅抗丟包技術和抗抖動技術。
衆所周知的兩種抗丟包技術是主動重傳請求(ARQ)和前向糾錯(FEC)。ARQ和FEC分別有各自得優缺點:ARQ能最大化帶寬利用率,但須要引入額外延時,而FEC經過增長信息冗餘(犧牲帶寬利用率)的方式避免增長額外延時。
針對ARQ與FEC兩種抗丟包方法的特色,咱們採用了揚長避短的策略,儘量發揮各自的優點,這就是HARQ(Hybric ARQ)。總體思路是,HARQ在RTT較小的網絡中,主要採用ARQ,減小冗餘流量;在RTT較大的場景中,主要使用FEC,下降恢復延時。
咱們經過在不一樣場景下HARQ和ARQ+FEC各自處理的效果對比,能夠看到,限速場景HARQ恢復率提高明顯;另外引入流量指標下降明顯,HARQ統一決策有效下降流量代價。網絡
咱們經過音頻傳輸質量MOS的評價方式,測試HARQ技術的實際抗丟包效果。根據對比結果,抗丟包模塊明顯提高了MOS,丟包率40%如下MOS分均能保持在4分以上,音質平穩度較高,有效地提高用戶體驗。
FEC技術前沿探索:在音視頻傳輸中,Reed-Solomon(RS)做爲常見地編碼方式將視頻的若干幀組合成爲一個FEC編碼塊進行編碼——在相同冗餘度下較長的FEC編碼塊能夠容忍更多的丟包,可是以視頻播放延時爲代價。咱們提出新的解決思路(RE-RS),使用滑動窗口掃過視頻連續若干幀,窗口每擴張或移動一幀相應生成一組冗餘包,在常見網絡丟包分佈下RE-RS能夠及時有效地恢復數據
咱們經過控制隨機丟包的丟包率實驗來檢驗RE-RS編碼方式的效果,以下表所示,在不一樣的丟包率配置實驗中,RE-RS能得到比RS更高的恢復率。
爲了適應多變的網絡和用戶場景需求,咱們設計了BigoJitter,其主體包括語音包緩衝區,網絡抖動估算器,播放延時估算器,播放決策器,解碼器,變速器,解碼數據緩衝區等模塊,核心算法在於網絡抖動程度估算,播放延時估算以及播放策略制定,BigoJitter使用歷史抖動範圍和自迴歸算法來估算播放延時,從而能夠快速適應網絡的抖動變化。
咱們再次以音頻傳輸質量MOS的評估方式,下圖所示,BigoJitter在各類弱網條件下的抗性都表現得很出色。架構
3.自適應碼率播放控制技術app
爲了應對全球各區域用戶巨大的帶寬能力差別,Bigo自研了實時按需轉碼和自適應碼率控制的功能。如圖中示例,根據觀衆端觀看碼率的彙總狀況,在雲端按需轉碼和分發,達到節省轉碼計算資源和網絡傳輸資源的目標。
在直播和視頻點播場景中,咱們研發落地了基於MPC模型預測的自適應碼率算法,它經過分析用戶特徵和偏好、預測下載帶寬信息和緩存長度變化狀態,將選擇分辨率/碼率問題建模成一個求解動態最優化問題,優化的目標就是用戶的觀看體驗指標QoE(Quality of Experience)。
從框架圖中能夠看出,如何準確有效預測QoE是影響整個自適應碼率算法效果得最關鍵因素。所以,咱們通過不斷努力,自研和落地了基於User Engagement的QoE預測模型。
3.2 基於User Engagement的QoE預測模型
咱們提出將播放技術指標同用戶參與度相結合的觀看體驗指標QoE,從而進一步縮小QoE模型與用戶實際主觀體驗的差距。
特徵選取:和傳統的QoE公式不一樣,除傳輸技術指標外,咱們還使用了包括用戶地理位置信息、手機軟硬件屬性、用戶-視頻互動等多方面的原始特徵,經過特徵工程生成的有顯著意義的新特徵,以及特徵交叉生成的新特徵。而後根據相關性和特徵重要性,逐輪篩選生成新的特徵子集。下圖展現了若干主要特徵和目標用戶參與度的皮爾遜相關係數(PCC,左圖),以及在提高樹模型中的特徵重要性(以增益衡量,右圖)。
參數調整:在選定的特徵集上,咱們採用貝葉斯優化、K折交叉驗證搜索提高樹模型的最優超參數。貝葉斯優化假設被優化函數爲黑盒函數且來自高斯過程,每輪經過優化採集函數
肯定下一組嘗試的超參數
,其中
爲改善指望,
其中
,
爲標準高斯分佈的密度和累積分佈函數,
爲高斯過程根據現有觀測值均值、方差的估計,
,
爲當前最優參數。
超參數優化通常會選取較爲激進的參數生成複雜的樹模型,帶來額外的部署成本。於是咱們綜合考慮模型的擬合精度、模型大小和調用時間,生成帕累託前沿(Pareto frontier)的一系列模型,並根據實際上線須要部署。下圖展現了一個帕累託有效的壓縮模型的前3棵提高樹結構。
模型應用和收益:咱們利用QoE擬合模型對Bigo Likee短視頻清晰度選檔算法進行優化,在提高用戶觀看滿意度的同時節省了Bigo服務器的帶寬消耗。
Bigo用戶覆蓋全球上百個國家和地區,不一樣國家和地區的用戶的網絡條件和網絡質量的差別性很大,依託Bigo全球幾十個數據中心和Bigo強大的AI技術、大數據分析能力的支持,咱們實現了完整的"實時智能路由調度":
a) 從海量的歷史傳輸數據中提取多維傳輸質量指標,結合不一樣形態產品對QoS、QoE的不
同需求,將多維傳輸質量指標映射爲質量得分,最終生成一個細化到運營商的基準路由
表;
b) 經過統計不一樣時間粒度的網絡質量的變化,不斷更新及動態調整基準路由表;
c) 實時監控傳輸路徑質量,對於突發的網絡擁塞和網絡故障及時動態切換中間轉發節點,
降
低網絡問題對傳輸質量的影響。
經過「實時智能路由調度「,咱們爲媒體數據傳輸尤爲是跨國、洲際數據傳輸提供了穩定的高質量路徑。
BIGO全球網絡基礎設施建設
從咱們多年大規模業務沉澱的技術經驗來看,高質量的音視頻技術服務能力離不開基礎設施的深度定製,BIGO選擇全自建了全球的網絡基礎設施,提供給業務端到端的turnkey技術解決方案能力。
結合音視頻業務業務場景來看,組建一個優質的全球RTN網絡面臨的挑戰能夠拆成兩個部分:(1)如何保證海量用戶到各個機房的接入質量;(2)如何保證分佈全球的各個DC之間的通訊質量。下面分別介紹BIGO在這兩塊的建設狀況。
1.用戶接入網質量優化
不管是主播仍是觀衆端,用戶接入都是影響服務質量最重要的環節,也面臨最複雜多樣的網絡環境。BIGO在全球各大洲和重點國家選擇運營商資源最豐富的城市來構建BIGO的Internet接入的節點, 經過BIGO互聯網交換平臺(BIGO Internet eXchange,簡稱BIX)來管理。主要從如下三個方面來優化。
BIX = Bigo Internet eXchange,IPT = IP Transit Provider,IX = Internet eXchange
(a)
貼近用戶,連通世界。 在最接近用戶的城市,自建優質BGP出口網絡,與大量本地ISP對等互聯,對接方式包括IPT、IX、Peer等。目前與全球運營商創建Peer數量已達到170+,與2W多家ISP開展深度技術合做。
(b)
DC到用戶,智能路由。 實時分析機房到用戶的網絡質量,包括丟包、抖動、RTT、鏈接成功率等關鍵指標,同時根據Internet路由變化,實時繪製出口可用路徑。經過智能調度控制器,確保到用戶網絡擁有最佳路由。
(c)
用戶到DC,動態優選。 實時分析用戶訪問不一樣機房的質量,結合機房負載、用戶質量等指標,動態調整機房分配策略,確保每一個地區每一個運營商的用戶接入綜合得分最優機房, 提高用戶體驗。
2.DC之間的通訊質量優化,提供99.99%優質傳輸率
(a)同城互
聯,高速可靠。在歐洲,美洲,東南亞,印度等歐洲自建多張城域網,經過波分複用技術深度利用物理光纖資源,爲同城數據中心互聯提供超大帶寬與高可靠DC間通訊網絡。
(b)
全球物理專線互通,智能調度。在全球數據中心間,以及各地區到各大洲的數據中心,經過海纜自建一張全球骨幹網,連通全球各大城域網;而且經過SDN控制器實現擁塞控制,流量調度,故障自愈,實現全球數據中心穩定高速互聯。爲保證質量,海纜通常都會在物理上冗餘,好比同時使用兩條不一樣的海纜。
(c)虛
擬光纖,公網專線。即便海纜作了物理上的冗餘,但在流量突發、海纜維護、業務爆炸式增加、新節點快速上線等場景,仍是有風險致使上層業務不可用。BIGO自研「公網專線」(BVTS)系統,解耦網絡對物理專線的依賴,並加入抗丟包、TCP壓縮、加密等技術。實現專線極速開通,業務快速上線,提高骨幹網絡可靠性。
(d)除了底層鏈路的質量保證,在上應用層也增長一層優化:多維分析,構建智能路由。
自研全球DC間IP到IP的(點到點)智能選路系統,根據實時網絡狀態、網絡路徑負載、可用帶寬、成本等因素綜合自動決策,而且能夠根據不一樣的業務需求來選擇最佳傳輸路徑,好比音視頻服務要求是低延遲,可接受少許丟包;
而信令業務對丟包敏感度高,但能夠接收稍高延遲。
通過多年的積累和發展,目前BIGO在亞洲, 歐洲, 美洲等全球各地建了近百個IDC,出口容量達到40T,與2W多家ISP開展深度的技術合做,覆蓋全球150個國家和地區。爲全球DC間提供99.99%優質傳輸率。
總結
本文從音視頻編解碼、音視頻傳輸、基礎設施建設的三個主要視角介紹了BIGO音視頻技術解決方案十年的技術沉澱。技術無止境,BIGO還持續在音視頻技術進行技術研究以保持在行業中的領先性,譬如網絡質量智能定位能力,精細化的網絡類型切分與場景化算法優化能力,用戶主觀體驗的理解和評估,基於AI的編解碼算法,HDR10和4K技術優化,新一代編解碼標準等等。
站在2020年的時間點上,BIGO已經作到了從歐洲到亞洲,從美洲到非洲,把最好的視聽服務傳遞到世界的每個角落,傳遞給每個熱愛生活的人。在這個過程當中,音視頻核心技術能力和BIGO業務增加多年來相互成就,經過在真實市場大規模應用的千錘百煉,最終鍛形成堅如磐石的BIGO音視頻技術解決方案。
LiveVideoStackCon 2020 北京