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