阿里妹導讀:在阿里,音視頻會議已經成爲跨地區溝通、開會以及招聘的首選方式。據悉,目前阿里巴巴的辦公網絡與音視頻會議已經覆蓋全球33個國家和地區,其中,音視頻會議在過去3個月平均天天召開超過2000餘場。在使用如此頻繁、覆蓋面如此之廣的音視頻場景中,如何知足全球各地使用者的不一樣需求,保障交流的順暢?下面,咱們一塊兒來探討、研究。算法
音視頻行業發展迅速,經歷了1970年代的黑白時代、1980年代的數字化時代、1990年代的數字標清時代、2006-2015年代的高清時代,2016年逐步開始以融合通訊爲主的行業趨勢,高質量(4K,高清,高幀率,HDR)、多場景(點播,直播,實時通信)、雲化(硬件軟件化,平臺雲化)和行業化已經成爲當下音視頻行業的發展趨勢。服務器
音視頻行業將來的發展趨勢,在我看來就是雲+端+服務。網絡
雲:平臺雲化,從PaaS到SaaS,從私有公有云,一切都是基於雲的服務。架構
端:兼容各類終端,PSTN和VOIP,會議室設備,手機,PC,Web,Android終端等。機器學習
服務:包括短信,語音,IM,音視頻,呼叫中心,雲客服和附加AI服務等多種服務。ide
目前,音視頻已普遍應用於包括B2B(企業與企業間、企業內部間)、C2C(用戶與用戶間),以及B2C(企業和用戶間)。學習
根據著名Cisco的VNI(Virtual Network Index)預測,到2021年,地球上將有46億互聯網用戶,271億聯網設備,82%互聯網的流量是視頻。每一秒鐘將會有一百萬分鐘的視頻內容被建立,其中4K高清的內容會增長30%,至關於每月生成71億部DVD影片,直播的需求也會大幅增加15倍。優化
從視頻自己發展的趨勢看也是一路狂奔向高清、CIP、4CIP、720P、1080P、UHD4K和8K;加上高幀率FPS 120-160FPS、HDR(High Dynamic Range)、寬色域(Wide Color Gamut),一切發展變化都是爲了給人一種身臨其境的Immersive體驗。固然還有VR、AR、360視頻,這全部的一切都意味着更多的視頻數據流將被生成和消費。動畫
若是網絡帶寬是無限且暢通無阻的,那世界將是多麼美好。但網絡並非一馬平川的。有時像十一長假堵車,有時像鄉間泥濘小道,並且還有可能佈滿大坑。編碼
根據Silver-Peak跨美國和歐洲的網絡健康報告發現,網絡傳輸的延時、抖動和丟包是廣泛存在現象。有時網絡情況就像天氣同樣使人難以捉摸。雖然網絡的平均丟包率只有0.34%,但個別狀況下能夠達到2.2%;並且丟包歷來都不是均勻的,是突發性的Burst,網絡延遲可能會超過平均值300多倍。這些極端的網絡狀況對音視頻的傳輸和用戶體驗來講,都是極大挑戰。
網絡和音視頻流量的供求矛盾,網絡傳輸的不肯定和不完善的殘酷現實,倒逼着咱們不斷完善和監控音視頻服務。
音視頻內容從生產到消費的過程會經歷不一樣環節,且鏈路較長,其中涉及的技術也較多,下面將主要對其中的視頻編碼,網絡構架進行解析。
視頻編碼標準的選擇
視頻編碼標準做爲視頻技術的核心,在過去幾個世紀出現過不少不一樣標準,但最終被市場採納主要爲如下兩套體系:一套是標準化體系的H26四、H265 和正在制定中的VVC;另外一套是開源無版稅的VP八、VP9和AOM(Alliance for Open Meida)的AV1。
阿里巴巴是AOM的成員也同時積極參與VVC的制定,對於視頻編碼的核心不能被掐住發展的咽喉。
針對不一樣場景的不一樣編碼需求
視頻不一樣的應用場景(如:點播、直播、實時通信),決定了在每個應用場景底下對編碼的不一樣需求。
對點播而言最重要的是編碼效率,如何有效節約帶寬。直播對延時有要求,可是是在秒級的,對編碼的速度和穩定性的需求也比點播高。實時通信對「點對點」的延時要求最高,同時它對穩定性和容錯性的要求也很高,這須要經過平衡編碼效率來實現。
視頻編碼之前簡單地採用固定壓縮參數,固定碼率和固定分辨率,對於HLS和MPEG-DASH的ABR(Adaptive Bitrate),也用固定編碼率和分辨率來配對。這就沒法知足不一樣視頻對碼率的不一樣需求。1M的720P動畫片看起來可能已經不錯了,可是1M的720P動做片看起來就會很糊。
但對於ABR,編碼率和分辨率也是一個動態平衡的過程。在低碼率的狀況下用低分辨率以減小塊狀效果(blocking effects),當碼率的提升到必定程度時提高分辨率,包圍不一樣分辨率RD曲線的就是凸包(Convex Hall)。曲線中的交叉點就是理性的編碼率和分辨率配對。
但怎麼肯定曲線中的交叉點呢?這須要有衡量視頻質量的指標。
一般的視頻指標包括主觀的MOS分和客觀指標好比PSNR,SSIM和VMAF。阿里巴巴的視頻質量指標,不但結合了通用的客觀指標,也同時考慮了影響播放質量的的卡頓和網絡情況。
自適應編碼(Content Adaptive Encoding)是視頻編碼的一大趨勢。從One-size-fit-all的單一編碼參數、碼率和分辨率配對,到根據視頻內容的複雜度進行定製化的編碼參數適配。自適應編碼能夠針對單個視頻、場景、GOP,甚至是Frame用不一樣的壓縮參數進行動態調整,這樣最大限度優化視頻質量、節約帶寬。這種自適應優化最重要的就是視頻質量的衡量指標。一旦定義好可用的指標,就能夠圍繞它進行不一樣層次的優化。
對於自適應編碼,機器學習能夠大有用處。好比利用機器學習針對不一樣的視頻特徵,找到對應優化的編碼參數。
人腦占人身體的比例不大,可是消耗人體大約1/3的能量,人的基因特性決定了大腦只會關注畫面中重要區域,忽略不重要的區域。利用這種ROI(Region of Interest)進行編碼,就能夠在保持視頻主觀質量的狀況下減小編碼率。好比人臉和文字是經驗意義下的ROI的例子。
實時音視頻服務器的網絡架構,除了MESH外,還有MCU(Multi-point Control Unit)和SFU(Selectiveforward Unit)兩種。
MCU是集中的媒體處理服務,優點在於能夠對媒體和信令進行控制和轉換,如對媒體進行轉碼、轉流、混屏、分流,對信令進行轉換,對媒體包進行路由優化等等。MCU能夠減低Client端的CPU和對網絡帶寬的需求,可是MCU的缺點也較明顯,那就是服務器CPU的開銷以及帶來的延遲。
相對MCU來講,目前更流行的架構是SFU,它主要的好處是簡單、低時延、高吞吐,缺點是對client端的帶寬要求比較高,client上傳一路或者多路流同時下載多路流。SFU的客戶端能夠發單流、多流(Simulcast)和SVC。根據運用場景的不一樣,客戶端發流策略也不一樣。
在阿里巴巴的音視頻會議系統中,採用的是一種SFU+MCU的混合模式,以保證最大的兼容性。這種SFU和MCU級聯的策略保證對各種客戶端的最大靈活性。此外媒體服務器在不一樣區域能夠進行級聯,客戶端就近入會、就近補包,減低第一千米和最後一千米對音視頻質量的影響。
網絡帶寬評估是實時通話的關鍵技術。阿里巴巴在這方面進行了不少針對會議室場景的優化。而且經過評估算法能夠在服務器端快速發佈,不用等待更新客戶端軟件。
在弱網不可避免的狀況下,經過合理的帶寬分配,確保音頻優先傳輸,同時及時把弱網信息傳達給用戶,一樣能夠獲得用戶理解,提高用戶體驗。
音視頻提供的是服務,不是單點的QoS,用戶的最終體驗不是簡單的抗丟包率、卡頓率的指標,而是端到端的體驗。因此不只須要咱們在事先創造一個良好的音視頻環境,更須要咱們對總體鏈路進行質量監控。除了能及時發現問題,快速響應外,還能幫助咱們不斷髮現與創造更多新業務場景。經過把業務數據化,再根據數據來指導業務,這樣才能讓音視頻的服務體驗達到極致。
本文來自雲棲社區合做夥伴「 阿里技術」,如需轉載請聯繫原做者。