从体验出发构建以增长为目标的视频服务体系
點(diǎn)擊上方“LiveVideoStack”關(guān)注我們
增長(zhǎng)一直是業(yè)務(wù)的訴求,和增長(zhǎng)相關(guān)的因素很多,內(nèi)容、人群、創(chuàng)意玩法、性能體驗(yàn)等等,本次LiveVideoStackCon 2021 音視頻技術(shù)大會(huì) 北京站 我們邀請(qǐng)到了火山引擎點(diǎn)播技術(shù)研發(fā)負(fù)責(zé)人——浩銘老師。本次分享聚焦在字節(jié)跳動(dòng)視頻通過(guò)性能體驗(yàn)優(yōu)化促進(jìn)業(yè)務(wù)增長(zhǎng)的實(shí)踐。包括在分析方法上的探討,如何衡量和預(yù)估體驗(yàn)優(yōu)化對(duì)業(yè)務(wù)增長(zhǎng)的貢獻(xiàn),以及具體的體驗(yàn)優(yōu)化實(shí)踐分享。
文?| 浩銘
整理 | LiveVideoStack
首先呼應(yīng)一些LVS包總在主論壇演講的內(nèi)容,本次分享也會(huì)圍繞35歲和數(shù)據(jù)。首先是35歲,指我個(gè)人,在35歲時(shí)離開(kāi)大廠,開(kāi)始云服務(wù)創(chuàng)業(yè),經(jīng)歷幾年創(chuàng)業(yè)后再來(lái)到字節(jié),感受到不同做技術(shù)構(gòu)架構(gòu)的方法論。有兩個(gè)挑戰(zhàn):一是經(jīng)歷了2016年直播元年,看到新技術(shù)增長(zhǎng)爆發(fā),對(duì)于視頻行業(yè)所有從業(yè)者機(jī)會(huì);二是加入字節(jié)后感受到了數(shù)據(jù)的價(jià)值,和之前認(rèn)知的做事方法論不同,一邊做一邊總結(jié),就有了本次分享。在4年多以前來(lái)LVS分享過(guò),那時(shí)候還在做云服務(wù),基本上做了兩三年,覺(jué)得入門(mén)了,主要做云服務(wù)治理穩(wěn)定性和如何在廠商之間PK拿到更好分?jǐn)?shù)。回過(guò)頭來(lái)看,在C端從業(yè)一段時(shí)間后,對(duì)當(dāng)時(shí)做法有一定認(rèn)識(shí),開(kāi)始明白做云服務(wù)時(shí)始終不理解的為什么SDK一直賣(mài)不進(jìn)大客戶(hù)。
本次分享主要分為以下三個(gè)部分:首先是將我談的話題以增長(zhǎng)還是質(zhì)量為目標(biāo)做簡(jiǎn)單定義;然后介紹在面向視頻體驗(yàn)優(yōu)化能力在建設(shè)上的行動(dòng),由于公司都在用同樣方法做事,前面同學(xué)講得或多或少都有些體現(xiàn),更多地談一談做的理由和背后的思考;最后由于我們對(duì)內(nèi)是中臺(tái),對(duì)外也是希望云服務(wù)方式能夠把能力輸入出來(lái),以推廣為目的,把能力沉淀,更多的輸出以及一些展望。
1、目標(biāo)定義:增長(zhǎng)or質(zhì)量?
首先看一下增長(zhǎng)和質(zhì)量。
1.1 目標(biāo)定義的矛盾
在做云服務(wù)的時(shí)候經(jīng)常會(huì)聽(tīng)到核心指標(biāo),甲方和乙方都會(huì)關(guān)注這些指標(biāo),比如起搏耗時(shí)、卡頓、畫(huà)質(zhì)等。這個(gè)話題對(duì)不論是客戶(hù)和或是云廠商都很苦惱。客戶(hù)也希望保證服務(wù)是好的,需要有衡量方式,用云廠商的時(shí)候需要知道用什么指標(biāo)促進(jìn)其不斷進(jìn)步,會(huì)去想用什么方式去衡量。對(duì)于云廠商來(lái)說(shuō),看到這些指標(biāo)就要去想優(yōu)化的動(dòng)作。之所以說(shuō)是蠻痛苦的過(guò)程,我也經(jīng)歷過(guò)這些角色,在云廠商看到這些指標(biāo),一方面會(huì)去想如何將其優(yōu)化,另一方面我也發(fā)現(xiàn)指標(biāo)定的不完善,有很多可置換的地方,完全可以通過(guò)PK策略把指標(biāo)換的很好,客戶(hù)沒(méi)有提到的指標(biāo)變差,甲方也想將衡量指標(biāo)變得很完整,確實(shí)有一些比較困難的點(diǎn):如果更看重畫(huà)質(zhì),提升畫(huà)質(zhì),起播耗時(shí)、卡頓可能劣化;如果優(yōu)化卡頓指標(biāo),畫(huà)質(zhì)可能劣化;如果縮短用戶(hù)感知的起播耗時(shí),達(dá)到秒開(kāi)效果,卡頓可能劣化。
以哪個(gè)指標(biāo)為主更好可以分幾個(gè)階段看,當(dāng)有能力在指標(biāo)之間不用做如何制衡就能獨(dú)立優(yōu)化時(shí)是最好的,用技術(shù)實(shí)力將每個(gè)做優(yōu)化。但優(yōu)化到一定程度進(jìn)入深水區(qū),不得不考慮制衡方式,將會(huì)是比較難的話題。大家很容易理解卡頓和首幀哪個(gè)做極致優(yōu)化對(duì)用戶(hù)更好,這樣類(lèi)型的問(wèn)題放在面前不經(jīng)會(huì)想評(píng)估標(biāo)準(zhǔn)不夠高,有可能有更頂層的指標(biāo)沒(méi)有被考慮,用它衡量置換關(guān)系會(huì)更合理。
1.2 播放體驗(yàn)和靈魂拷問(wèn)
接觸到C端業(yè)務(wù)后,發(fā)現(xiàn)雖然業(yè)務(wù)方和云廠商說(shuō)的是指標(biāo)之類(lèi)的要求,自己其實(shí)真正關(guān)注的是業(yè)務(wù)結(jié)果,例如:業(yè)務(wù)數(shù)據(jù)不好,是不是因?yàn)椴シ朋w驗(yàn)有問(wèn)題?很難回答,假如看到抖音的DAU有微弱的下降,能不能說(shuō)是播放質(zhì)量的問(wèn)題,還是剛剛提到的很多運(yùn)營(yíng)、人群的問(wèn)題。剛剛說(shuō)的存量業(yè)務(wù)隨著時(shí)間指標(biāo)劣化原因是否與我們有關(guān)。如果花了很大的力氣,新上線的feature,對(duì)業(yè)務(wù)的貢獻(xiàn)如何?產(chǎn)品和競(jìng)品之間播放體驗(yàn)的差距是什么?我們總說(shuō)極致體驗(yàn),到底什么是極致體驗(yàn)是什么,以及怎樣才算極致?這是在做C端業(yè)務(wù)支持字節(jié)內(nèi)部各個(gè)業(yè)務(wù)發(fā)展時(shí)會(huì)面臨的問(wèn)題。
1.3 QoS和QoE理念
這些問(wèn)題的回答很有難度,可以看到共性,業(yè)務(wù)最關(guān)心的還是業(yè)務(wù)數(shù)據(jù)。業(yè)務(wù)數(shù)據(jù)包括DAU留存、廣告收入、成本等。從業(yè)務(wù)收入往下看到與我們相關(guān)的QoE,指播放次數(shù)、播放時(shí)長(zhǎng)、完播率、投稿量、投稿率這些指標(biāo)。在最開(kāi)始討論畫(huà)質(zhì)時(shí),AB在看畫(huà)質(zhì)時(shí)看什么指標(biāo),在考慮AB時(shí)不用考慮技術(shù)工作,是業(yè)務(wù)問(wèn)題,不管做什么優(yōu)化動(dòng)作,看的都是相關(guān)QoE指標(biāo)、播放次數(shù)、播放時(shí)長(zhǎng)。例如做一些C端玩法時(shí)不一樣,會(huì)看滲透率、評(píng)論率等,這與多媒體無(wú)關(guān)。多媒體強(qiáng)相關(guān)基本圍繞上圖列出的QoE來(lái)看。無(wú)論做的是卡頓優(yōu)化、能力優(yōu)化、畫(huà)質(zhì)優(yōu)化,指標(biāo)都不變。
我列出了一些常見(jiàn)的QoS,包括播放失敗率、起播時(shí)間、卡頓指標(biāo)、畫(huà)質(zhì)指標(biāo),在支撐QoE上來(lái)說(shuō)即使再完善QoS也不全面,因?yàn)楹芏嘁蛩囟紝?duì)體驗(yàn)項(xiàng)有影響。如果人群因素(老年、年輕)、運(yùn)營(yíng)活動(dòng)影響、以這些體驗(yàn)優(yōu)化,更為可控的還是多媒體能力相關(guān)的。
本次希望聚焦在列出的和視頻能力相關(guān)QoS指標(biāo)展開(kāi)討論,看這些指標(biāo)如何影響到QoE,以及如何去衡量和制造工作。
1.4 面向體驗(yàn)優(yōu)化的一些不同做法
在開(kāi)始提到了AB實(shí)驗(yàn),提到的難點(diǎn)都是缺少更上層的指導(dǎo)原則,但看指標(biāo)PK更像是過(guò)程指標(biāo)。如果有更上層指標(biāo),過(guò)程指標(biāo)的好壞有了判斷條件。這里非常推薦AB實(shí)驗(yàn),不是說(shuō)QoS不好,但可以通過(guò)QoS指標(biāo)自己給出公式衡量業(yè)務(wù)是否很好,廠商提供的服務(wù)是否很好,難度非常大,在理解力不夠情況下,很難短期給出合理指標(biāo)。但AB實(shí)驗(yàn)對(duì)希望提升標(biāo)準(zhǔn)給了方法,直接告訴結(jié)果,無(wú)論上了何種能力,直接從業(yè)務(wù)結(jié)果看能力結(jié)果的好壞,字節(jié)有了這個(gè)能力就可以用這個(gè)方法。有了這個(gè)方法后,最大的不同會(huì)暴露出元無(wú)知(原先我們不知道自己不知道)的場(chǎng)景。
舉個(gè)例子最開(kāi)始做AB實(shí)驗(yàn)的例子:當(dāng)時(shí)想要在字節(jié)內(nèi)部推自研的播放器及其自研的編解碼器用來(lái)提升體驗(yàn)、降低成本。我在之前云服務(wù)時(shí)做過(guò),在能力上沒(méi)有新的東西,沒(méi)想到推兩個(gè)能力過(guò)AB達(dá)到正向結(jié)果花了將近8個(gè)月時(shí)間,做了上百次AB實(shí)驗(yàn),再來(lái)一次我一定分別推這兩個(gè)能力而不是同時(shí)。期間經(jīng)歷了很多元無(wú)知,中間AB實(shí)驗(yàn)告訴我在上這兩個(gè)能力之后,用戶(hù)評(píng)價(jià)意愿變低,怎么也想不通為什么一個(gè)播放器功能和編碼更新升級(jí)會(huì)讓用戶(hù)不愿發(fā)評(píng)論,這是一個(gè)核心指標(biāo)。它告訴了我這樣的結(jié)果一定是哪里有問(wèn)題但我不知道,之前提到的首幀卡頓失敗率指標(biāo)都沒(méi)有變差,我也建立不起來(lái)為什么會(huì)影響到評(píng)論,只能看無(wú)知的地方。突破無(wú)知的場(chǎng)景有很多,可以看競(jìng)品或與人聊,不斷增加埋點(diǎn),陸陸續(xù)續(xù)建設(shè)龐大的埋點(diǎn)體系,包括音畫(huà)不同步、Seek耗時(shí)、未起播、功耗、流量的浪費(fèi)率、畫(huà)質(zhì)。
我們之前并沒(méi)有評(píng)價(jià)畫(huà)質(zhì)的能力用分辨率或是碼率代替都不是很合理。碼率升高或降低并不能對(duì)畫(huà)質(zhì)做直接衡量,用線上用VQScore評(píng)價(jià)指標(biāo)方便的去衡量可能出問(wèn)題的地方。面向體驗(yàn)和質(zhì)量的兩種做法在我自己看來(lái)最大的挑戰(zhàn)是面向自己的元無(wú)知,承認(rèn)自己有東西不會(huì),不斷通過(guò)AB實(shí)驗(yàn)找到不會(huì)的點(diǎn),將其露出來(lái),也許在一段時(shí)間后對(duì)于穩(wěn)定的業(yè)務(wù)給出一個(gè)QoS組合去衡量能力好壞的方法去代替AB,但很多產(chǎn)品現(xiàn)在還做不到,比如CDN產(chǎn)品很成熟,業(yè)務(wù)可以用速度和成功率等指標(biāo)去衡量CDN廠商做得好不好,但新的傳輸方案PCDN因?yàn)樯婕岸松系哪芰?#xff0c;指標(biāo)體系更復(fù)雜,在短時(shí)間內(nèi)無(wú)法建立對(duì)其合理的QoS評(píng)價(jià)標(biāo)準(zhǔn),在這個(gè)產(chǎn)品上我一直強(qiáng)烈反對(duì)用QoS打分衡量做得好不好,而是一直在用AB實(shí)驗(yàn)。這是不同的理念帶來(lái)的做事方法不同。
2、視頻體驗(yàn)優(yōu)化能力建設(shè)
接下來(lái)我想談一談在這個(gè)理念下能做得視頻體驗(yàn)優(yōu)化到底有哪些。我現(xiàn)在主要做點(diǎn)播方向,舉得也是點(diǎn)播的例子。大家都知道點(diǎn)播是一個(gè)很成熟的方向了。我在2012或是2013年時(shí)在百度做點(diǎn)播的服務(wù),后來(lái)經(jīng)歷創(chuàng)業(yè)時(shí)候做直播,現(xiàn)在回來(lái)做點(diǎn)播發(fā)現(xiàn)其實(shí)差不多還是這些。
2.1 體驗(yàn)優(yōu)化的技術(shù)空間來(lái)自哪里
上圖是能力。現(xiàn)場(chǎng)有很多友商的同學(xué),大家做出來(lái)都是這樣,沒(méi)有太大區(qū)別,在能力都基本同質(zhì),建構(gòu)細(xì)節(jié)會(huì)有所不同,很多人會(huì)疑問(wèn)以更高標(biāo)準(zhǔn),以AB實(shí)驗(yàn)指導(dǎo)內(nèi)部做事是否還有空間。
我與產(chǎn)品接觸比較多,邀請(qǐng)中臺(tái)產(chǎn)品做分享。他提到的一個(gè)概念:基本滿(mǎn)足需求和充分滿(mǎn)足需求,這是完全不同的兩件事情,中臺(tái)做到充分滿(mǎn)足是大有可為的。如果想要基本滿(mǎn)足,對(duì)于一個(gè)需求實(shí)現(xiàn)一種功能就可以完成;如果想要充分滿(mǎn)足,就需要不停付諸努力,試錯(cuò)優(yōu)化,找到最終最優(yōu)解。他舉了這樣一個(gè)例子:人類(lèi)在200萬(wàn)年前學(xué)會(huì)狩獵和采摘,之后基本滿(mǎn)足食物需求,直到近現(xiàn)代才有農(nóng)業(yè)機(jī)械改良后的高產(chǎn)作物和強(qiáng)大的運(yùn)輸能力,這時(shí)候才稱(chēng)得上完全滿(mǎn)足。這個(gè)理念很有意思,代入到研發(fā)上也對(duì)應(yīng)的上。接下來(lái)聊一聊這幾年在字節(jié)做到充分滿(mǎn)足我所做的事情。我做了一些印象深刻的歸類(lèi)但不全。首先是弱網(wǎng)弱機(jī)的優(yōu)化,海外、全國(guó)、下沉業(yè)務(wù)都是字節(jié)所看重的,有很多不像一二線城市有好的機(jī)型覆蓋和好的網(wǎng)絡(luò),像RTC業(yè)務(wù)也是在做白名單,對(duì)于弱網(wǎng)弱機(jī)有一定優(yōu)化,在各類(lèi)業(yè)務(wù)中都有所體現(xiàn),基礎(chǔ)設(shè)施帶來(lái)的難度提供了在技術(shù)上更優(yōu)保證體驗(yàn)不受損。
新技術(shù)比如H.265的播放,如果單單要達(dá)到H.265播放不是很難,很多云廠商包括我之前也有方案輸出,為了方便的業(yè)務(wù)適配和快速接入軟解。實(shí)驗(yàn)時(shí)發(fā)現(xiàn)在非常成熟大體量業(yè)務(wù)中,把軟解換成硬解都會(huì)有1%以上的時(shí)長(zhǎng)和播放次數(shù)提升,留存也是正向的。大家也許覺(jué)得1%數(shù)不太大,在成熟的大體量業(yè)務(wù)中,這個(gè)數(shù)字已經(jīng)非常可觀。H.265提升硬解覆蓋率需要很多細(xì)節(jié)優(yōu)化以及策略配合。控制策略方面實(shí)驗(yàn)較多,沒(méi)有太多套路。有些能力用的好不好并不是中臺(tái)的本事,而是業(yè)務(wù)方的問(wèn)題,把很多能力暴露出去后,幫助業(yè)務(wù)方在不同場(chǎng)景下用不同參數(shù)開(kāi)啟不同能力。例如單列雙列業(yè)務(wù)模式下是否要預(yù)加載,預(yù)加載的策略是什么,加載幾個(gè),空間的留出。我們所能做得是理解業(yè)務(wù)需求把更多能力放出來(lái),另一方面可以參與到業(yè)務(wù)的一個(gè)個(gè)實(shí)驗(yàn)中,陪著業(yè)務(wù)將受益拿到并沉淀回來(lái),這是我們能做的一部分空間。
前文都在說(shuō)如何在現(xiàn)有基礎(chǔ)上把更好的技術(shù)思路用起來(lái),讓體驗(yàn)有進(jìn)一步的提升,成本優(yōu)化是公司經(jīng)營(yíng)中重點(diǎn)關(guān)注的點(diǎn),如果把成本控下去,可以讓公司的財(cái)務(wù)現(xiàn)狀更健康,很多成本優(yōu)化是來(lái)自于對(duì)性能犧牲,我們的空間是如何在成本優(yōu)化的同時(shí)不造成體驗(yàn)的劣化。上圖中列了如果我們有50%的成本節(jié)省目標(biāo),不做成本置換情況下在能力上可以做的事情,比如編碼器的優(yōu)化、節(jié)省的浪費(fèi),以點(diǎn)播成熟業(yè)務(wù)來(lái)看,有很多浪費(fèi),達(dá)到60%,下載到客戶(hù)端的數(shù)據(jù)根本沒(méi)人看,這個(gè)成本是業(yè)務(wù)方自己在扛。但如果將這一部分的成本省下去,可能會(huì)帶來(lái)AB實(shí)驗(yàn)的負(fù)向,在策略上深耕才能在節(jié)約成本同時(shí),體驗(yàn)不下降。最后是單價(jià)優(yōu)化的可能,選擇質(zhì)量不好但便宜的傳輸資源,會(huì)涉及到一些節(jié)點(diǎn)的調(diào)用和端上切換邏輯,AB實(shí)驗(yàn)蠻難通過(guò),這些技術(shù)的難度帶來(lái)了可做事情的空間。
這里指的是點(diǎn)播的,直播上會(huì)更多,有玩法帶來(lái)的壓力。
這是大概的統(tǒng)計(jì)數(shù)字,已經(jīng)做得現(xiàn)狀空間內(nèi)差不多有39個(gè)已有策略,有的比較成熟像26個(gè)可以推廣,還有一些在開(kāi)發(fā)應(yīng)用階段。做一些歸類(lèi),有編碼、設(shè)備、功能、網(wǎng)絡(luò)、渲染、緩存、檔位、上傳等。這里就不展開(kāi)講了。
2.2 零耗時(shí)首幀優(yōu)化
舉一個(gè)簡(jiǎn)單的例子代入剛才說(shuō)的思路驗(yàn)證。首幀的例子大家理解,可以拿來(lái)演示一下。字節(jié)有對(duì)于零首幀分析優(yōu)化的講解,我拿著成熟的例子介紹。首先“零耗時(shí)”首幀并不是0毫秒,而是基本用戶(hù)感知不到首幀存在,現(xiàn)在線上效果達(dá)到100ms以?xún)?nèi)。上圖是一個(gè)很標(biāo)準(zhǔn)的圖,很多第三方SDK和海外統(tǒng)計(jì)性數(shù)據(jù)平臺(tái)有類(lèi)似方式,它會(huì)記錄起播時(shí)間,中間是否有未播放就退出,真正首幀結(jié)束時(shí)間,中間如果發(fā)生Seek或卡頓會(huì)將其時(shí)間點(diǎn)和耗時(shí)記錄再到播放結(jié)束。最開(kāi)始我們也是這樣的埋點(diǎn)體系,這個(gè)體系對(duì)于使用就夠了,如果想拿它去下鉆深耕很無(wú)力,不知道其中哪里藏了可被優(yōu)化的地方。
2.2.1 指標(biāo)建設(shè)
所以第一件事情是重新建立指標(biāo)體系。前文提到用8個(gè)月時(shí)間就是不斷完善買(mǎi)點(diǎn),看到底在改動(dòng)時(shí)候,哪個(gè)指標(biāo)變差,后面會(huì)有對(duì)其歸類(lèi),在建設(shè)時(shí)不知道什么會(huì)出現(xiàn)問(wèn)題,會(huì)有一些帶有嘗試成分,把所有能想到的都加上。其實(shí)在首幀產(chǎn)生時(shí),在上下文環(huán)境之前,還有客戶(hù)那里創(chuàng)建頁(yè)面與我們交互。到我們有首幀準(zhǔn)備,數(shù)據(jù)下載(其中到底選擇CDN,P2P,解析結(jié)果是否要緩存,數(shù)據(jù)淘汰下來(lái)是否要做緩存,淘汰策略是什么)首幀渲染。
2.2.2 能力建設(shè)
這些埋點(diǎn)體系建立后嘗試做歸類(lèi),在每個(gè)類(lèi)別里做什么樣的事情。這里分了四類(lèi):一是與業(yè)務(wù)相關(guān)的,在這一頁(yè)思路中在想有什么能力以不做置換情況下單純靠能力提升做體驗(yàn)優(yōu)化,而不是用犧牲指標(biāo)來(lái)?yè)Q。
首先是業(yè)務(wù)和業(yè)務(wù)交互,業(yè)務(wù)可以用多實(shí)例方式與播放環(huán)節(jié)交互。Video Decoder在硬解下stop release&start是有120ms耗時(shí),如果把復(fù)用節(jié)省是一部分首幀節(jié)省,這里統(tǒng)計(jì)數(shù)據(jù)是優(yōu)化首幀40ms以上,在預(yù)渲染方面會(huì)有單獨(dú)的介紹。
網(wǎng)絡(luò)耗時(shí)在SDN下載時(shí)有很多連接可以復(fù)用,不用釋放,好處是將重新建聯(lián)的耗時(shí)省掉。在做優(yōu)化的上線之后,發(fā)起新請(qǐng)求,單獨(dú)靠此能力,沒(méi)有預(yù)加載的幫助開(kāi)始接收數(shù)據(jù)不超過(guò)100ms。有了這個(gè)能力就有一些想象空間,用在點(diǎn)播只是基礎(chǔ),后續(xù)用多自由度或是VR需要切換視角時(shí)候,多路流需要有盡快完成切換的動(dòng)作,這些場(chǎng)景都是可以用的。
我還列出了硬解初始化,和一些公司聊過(guò),會(huì)覺(jué)得硬件是好,但首幀會(huì)變差。這里做業(yè)務(wù)初始化,業(yè)務(wù)是可控的,一些信息提前知道,不需要解析才能初始化硬解設(shè)備,可以提前做,達(dá)到硬解和軟解差不多的首幀效果。以及一些fallback,如果一些機(jī)型不支持硬解,需要fallback軟解,相比于單純使用硬解,會(huì)增加20ms耗時(shí)。結(jié)合前文機(jī)型選擇能力,提前知道哪些機(jī)型不合適走到硬解,這樣就把fallback比例控制在0.3%以?xún)?nèi)。
最后一個(gè)大維度合的有點(diǎn)牽強(qiáng),播放器策略邏輯耗時(shí),這一部分不是必須存在的,是為了播放邏輯更好,人為引入,在首幀渲染之后不一定會(huì)馬上起播,會(huì)緩存一段水位,到底需要緩存多少后續(xù)會(huì)有例子介紹,緩存多了會(huì)浪費(fèi),緩存少會(huì)卡頓。這種耗時(shí)是人為引進(jìn),可以被優(yōu)化,有些場(chǎng)景是低清場(chǎng)景,例如西瓜視頻豎屏觀看有詳情介紹,切換至橫屏可能是720P或更高,豎屏為了保持切換流暢使用相同分辨率播放同一視頻。如此小的窗口上這么高的分辨率沒(méi)有感官上的差異,反而會(huì)有卡頓首幀影響,這一方面是可以被優(yōu)化的。在把問(wèn)題拆解的時(shí)候,做一些對(duì)應(yīng)的優(yōu)化動(dòng)作靠著之前研發(fā)水平經(jīng)驗(yàn)不是什么難題。主要想要分享我們是怎樣進(jìn)一步拆解,想到做這些事情的。
2.2.3 策略?xún)?yōu)化
上圖是有些能力是我們自己能做的,有些能力是第一環(huán)節(jié)組合是業(yè)務(wù)浪費(fèi)的,這是聯(lián)合業(yè)務(wù)一起做的,這是業(yè)務(wù)的同學(xué)優(yōu)化項(xiàng)目,我們來(lái)配合,類(lèi)似抖音沉浸式的在劃動(dòng)時(shí)會(huì)切換下一個(gè)視頻,最早做了預(yù)加載,暴露能力出去,業(yè)務(wù)做了很多嘗試去知道預(yù)加載數(shù)量,每個(gè)加載時(shí)長(zhǎng)最優(yōu)。更進(jìn)一步預(yù)加載后是否可以預(yù)解碼,在有空閑的時(shí)候?qū)⒔獯a動(dòng)作做了,在用戶(hù)劃動(dòng)時(shí)將解碼好的那一幀投出渲染,這樣首幀可以極大的被優(yōu)化,最后想了一下預(yù)渲染的時(shí)機(jī)怎么觸發(fā)。以前是將卡片劃到下一個(gè)穩(wěn)定了渲染,現(xiàn)在只要一松手就可以渲染,通過(guò)這種方式感覺(jué)不到首幀存在,這樣的好處會(huì)先展示封面,之前加載圖片也是需要帶寬的,圖片的性能優(yōu)化也要做考慮,做預(yù)渲染方案圖片都可以省掉。每次一劃,下個(gè)視頻第一幀已經(jīng)被截好,圖片意義不大。因?yàn)樯婕暗綐I(yè)務(wù)方使用姿勢(shì),無(wú)法在中臺(tái)能力沉淀,額外出了將Demo最佳實(shí)踐的方式開(kāi)源,在官網(wǎng)和展臺(tái)獲取。
有了思路儲(chǔ)備能力,面對(duì)首幀和卡頓如何權(quán)衡才是對(duì)業(yè)務(wù)最好的。實(shí)踐的結(jié)果在內(nèi)部各個(gè)業(yè)務(wù)中通過(guò)調(diào)優(yōu)能取得完播率和播放指標(biāo)的顯著正向。但參數(shù)差異很大,沒(méi)有統(tǒng)一結(jié)論。介紹一下過(guò)程。我們會(huì)有緩沖水位概念,有可播數(shù)據(jù)后不一定馬上播,到緩存多大后才播是不停嘗試的。最開(kāi)始用靜態(tài)拍緩存0秒或緩存1秒,分別看效果。后續(xù)明顯看到1秒的卡頓明顯好于0秒,實(shí)驗(yàn)結(jié)果來(lái)看,AB結(jié)果也是1秒好于0秒。不是所有用戶(hù)都是弱網(wǎng)弱機(jī),不確定這1秒有無(wú)浪費(fèi),設(shè)置成1秒有很多優(yōu)化空間,逐步嘗試不止看起播,把卡頓數(shù)據(jù)也列出,這是一體的,都是調(diào)整水位的動(dòng)作,是動(dòng)態(tài)水位優(yōu)化策略。這里解釋一下起播是緩存多少才起播,卡頓后的水位是緩存了多少后才出卡頓,這兩個(gè)策略是連著做的。得出經(jīng)驗(yàn)性結(jié)論在微調(diào)階段,可以看出1秒留多了,降的時(shí)候可以看到顯著的正向收益,但降到一定閾值后,要權(quán)衡首幀和卡頓。在AB實(shí)驗(yàn)看來(lái)用戶(hù)會(huì)用卡頓更加明顯,提升首幀后緩存水位從200ms提至400ms,用戶(hù)體驗(yàn)結(jié)果會(huì)更好,卡頓減少。且不是每個(gè)用戶(hù)都是靜態(tài),可以根據(jù)自身情況做調(diào)整。端上對(duì)之前發(fā)生和網(wǎng)絡(luò)情況了解,可以在幾個(gè)值中動(dòng)態(tài)選擇更好結(jié)果。對(duì)于能沉淀下來(lái)的能力經(jīng)驗(yàn)包括水位值和業(yè)務(wù)相關(guān)。不同業(yè)務(wù)不同,稍長(zhǎng)的業(yè)務(wù)用戶(hù)對(duì)卡頓更能容忍,將一些優(yōu)化能力在首幀。沉淀的經(jīng)驗(yàn)對(duì)絕大多業(yè)務(wù)都有收益,業(yè)務(wù)類(lèi)型很廣。
3、能力沉淀&展望
最后說(shuō)一下能力沉淀和展望。我們有很多積累性的方法,我代入了點(diǎn)播的例子,包括其他例子都是同樣思路,但都會(huì)有一些門(mén)檻,包括儲(chǔ)備能力、理解能力,建一個(gè)置信的AB平臺(tái)都需要投入。字節(jié)每天都有超過(guò)1500次的新增A/B實(shí)驗(yàn)。在同一撥的用戶(hù)分層干凈,不互相干擾各自實(shí)驗(yàn),影響雙方至信度有平臺(tái)建設(shè)性工作。如何將能力沉淀不一定需要通過(guò)完備方法,達(dá)到較好體驗(yàn)結(jié)果。
3.1 能力沉淀,快速橫行復(fù)制
上圖是客戶(hù)端服務(wù)端數(shù)據(jù)結(jié)合的例子,大多數(shù)模塊并不陌生。重點(diǎn)是客戶(hù)端策略中心的部分,將之前沉淀經(jīng)驗(yàn)都放在客戶(hù)端策略中心模塊,這是產(chǎn)品化的一部分,是隨著點(diǎn)播SDK組件一起放出的,把之前積累的包括測(cè)速選檔,預(yù)加載策略,弱網(wǎng)弱機(jī)策略經(jīng)驗(yàn)放至策略中心。策略中心相對(duì)開(kāi)放,業(yè)務(wù)有定制化二次開(kāi)發(fā)。業(yè)務(wù)方比我們更了解業(yè)務(wù),如果想要自己做更改,例如進(jìn)入個(gè)人主頁(yè)預(yù)加載策略就與單列雙列不同,可在技術(shù)上做二次開(kāi)發(fā)的更改,這是在產(chǎn)品化沉淀和之前做法思路不一樣的地方,將深入業(yè)務(wù)零散的事情找了落腳點(diǎn),客戶(hù)端的策略中心能夠被持續(xù)的迭代優(yōu)化來(lái)源于自己的數(shù)據(jù)上報(bào)和統(tǒng)計(jì),沉淀于策略中心,通過(guò)服務(wù)端下發(fā),完成這樣通路。不僅在內(nèi)部,還具備對(duì)外輸出能力,只是能輸出客戶(hù)端策略有限,在一點(diǎn)點(diǎn)打磨。
3.2 重視QoS指標(biāo)劣化診斷
QoS指標(biāo)很重要,但理解力不夠,不以它為標(biāo)準(zhǔn),但已經(jīng)知道對(duì)QoE有強(qiáng)關(guān)聯(lián)的QoS指標(biāo),它的劣化是不能被容忍的,在對(duì)QoS診斷上投了大量精力。包括QoS指標(biāo)的監(jiān)控大盤(pán),對(duì)其自動(dòng)歸因,手動(dòng)歸因,單點(diǎn)歸因,這些能力在其他云廠商也會(huì)有建設(shè)。不同的是我們希望把提效做到極致,發(fā)生指標(biāo)劣化,第一時(shí)間沒(méi)有經(jīng)驗(yàn)同學(xué)也能知道發(fā)生事件的原因。我們除了完成四個(gè)能力建設(shè)以外,將連接這四個(gè)能力的線也做了產(chǎn)品化,讓沒(méi)有經(jīng)驗(yàn)的人在看到大盤(pán)的時(shí)候也能得出結(jié)論,首先用智能歸因明確問(wèn)題方向,在下一步引入手動(dòng)分析,對(duì)還有懷疑的地方手動(dòng)看。避免自己經(jīng)驗(yàn)和外部干擾,其中加入了弱引導(dǎo),多個(gè)維度加百分比,百分比的含義是這個(gè)維度下有多大可能出現(xiàn)根因,讓其盡量聚焦在引導(dǎo)的方向看,最后將大盤(pán)指標(biāo)對(duì)應(yīng)有特點(diǎn)的詳細(xì)數(shù)據(jù)單獨(dú)拉出,進(jìn)入檢測(cè)項(xiàng)目列表,對(duì)各種已知問(wèn)題類(lèi)型,比如有播放器創(chuàng)建檢測(cè)、視頻黑屏檢測(cè)、劫持檢測(cè)、播放URL過(guò)期檢測(cè),這些在日常會(huì)遇到的問(wèn)題做針對(duì)性檢測(cè),找到對(duì)應(yīng)問(wèn)題和修復(fù)手段。
在不斷演化過(guò)程中,智能歸因可讀性越來(lái)越好,從開(kāi)始給出某個(gè)CDN異常上漲或某個(gè)版本劣化的結(jié)論,到現(xiàn)在可以給出類(lèi)似有97%概率歸因到惡意用戶(hù)黑產(chǎn)導(dǎo)致的指標(biāo)異常,理由是低端機(jī)型低版本集中,這是在提效方面做得事情。
3.3 使命&愿景
這是使命愿景的一部分,希望做得是數(shù)據(jù)顧問(wèn)的角色,不止面向監(jiān)控與排障,還想面向策略調(diào)優(yōu)例如策略分析決定哪一套參數(shù)上線,沒(méi)有被完全產(chǎn)品化,更多的是在case by case分析中,最后面向產(chǎn)品洞察,由于有很多類(lèi)型業(yè)務(wù),可以抽象成不同賽道,給行業(yè)做指導(dǎo)。產(chǎn)品同學(xué)問(wèn),我們與競(jìng)品相比的優(yōu)劣,如果將抽象做得足夠好,就可以給出在所在賽道好壞的建議。策略中心就是剛才提到的,和內(nèi)部方法論結(jié)合較緊。把基礎(chǔ)達(dá)到,功能指的不是基礎(chǔ)功能如播放、下載,而是已有功能基礎(chǔ)上做深耕不得不挖出的新功能,比如連接復(fù)用、水位閥控制下載節(jié)省流量,這些屬于我說(shuō)的功能,比較通用能看到業(yè)務(wù)收益,在策略層被使用在不同場(chǎng)景中,構(gòu)建產(chǎn)品中心服務(wù),這其中功能和策略屬于自身產(chǎn)品化部分橫向復(fù)制。場(chǎng)景層更多的是通過(guò)Demo開(kāi)源,告訴理解到的最佳業(yè)務(wù)實(shí)踐,如何寫(xiě)代碼,幫助快速實(shí)現(xiàn)。現(xiàn)在開(kāi)源的包括類(lèi)似抖音快速刷新場(chǎng)景的實(shí)踐,下一步會(huì)開(kāi)源西瓜劃動(dòng)體驗(yàn)優(yōu)化。
接這兩個(gè)框圖做一個(gè)總結(jié),云廠商會(huì)有特別大的產(chǎn)品矩陣支持端到端的所有功能,希望和字節(jié)相關(guān)獨(dú)特都在這張圖中了,在支撐內(nèi)部業(yè)務(wù)追求體驗(yàn)時(shí),逐漸開(kāi)出了數(shù)據(jù)顧問(wèn)和策略中心兩種產(chǎn)品,不同于云服務(wù)產(chǎn)品,但也會(huì)將其作為產(chǎn)品向大家開(kāi)放,它不一定幫助云廠商增加營(yíng)收、控制成本,但幫助客戶(hù)做好體驗(yàn)、幫助客戶(hù)把錢(qián)省下。在做字節(jié)內(nèi)部業(yè)務(wù)的時(shí)候,對(duì)業(yè)務(wù)價(jià)值很大,但作為云服務(wù)并不多見(jiàn),打磨好這個(gè)產(chǎn)品,是我們希望持續(xù)投入做的事情。
最后提下愿景,火山引擎視頻服務(wù)希望能為更多業(yè)務(wù)方的使用體驗(yàn)、使用成本負(fù)責(zé)。
以上就是我本次分享的所有內(nèi)容,謝謝。
講師招募
LiveVideoStackCon 2022 音視頻技術(shù)大會(huì) 上海站,正在面向社會(huì)公開(kāi)招募講師,無(wú)論你所處的公司大小,title高低,老鳥(niǎo)還是菜鳥(niǎo),只要你的內(nèi)容對(duì)技術(shù)人有幫助,其他都是次要的。歡迎通過(guò)?speaker@livevideostack.com?提交個(gè)人資料及議題描述,我們將會(huì)在24小時(shí)內(nèi)給予反饋。
喜歡我們的內(nèi)容就點(diǎn)個(gè)“在看”吧!
總結(jié)
以上是生活随笔為你收集整理的从体验出发构建以增长为目标的视频服务体系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 音视频技术开发周刊 | 225
- 下一篇: 音视频技术开发周刊 | 226