YY 視訊直播體驗優化實踐
YY音視訊演算法中心負責人林緒虹在LiveVideoStackCon 2018音視訊技術大會的演講中介紹了YY如何實現全平臺差異化直播能力,以及視訊畫質、流暢度、音視訊同步、弱網條件下開播,連麥質量等直播體驗核心技術指標的優化策略。LiveVideoStack對演講內容進行了整理。
文 / 林緒虹
整理 / LiveVideoStack
大家好,我是來自YY音視訊演算法中心的林緒虹,今天我將從以下兩個方面為大家分享YY在視訊直播體驗領域的多項優化實踐。
1. 全平臺差異化直播能力
之所以我們努力實現全平臺差異化直播能力,最重要的原因是YY作為最早入局國內直播市場的企業,需要不斷保持自身核心競爭力與獨特屬性,推動全行業良性競爭與發展。
YY最早於2011年上線網際網路直播服務,當時的直播畫面解析度僅為320x240,視訊幀率也僅維持在10~15fps,位元速率也僅有100~200kbps,這些在如今看來十分簡陋的引數,在當時代表著流暢的視訊直播體驗;2012年,YY上線了解析度提升至640x480,位元速率提升至500kbps的遊戲直播服務,這也是目前大家熟悉的虎牙直播的雛形;時間來到2015年,移動直播與遊戲直播迎來了爆發式增長,YY也迎來了發展的春天,與此同時我們也發現與如雨後春筍般湧現的友商相比,YY在技術上的優勢逐漸不再,對現有直播平臺與技術進行改造與升級成為了當時擺在YY面前最為艱鉅的任務;而作為最早開展直播業務的企業,YY多年發展積累下來的歷史包袱要求我們需要在進行技術重構的同時儘可能將對主營業務正常運營的影響降到最低。
2016年我們對整個直播平臺做出技術重構,使得全平臺逐漸實現對720P 25fps 1.2Mbps高清直播的支援,同時優化音畫同步、色彩等關鍵技術,並繼續拓展業務形式以滿足消費者日益多樣的直播體驗需求;在此基礎上,到了2017年我們於全平臺大範圍應用H.265,增加了對畫質、連麥與弱網等一系列關乎使用者直播體驗的關鍵專案的優化,上述一系列優化也讓直播平臺具備了4K H.265的直播能力,這也允許我們可以藉助4K直播的極清畫質更為精彩地為全網使用者呈現YY年度盛典與大型晚會;2018年我們繼續前行,主觀視覺與場景編碼優化成為我們重點探索的方向,與此同時除了推進音效、去噪等方面的優化,我們也實現了對Web H.265的良好支援,使得使用者能隨時隨地享受高清視訊直播服務所帶來的樂趣。
YY直播業務的特點可以從主播端、服務端與觀眾端三個方面描述。
主播端無法避免的問題是機器差異化程度越來越大,且隨著網際網路技術的發展,直播業務不僅侷限於單純的音視訊交流,而是集合了娛樂、遊戲、交友等多重元素,向著日益多樣化的方向發展;同時隨著直播行業的不斷擴充套件,許多專業場景如現場直播、大型晚會等也需要網際網路直播豐富其表現形式,隨之而來的便是網際網路直播網路的變化多樣,移動、戶外等特殊直播場景對直播平臺的技術能力提出了更高的要求。
隨之變化的,服務端的轉碼服務需要兼顧各端差異,同時高併發下進一步節省頻寬提高資源利用效率也至關重要;而作為直播的靈魂,高質量內容的呈現需要服務端具備內容製作與再創作的能力。
觀眾端包括傳統的PC端與最為常用的移動端,而Web端已日益成為我們的發展重點。
根據我們的業務特點,2016年我們對整個平臺進行了一次完整的重構,整體設計原則如上圖呈現的那樣,首先我們針對不同裝置與版本定製了不同的開播策略,以實現開播裝置的差異化;同時以輕量化原則重新設計了客戶端,使整體互動邏輯趨於簡單,降低版本迭代門檻,進一步提升相容性;隨後我們繼續提升碼流型別的擴充套件性,陸續實現對H.264、H.265、VP9與AV1的良好支援;接下來推進觀眾端與主播端的解耦合,通過更新流管理系統使平臺具備了主播端呈現原畫的同時觀眾端呈現混畫的複雜內容製作能力;最後我們優化平臺使其更易於進行灰度實驗,支援粒度可控與實時生效,從而為新功能與新演算法的開發提供便利。
2. 全平臺直播質量優化
如何實現上述多項優化?接下來我將著重分享我們的優化實踐過程。
2.1 提升視訊畫質
提升畫質始終是我們的一項關注重點,而YY在PC端的畫質優勢是有目共睹的。為實現高畫質我們在伺服器端可根據直播條件定製開播引數,與此同時我們也提供了H.264、H.265的定製化開播方案,依據不同網路環境使直播畫質儘可能達到最佳;為解決H.265在效能一般機器上的相容性我們也提供針對低端PC機器N卡、Intel整合顯示卡的硬體編碼解決方案,同時伺服器端也具備多種硬編方案,同時基於大量精準嚴格的測評與調研得出能夠最合理平衡主播機器負荷與視訊質量的技術策略。
當然,在致力於提升畫質的同時我們也需要解決多項關鍵問題:例如連麥場景下應當為確保多端相容性而使用H.264還是為效能與畫質而使用H.265?在H.264過渡至H.265的過程中需要重點調整哪些引數?除此之外,移動端對H.265硬編硬解的支援越來越成熟,軟解能力也可達到實際應用的需求,但移動端的軟編能力仍然十分有限;動態位元速率與弱網策略依舊是我們的關注重點,這兩項直接關係到我們視訊直播服務的穩定性,而主觀視覺與場景編碼的結合更是當下熱門的發展趨勢。
上圖展示的便是手機端的主觀視覺效果,以30fps的典型遊戲直播場景為例,經過測評我們發現當網路為4~6Mbps時採用720P的直播畫面可為觀眾帶來優質的主觀視覺體驗,而當網路為6Mbps以上則應當採用解析度為1080P的直播畫面。上述邏輯的背後還涉及到許多編碼引數的選擇策略與科學測評體系,歸根結底平臺輸出直播畫面的質量應當儘可能接近人的主觀視覺感受。我相信現在有許多廠商都在向此方面不斷髮展,如急速高清、智慧編碼、窄帶高清等技術實際上異曲同工。
而聊天、跳舞、唱歌等更強調互動性的應用場景所面臨的網路環境更加複雜,網路抖動等傳輸問題需要團隊密切配合才能得到妥善解決。我們與此相關的經驗與建議是首先你應當根據自身業務特點建立一套完整的質量測評體系,此測評體系應是獨立客觀精確的且有專門的團隊負責維護;其次便是選擇最合理的編碼引數,將編碼器的效能壓榨到極致。
2.2 音視訊同步及流暢度優化
對音視訊同步及流暢度的優化似乎並不是全行業關注的重點,但此項問題曾困擾YY很長一段時間。早期YY的直播服務基於低幀率視訊建立,當時音畫同步並不是一個亟待優化的命題;可隨著網路環境的不斷髮展我們逐漸升級直播畫面的清晰度與幀率,音畫不同步的問題也逐漸被放大,尤其是在唱歌直播場景裡此現象尤其明顯。上圖展示了國際上對人相關感知能力的研究成果,圖中紅線與藍線中間的部分是人無法分辨音畫不同步的範圍區間,我們應當控制觀眾端的音畫時間差於此範圍之內。如何確定造成音畫不同步的眾多因素?有人會提出使用人耳分辨的方法,其問題不僅在於高昂的成本,更在於人的不穩定性與主觀干擾會對測試準確造成不利影響。
為實現對音視訊同步與流暢度的優化,我們需要首先明確哪些環節會干擾音畫同步:我們發現從一開始主播端的採集就容易出現不同步的問題,尤其對YY這樣使用兩條流採集音訊與視訊,很容易造成時間戳的不同;通過網路傳輸時資料在經過轉碼伺服器的過程中也會被引入錯誤的時間戳,而在觀眾端更是會受到與硬體裝置相關的播放緩衝系統的能力限制。針對這些問題我們做出上圖展示的多項優化:首先我們會向端到端音視訊實時系統輸入一個同步測試訊號,此同步訊號會發出一個嚴格的音視訊同步指令,隨後PC端採集此指令並用於音訊取樣與畫面內容的同步優化
為此我們專門研發了一套測試用硬體,通過脈衝訊號經過硬體時引起LED燈的變化來反映音訊與視訊的時間戳位置。通過使用此硬體不斷排查我們發現,除了主播端的時間採集可能不正確之外,編碼器的延時也亟待修正;而音視訊播放器存在的緩衝機制同樣會消耗時間,音視訊渲染也會造成延時誤差;需要特別強調的是,開始出現的時間戳誤差可能會被傳輸等環節引入的時間戳修改抵消,使最終輸出的音視訊檔案處於時間戳無誤音畫同步的狀態,這種情況需要我們著重關注並仔細排查每一個可能對時間戳造成影響的環節,否則會將原本正常的時間戳調整至錯誤狀態。對於許多新平臺而言一般並不存在的音視訊同步問題對於像YY這樣最早入局直播行業的平臺來說至關重要,也曾在很長一段時間困擾著我們。
2.3 弱網開播優化
隨著網際網路直播不斷在各行各業大放異彩,諸如體育直播、戶外直播等特殊直播場景都面臨著複雜的網路環境。如果頻寬資源較為充足那麼根據頻寬情況適當調整編碼器的幀率或解析度從而保證幀間隔穩定並提升畫質是我們在進行弱網開播優化時遵循的核心思想之一,而幀間隔穩定與畫質的提升也依賴硬體的強大。這就需要我們在同等頻寬條件下根據幀率與機器負荷情況將編碼效率提升至最大水平。實現頻寬預測值、解析度與幀率、編碼複雜度的三方整體均衡。
弱網開播優化的具體策略主要有以下五點:首先我們應當設計分級的編碼策略,其次應當優化頻寬的探測技術,這也是弱網開播優化的前提;接下來,策略與現實相分離也是十分關鍵的一點,策略需要允許開發者隨時隨地調整以適應複雜的直播場景;各弱網區間的平滑處理與過渡也同樣重要,編碼器一般很容易引入一些卡頓在視訊當中,如何在直播過程中妥善處理這些細節成為考驗開發者的關鍵性命題,需要細緻嚴謹的邏輯梳理(為實現平滑處理與過渡,我們的方案並非多次重置攝像頭,而是得出丟幀邏輯或使用解析度差值補償等處理方法使其儘可能地平滑過渡;各弱網區間的平滑處理與過渡也需要我們重點關注);通過離線模擬測評獲取最優配置也能夠幫助我們進一步優化弱網開播效能。
上圖右下角的表格準確顯示了我們一些相關實測研究的資料,對比有弱網配置與無弱網配置我們發現其離散率差異非常大;通過下面兩張圖展示的不同平臺弱網開播主觀效果測試我們可以發現,無弱網配置的畫面明顯出現更多馬賽克,畫面不清晰,而有弱網配置的在流暢性畫面清晰度等方面明顯優於無弱網配置。
2.4 連麥延時優化
連麥延時優化已經成為了老生常談的話題。通過ITU-G.114實驗延時體驗所展示的資料我們可以發現,使用者主觀上可以接受小於150毫秒的延時,而小於200毫秒也幾乎不會影響通話質量,400毫秒可以說是使用者對於延時的最大容忍紅線。我們在初期探索連賣延時優化時提出的要求是達到VOIP的延時標準,這對與VOIP有著不同業務邏輯與技術側重點的直播技術而言不得不說是一件十分困難的事情。我們的目標是將延時控制在200毫秒以內,其關鍵點首先在於優化雙端緩衝策略並選取最優採集、編解碼、渲染方案;其次應當降低每一環節的處理時間,同時平衡流暢直播與低延遲的平衡。經過雙端優化,iOS與Android雙平臺都可實現200毫秒的低延遲,而iOS的平均延遲更是達到了190毫秒,媲美專用VOIP通訊工具。
點選【 閱讀原文 】或掃描圖中二維碼瞭解更多LiveVideoStackCon 2019 上海 音視訊技術大會 講師資訊。