以“用户播放行为与体验”为核心的视频服务质量优化
如何應對視頻直播中復雜多樣的用戶網絡環境,提高視頻服務質量是各直播服務平臺面臨的一大難題。Twitch提出了一種無監督學習的方法,全面評估用戶觀看時的行為與體驗,預測用戶的網絡狀況,通過碼率自適應的方法實現快速的迭代升級從而提高服務質量。本文來自Twitch Principal Research Engineer沈悅時在LiveVideoStackCon 2018中的分享,并由LiveVideoStack整理而成。
文 / 沈悅時
整理 / LiveVideoStack
大家好,我是來自Twitch的沈悅時,接下來我將為大家介紹Twitch如何辨識用戶社區中繁復多樣網絡狀況,提高視頻服務質量。實現理想的網絡狀況辨識我認為需要著重關注如何更好地描述用戶播放行為,以及如何高效發揮碼率自適應播放的全部威力。我們希望通過“魔鏡”項目將用戶觀看直播的體驗提升至新的高度。
1. Twitch是什么?
在正式分享開始之前,先為大家介紹一下Twitch——Twitch是中國市場以外最大的互動直播平臺。
直播內容主要以游戲為主,當然也包括少量戶外或室內直播。我們更側重于互動性較強的直播場景,需要借助低延時的互動直播技術在主播與用戶之間構建雙向溝通交流的橋梁。在我看來,直播不僅僅用于觀賞,更陪伴用戶的生活,因此我們希望將Twitch打造成為一個供游戲愛好者聯系彼此的社區。
2. 碼率自適應播放的威力
?
言歸正傳,“魔鏡”項目亟需解決的用戶痛點是什么?在我看來,首先是提供一種更加全面的方法評估用戶觀看游戲直播的體驗,其次是發掘碼率自適應播放的威力,實現快速的迭代升級從而提高服務質量與用戶滲透。
自適應碼率檢測與切換可以說是用戶期待已久的功能。早在2015年諸如YouTube這樣的視頻網站就實現了碼率自適應播放,具體原理為播放器根據后臺自動檢測獲取到的帶寬環境相關數據判斷帶寬質量好壞,并針對不同帶寬質量的用戶提供合適的視頻碼率與分辨率,如果網絡環境良好帶寬資源充足則為用戶播放全高清畫面,如果網絡環境一般帶寬資源緊張則會適當降低分辨率與碼率,播放質量會隨著網絡環境動態變化。對一些處于弱網環境的用戶來說這是一項可保證播放流暢體驗的重要功能。
?
上圖展示了Reddit上有用戶對我們沒有在播放端集成碼率自適應播放功能提出意見,可以看到大部分特別是其網絡帶寬不好的用戶他們非常期待此項功能。由于中美兩國在網絡資源定價上的差異,美國的直播多使用H264或DASH以控制成本。這樣做的好處便是可同時實現ABR,通過將碼率切分的方式,播放器可根據網絡狀況動態切換。需要強調的是,點播的內容早已在最終節點準備好,播放器可根據已知內容信息作出較為合理的動態碼率控制決策;對于直播來說,由于其對低延遲的要求很高,尤其處于互動直播場景時,我們需要控制播放器緩存為一個較為合理的區間,如果緩存過大會對交互實時性產生不利影響。一般情況下點播需要的緩存為15~20秒,而對直播來說5秒就已經算是非常大的緩存。Twitch的緩存約為2.5秒,較小的緩存雖然能降低延遲但也會造成錯誤發生的頻率提高,這對直播來說也是一項亟需攻堅的難題。
?
內容是視頻生產環節最關鍵的元素,播放器需要偵測不斷更新的直播內容與播放清單從而優化ABR過程。2015年時學術界基本沒有將ABR技術用于直播場景的研究,因此從那時我便開始了對此領域的探索——如何將ABR技術應用于直播場景并實現良好效果?
?
2016年時我們做出了第一版Demo并進行了A/B測試,取得了令人滿意的結果。上面兩幅圖,橫坐標表示帶寬,從左往右遞增,縱坐標表示每一種碼率的分布情況;左側表示手動切換碼率而未使用ABR的測試結果,右側表示使用ABR自適應切換的測試結果。
從以上兩幅圖我們不難發現,不使用ABR的情況下用戶選擇碼率相當盲目,即便在帶寬資源充足時也會有相當一部分用戶選擇低清晰度的畫面觀看;碼率并未隨著帶寬變化調整到最適合的位置以為用戶呈現在此網絡環境下體驗最好的視頻服務,直接帶來的影響就是帶寬充足時低碼率造成畫質劣化,帶寬緊缺時高碼率帶來播放卡頓。
而如果是使用ABR,可以看到ABR根據帶寬變化動態且精準地找到了每一項帶寬指標所能實現的最佳碼率,高帶寬條件下可以看到碼率也保持在一個較高水平,隨著帶寬的降低碼率也相應降低,并且每一帶寬都對應一個最佳碼率。可以說ABR準確地檢測用戶的帶寬并給用戶一個最佳碼率選擇,同時也將我們平臺的卡頓時間降低了7.4%,我們為了降低卡頓率需要斥巨資在全球部署數據中心,7.4%的卡頓降低可以說非常了不起。產品公測時,有49%的用戶選擇使用自適應碼率播放功能,其中有超過60%為帶寬低于1Mbps的用戶。
?
我們的自適應碼率功能于2017年3月在平臺全面上線。也許有人會問,為什么花了這么久的時間才上線此項服務,這就不得不講到我們對ABR產品漫長的調試與優化過程。
3. 產品上線的痛點
?
產品初期A/B測期間我們收到了大量用戶反饋,這些反饋為我們調試優化整套系統提供了頗具價值的參考信息。其中較為典型的就是有用戶反饋自適應碼率功能造成碼率與清晰度不斷頻繁切換,給正常的觀看體驗帶來的嚴重影響。這也為我們帶來了一定思考:這位用戶的網絡狀況所觸發的某種算法異常行為是小概率事件還是普遍現象?如何通過模擬這位用戶的網絡狀況妥善解決這項問題?
?
需要強調的是,雖然Twitch非常看重數據的價值,但我們更將用戶主觀感受擺在首要位置。一味相信數據而不考慮用戶主觀感受便會帶來像上面這樣的反饋問題。我們需要首先清楚針對不同的網絡環境,如何通過一套標準衡量體系對每位用戶的主觀感受做出準確判斷,從而規避單純的數據參考所帶來的對用戶體驗的忽視?
?
除了上述問題,我們在僅需A/B Test時也遇到了另一項問題:上圖表示平均帶寬利用率,左側黃線代表有ABR作用,綠色線代表無ABR作用。不難發現ABR算法僅可為網絡帶寬很高或很低的用戶帶來較為明顯的優化效果,那么我們該如何進一步發揮ABR的價值?
4. 必須克服的“元無知”
為什么會出現上述這樣無法明確找到原因的問題?主要是由于網絡狀況復雜多變,匯總的服務質量指標無法描述最終用戶的觀看體驗;而在研究算法時單純的實驗室仿真遠無法覆蓋現實當中各種復雜的網絡狀況,這也為利用算法優化用戶體驗帶來了更大挑戰;最關鍵的原因在于可影響用戶主觀觀看體驗的因素太多,從網絡接入類型到網絡運營商,從用戶所在位置到最終節點服務器甚至骨干網的容量與性能等等,都可影響到用戶對于視頻畫面的主觀感受,而這些感受背后的微量信息我們只能通過用戶行為與主動反饋獲知,更增加了優化的難度。
?
正因為上述這些亟待攻克的問題,導致我們A/B測試的部署周期十分冗長。雖然我們使用的測試策略就如上圖展示的那樣,屬于業界通用的測試策略,卻也用了很長一段時間才讓測試反饋的數據能夠指導我們進行更深次的優化工作。
?
此時擺在我開發團隊面前一項重要的命題就是:有什么信息可以使我們加速整個流程?與以往從網絡狀況入手優化算法的思路不同,我們嘗試通過研究用戶行為來確定觀眾觀看視頻時各方因素對主觀視覺體驗的影響。
5. “魔鏡”項目
?
這就是我們后來的工作重點——魔鏡項目
5.1 項目概要
?
魔鏡項目拋開了傳統的將卡頓率等網絡指標作為開發導向的思路,轉而將用戶播放行為作為指導開發與優化的關鍵。我們嘗試構建一套類似于”詞典“一般可檢測用戶行為并推測其背后體驗感受的指標體系,基于對播放行為的研究,首先我們定義對用戶而言最為理想的播放層架構;有了理想的播放器模型,我們還需針對每個國家與地區所擁有的不同網絡狀況等外部因素調整播放器模型,并將特定的用戶播放行為映射至已構建好的用戶典型播放行為“詞典”,同時重點分析特殊或單一播放行為的網絡狀況等參數并進行單獨優化。
5.2 構建“詞典“
?
構建全網用戶的典型行為“詞典”,詳細來說第一步是收集大量Session的時間序列,其中包括碼率、卡頓等可反映網絡傳輸狀況的常規數據。當然這一步需要大量的人力物力用于數據收集、檢索、清洗等,可以說是成本昂貴。
?
接下來我們對每個國家、地區的時間序列做分群處理,得到各個區域的典型播放行為。其中的時間序列分群處理主要是以時間為橫坐標碼率為縱坐標構建分群圖像,并基于全網所有用戶的播放行為與不同國家與地區用戶行為的典型共有特征,將所有時間序列進行聚合分類處理。具體來說,首先定義兩個采樣點(時間序列)之間的距離為Dynamic Time Warping,隨后對時間序列進行分類操作,從而規避對相似特征視頻序列的繁瑣分析。最終基于分組我們可以得到每一國家或地區的用戶典型的播放行為畫像,進一步把眾多區域的典型播放行為再做一個分群處理,從而得到全網用戶的典型播放行為“詞典”。
5.3 實踐中的發現
?
通過上述對用戶行為的系統性分析,我們有了一些可為自適應編碼的優化提供指導的發現。積極的發現是全網用戶最典型的四種播放行為分別是:1080p60、720p60、720p30和480p30(或360p30)。碼率穩定在以上幾種參數之間的播放行為基本不會受到卡頓的困擾。這說明我們的大多數用戶所體驗到的播放體驗是良好的,且ABR算法整體起到了至關重要的作用。
?
消極的發現便像上圖展示的那樣,個別用戶觀看的視頻會在1080p 60fps、720p 60fps與720p 30fps之間或720p 60fps、720p 30fps與480p 30fps之間頻繁切換。
?
極個別用戶更是會面臨最高碼率與卡頓之間頻繁切換的現象,可以想像此情形下用戶體驗一定非常糟糕。
以上是我們為全網用戶構建的20種最典型的播放行為“詞典”中的幾項,接下來我們需要將每個國家的播放行為映射至辭典中。
?
為每個國家或地區構建特定的服務質量指標,例如在墨西哥有超過50%的用戶觀看1080P,其中有0.3%的用戶遭受了從1080p60到卡頓的頻繁切換現象,貢獻了大于10%的卡頓時間;而由于網絡質量較為出色,美國有超過83%的用戶可流暢觀看1080P60,中國臺灣則次于美國而優于墨西哥。除了宏觀分析,我們也針對特定群體重點分析其行為與卡頓之間的關系,例如墨西哥中那0.3%的用戶究竟是具有什么特殊的播放行為,使其遭受了從1080p60到卡頓的頻繁切換,同時破壞了整體質量指標的向好。
?
我們對這些用戶進行重點分析,發現這些用戶的帶寬下載量非常高,甚至超過20Mbps,但其響應時間卻很慢。具體來說就是當播放器向最終節點發送請求后需要很長時間才能收到第一個字節數據,但下載所占用的帶寬卻非常龐大。其原因可能是用戶離最終節點距離很遠或者雖然下載速度快但網絡響應的時間很長,而ABR并未將響應時間作為一項指標考慮在內。給用戶帶來的直接影響便是如果用戶下載一個兩秒鐘的影片卻需要花費1.5秒鐘等待第一個字節數據的到達,最后0.5秒的時間無法下載完成片段,而此時ABR默認網絡狀況與下載速度滿足1080P的要求,此時就會出現頻繁的卡頓。這給我們的啟示是ABR算法需要針對一些特別的非常見網絡狀況作出優化,才能根據網絡為用戶提供精確而自然的自適應碼率切換。
6. 總結與未來展望
Twitch作為一個布局全球,峰值在線觀眾高達近300萬的國際性互動直播平臺,所上線的ABR算法明顯提高了服務質量與用戶滲透。想要進一步優化最終用戶的觀看體驗,冗長的A/B測試周期與不夠細分的服務質量指標是兩大亟需改進的瓶頸。這就是我們開發“魔鏡”項目的原因,也就是試圖通過大數據理解Twitch社區的典型播放行為從而尋找關鍵問題。未來我們希望進一步構建網絡模型,從而在實驗室重現播放行為;同時把后臺的網絡事件與前臺的播放數據相關聯,從而實現更加出色的互動直播使用體驗。
LiveVideoStackCon 2019北京正在招募出品人和講師,無論你是技術派還是學術派,亦或是行業專家,無論你的團隊有多小,有多新,都可以來申請LiveVideoStackCon的講師或出品人。點擊【原文閱讀】了解更多大會相關信息。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的以“用户播放行为与体验”为核心的视频服务质量优化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三十年TCP与七年QUIC 谁才是未来?
- 下一篇: NAB 2019见闻:CAE视频编码与Q