天天看點

規模增長背後抖音如何建構直播體驗優化

作者:LiveVideoStack

随着抖音直播使用者持續增加,生态日漸豐富,在經曆億萬規模化增長的過程之中,體驗優化是必須要面對的問題,如何建立不同階段的優化體系?如何抓住過程中的優化重點?另外面對業務增長訴求,面對新技術發展趨勢,體驗優化如何展現業務價值?新技術如何落地在業務之中?LiveVideoStackCon 2022北京站邀請到火山引擎直播技術負責人周一楠,分享抖音體驗優化過程的一些探索與實踐。

文/周一楠

編輯/LiveVideoStack

規模增長背後抖音如何建構直播體驗優化

大家好,今天我分享的主題是“規模增長背後抖音如何建構直播體驗優化”。

-01-

抖音規模化過程中面臨的挑戰

規模增長背後抖音如何建構直播體驗優化

首先給大家展示一張圖,這是抖音在過往一段時間裡的直播播放的并發量。這張圖背後其實隐含着幾個關鍵詞。

  • 首先是“增長”,抖音直播業務量級一直在持續增長,包括時長和滲透均保持增長的狀态。
  • 另外是“突刺”,代表着熱點主播、熱點賽事、熱點事件等,導緻直播量級經常出現較大的波動,這種波動對穩定性提出了很大的挑戰。
  • 第三是“場景”,從傳統的秀場,到遊戲,再到電商,最近一年拓展到競技比賽、虛拟偶像、PICO VR,都在抖音直播中孵化,這些都是新場景的嘗試。
  • 最後對應的是“平衡”,場景越來越豐富,使用者體量越來越大,除了需求的差異之外,我們也要了解并處理好不同階段在成本和體驗之間的平衡。
規模增長背後抖音如何建構直播體驗優化

今天我用思考總結+具象案例的模式來做分享,抖音去年關注度最高的是世界杯直播,整體直播量級完全超出之前預估。資料上來看,單場的PCU并發量最高為3706萬,UV值2.3億,應該是目前規模最大的直播賽事。針對這樣的量級變化,非常考驗應急政策,尤其是穩定性,作為第一要務要保障,為此我們做了大量的工作。

  • 首先,直播全鍊路無單點,各個環節都會具備備援災備的能力,比如上行網絡、源站、轉碼系統以及節點和節點之間的網絡線路。
  • 第二,在分發層面單機性能優化和彈性擴縮容,最大程度的提升資源使用率和複用率。
  • 第三,總體容量保障,為了滿足大規模觀看4K分辨率要求,從整個行業去募集分發資源,通過融合排程系統,實作容量保證。同時在使用者觀看直播的過程中,配合容災降級的政策,達到體驗與穩定性間的最優解。
規模增長背後抖音如何建構直播體驗優化

另外具象來看,新的技術面對新的挑戰。本次世界杯我們率先實作了大規模4k 50fps的超高清直播的行業首創。正常情況下,抖音預設的直播分辨率是720p或者1080p,像世界杯這樣超大規模的4k直播我們也是第一次嘗試。另外競技類比賽對延時的要求非常高,整體直播的端到端延時,最低情況下可到一秒鐘。同時我們也進行了畫質增強,支援10bit的HDR,在色彩的飽和度、空間感都最大程度的還原比賽現場。

另外雖然4k畫質清晰度足夠高,但是不能一味的追求單一的直播體驗名額,還要注意成本控制。期間我們使用火山引擎的“極緻高清”轉碼技術,以保證最低的碼率,最優的成本。最後這次世界杯,我們也創新的使用了VR直播,實作了180度和360度的VR 3Dof直播業務落地。以上種種優化更新,整個世界杯的過程中我們最終也輸出了數十項核心專利,為後續沉澱和持續疊代奠定了基礎。

-02-

抖音直播體驗優化的體系建構

規模增長背後抖音如何建構直播體驗優化

第二部分主要介紹下抖音直播體驗優化的體系建構。我們會從業務和場景出發做直播技術更新,關注使用者的核心體驗。同時,我們也會結合目前技術的成熟度、可能性、條件要求,對技術應用進行判斷,期望尋找發揮技術價值最大化杠杆的地方。

在技術判斷之後,我們會進行線下性能、體驗的驗證體系建設,設定好準入準出條件,并設計資料名額來做度量參考。最後線上部分以QoE為牽引,進行線上AB實驗名額做持續調優,最終驗證收益和價值回收。基于以上的循環模式,持續建構直播體驗優化的體系,以上是我們建構的整體方法論。

規模增長背後抖音如何建構直播體驗優化

具象來看,在整個世界杯期間,使用者最關注的核心體驗之一是低延時。過往我們在很多場景也在做低延時優化,解決秀場中主播回報慢,電商中介紹商品不及時,以及教育場景中老師授課的互動性差等問題,都取得了不錯的使用者正向回報和業務收益。

這次競技比賽對于延時的意義會更重要,最差的一種體驗是觀看比賽直播的過程中,這邊還沒看到進球,就已收到其他App的進球消息了。雖然有些誇張,但比賽的及時性是使用者能夠明顯感覺到的。是以低延時的技術判斷和業務價值我們是确定的。在此之後,就進入到技術方案環節,我們需要了解延時到底發生在哪個環節?

從全鍊路角度來看,原流上行到接入節點,再通過源站到轉碼處理,之後分發到邊緣最後在通過不同的協定,到使用者最後1公裡。在整個過程中,如鍊路圖所示,每個環節都會産生延時。但其中播放器的緩存對延遲影響最大,在直播過程中,為了對抗卡頓,正常做法都會設定一定的buffer緩沖區,一般防抖buffer會設定在5~8秒,進而引入了延時産生。

規模增長背後抖音如何建構直播體驗優化

鍊路盤點清楚,我們重點解決主要問題,并在兩個技術方向來降低延時。

第一個是基于HTTP-FLV的傳輸協定。第二個是基于火山引擎超低延時直播技術-RTM。HTTP-FLV是最廣泛使用的流式傳輸方案,協定本身較簡單,延時目前我們最優可以到3s以内。RTM協定在某些層面和RTC有一定的共用技術,屬于新型的直播傳輸模式,在抖音直播世界杯期間,我們也投入了使用,在RTM上可以将延時做到1秒以内。

規模增長背後抖音如何建構直播體驗優化

下面介紹下具體的優化方法。我們把FLV延遲進行了分類,分為初始靜态延遲和動态消費延遲。針對不同的延遲有不同的優化政策。對于初始靜态延遲,可以調低Gop、轉碼延遲優化以及降低CDN GopCache。對于動态消費延遲出現的IO消費慢、解碼消費慢和渲染消費慢問題,采用不同的優化政策。其中IO消費慢可以采用卡頓優化、倍速播放和丢幀跳片。解碼消費慢可以采用性能優化、動态碼率和丢幀跳片。渲染消費慢會采用倍速播放、性能優化、動态碼率和丢幀跳片。

規模增長背後抖音如何建構直播體驗優化

針對RTM傳輸協定,雖然RTC和RTM有一定的複用性,但也有一定差異性。直播場景中更加看重首幀的成功率和長時間看播的音畫強同步率。

RTC應用最多的是會議模式和教育小班課,技術層面,RTC會維護一個網絡長連結,無論socketio還是websocket采用哪一種方式實作,都會保證信令消息的可靠性和即時性,進而保障成功率和體驗。RTM的資料和信令也是分離的,但無長連結,需要做定向技術改造,比如使用預加載政策降低首幀,還有一些使用者的網絡不支援UDP傳輸,如果UDP不通,也會影響連接配接的成功率,需要做端口檢測。為了提升成功率,因為SDP有備援資訊存在,是以也會把SDP進行壓縮,變成miniSDP進行傳輸,通過0rtt或者一個rtt處理來提升成功率。另外因為抖音預設采用feed流模式,是以需要最大程度的去降低首幀時間。

在整個直播過程中,需要保證明時地強音畫同步,尤其是在高清晰度的情況下,音頻先觸達,需要減少起播倍數播放,另外在分發環節上,RTM的分發模式通過CDN的邊緣節點進行分發,我們在服務端、用戶端側的組幀、解幀需要做定向優化,提升秒開的成功率和降低時間,這裡不詳細展開了。

規模增長背後抖音如何建構直播體驗優化

最後來看一下整體業務收益。兩年前,抖音的直播延時大約在7.9s。我們持續地在兩個方向上進行延時優化,目前技術資料上來看,大盤均值可以降低到3秒内,RTM場景在1秒内,均投入到了正常放量狀态。業務價值上來看,無論是直播的看播滲透率還是看播時長、評論,亦或電商都有顯著正向收益。同時因為減小緩沖區可以減少網絡浪費率,進而降低95峰值進而影響直播成本單價,我們除了使用者體驗的收益之外,也獲得了成本上的收益。

規模增長背後抖音如何建構直播體驗優化

除了低延時,我們發現在整個世界杯直播期間,使用者對于畫質的要求也是最高的。

首先我們先看下視訊全鍊路的技術結構。從生産端編輯處理和視訊編碼,再上傳到雲端。在雲端和轉碼環節上會進行視訊的分析和了解,然後進行政策優化,進行極緻超清的轉碼。相關的處理完成之後,會把處理好的資料通過邊緣節點進行分發,最後再傳輸到消費端。消費端會對直播流進行播放控制,視訊解碼以及效果增強。整體看下來涉及端上行,雲端編輯&轉碼,雲端分發,最後到端上消費,涉及到的環節多而複雜,往往需要跨多領域配合以達到最優體驗。

規模增長背後抖音如何建構直播體驗優化

現在抖音直播的分辨率大部分是1080p和720p。世界杯期間我們期望帶來4k的大更新,提供更高的清晰度。另外因為足球比賽的特性,運動激烈、紋理複雜、場景切換多,需要提供50fps加HDR模式,最大程度的還原比賽的臨近感和沖擊性。但這些畫質更新的背後,也會帶來視訊資料量大、實時處理難度大等問題,我們又不希望引入額外的延時,同時使用盡可能低的碼率,這些都有非常大的挑戰。

規模增長背後抖音如何建構直播體驗優化

我們采取了以下優化思路來解決上述問題。首先進行政策優化的選型,比如判斷軟體編碼還是硬體編碼,檔位配置,并對畫質進行整體評分。政策決定好之後,再進行内部編碼核心的優化,以及具體前後處理優化政策,最終保證畫質最優。

拆開政策優化一共有三個動作:

首先評估是用硬體編碼的模式,還是軟體編碼的模式,在足球比賽這樣特殊的場景中,綜合判斷軟體編碼的效果往往比硬體編碼效果更好,也更具定制化改造和優化開放性。

其次進行前處理的預估,世界杯信号源支援HDR,我們要把HDR的效果帶給所有的觀衆,就需要在轉碼側、分發側以及端上都具備支援4K HDR的能力,否則就會出現圖像偏暗的問題。但同時我們也要考慮到一些使用者因為手機性能或者網絡的原因,沒有辦法播放HDR視訊,這就需要同時具備HDR轉換成SDR的能力。在轉換過程中會發現傳統的ToneMapping算法,不論是Reinhard、Filmic或者Hable,其本質都是固定映射曲線實作從HDR到SDR的轉換,不可避免會産生一些資訊損失,導緻效果不好。我們設計了自适應ToneMapping,通過統計視訊内容的實際光照情況動态地進行ToneMapping,進而得到更優的效果。

規模增長背後抖音如何建構直播體驗優化

另外,抖音世界杯直播支援多機位、多檔位、多分辨率。我們通過多輪評測,制定檔位碼率的甜點值是多少,目的是為了能夠用最低的碼率達到最優的畫質體驗。

規模增長背後抖音如何建構直播體驗優化

前處理的環節中,重點講一下時域ROI技術,為了兼顧視訊碼率和主觀畫質,我們采用基于LSTM(長短期記憶網絡)的時域ROI技術。通過人眼顯著性區域檢測和編碼相結合的方式,讓碼率在畫面上的配置設定更加合理。

但目前市面上沒有專門針對足球場景的saliency(顯著性物體檢測)資料集,通用的saliency資料集在世界杯這類特定場景中表現并不理想。針對這一問題,團隊專門制作了足球場景的saliency資料集,通過眼動儀追蹤球迷觀看球賽時的關注區域得到足球比賽的專用saliency資料集,進而極大增加了模型的準确性。針對足球場景中顯著性物體較多,顯著性區域分散的特點,團隊對檢測模型進行了專門的優化,在保證檢測速度的前提下,提高了模型的召回率和不同場景的魯棒性,進而實作更優的主觀品質。

規模增長背後抖音如何建構直播體驗優化

編碼器核心優化環節, 我們結合世界杯,梳理了過往比賽的測試序列,并根據特征選擇包括球場、觀衆、特寫等等,精簡視訊數量,目的是加快測試疊代,進而在控制碼率、動作估計等進行定向優化。最終的效果從圖中可以看出,在PSNR、Vmaf對比下,碼率持續降低,同時速度在大幅度的提升,最終我們的碼控偏內插補點也控制在1%範圍之内。另外與開源項目X265對比,比X265的最快檔位,速度還快。最慢檔位,碼率還低。

-03-

下一步的優化空間

第三部分,我們聊聊下一步的優化空間,這裡更多的是一些對未來的探索和想法。

規模增長背後抖音如何建構直播體驗優化

在過往的直播體驗優化的過程中,我們做了例如節點優化、極緻高清、超分、音量均衡、分辨率更新和HDR等等。在業務情況不斷發生變化的同時,使用者的網絡情況、裝置情況也在不斷發生變化。做了這麼多優化,我們到底想要達成什麼樣的目的呢?我們最終沉澱了什麼?或者有方式能達成靈活的政策嗎?

規模增長背後抖音如何建構直播體驗優化

未來我們依然希望能夠把音視訊技術和資料驅動相結合,沉澱到政策中心中去。能夠在不同的業務場景、不同的使用者需求,提供針對性的優化政策,精細化打磨。另外業務每天都在變化,突發情況特别的多,也需要我們具備這樣的技術手段,否則很難保證靈活的模式支援業務發展。

規模增長背後抖音如何建構直播體驗優化

最後,我認為直播體驗優化是一個持續的過程,随着場景的新增,新技術的産生,我們一直在優化的路上。如果把穩定性看作60分的基礎分,那麼如果想拿滿分,就必須在直播各個環節持續的優化。需要更低的延遲,更高的畫質,更低的成本,甚至需要跳出直播流本身,與業務側進行動态配合,以保證整個直播的最優效果。

感謝大家,這是我今天的分享。

LiveVideoStackCon 2023上海講師招募中

LiveVideoStackCon是每個人的舞台,如果你在團隊、公司中獨當一面,在某一領域或技術擁有多年實踐,并熱衷于技術交流,歡迎申請成為LiveVideoStackCon的講師。請送出演講内容至郵箱:[email protected]