专访快手传输算法负责人周超博士:LAS标准的推出离不开信念感
6月21日,快手正式對(duì)外發(fā)布基于流式的直播多碼率自適應(yīng)標(biāo)準(zhǔn)LAS(Live Adaptive Streaming),用于提供低延遲、平滑、流暢的直播多碼率體驗(yàn)。LAS的端到端解決方案同時(shí)開源,包括服務(wù)端、客戶端、業(yè)界領(lǐng)先的多碼率自適應(yīng)算法等,從而幫助業(yè)界實(shí)現(xiàn)零門檻接入和使用LAS。
圖:《搏擊俱樂部》
采訪專家:周超博士,畢業(yè)于北京大學(xué),曾任職于華為2012實(shí)驗(yàn)室?,F(xiàn)任快手科技算法科學(xué)家,快手傳輸算法團(tuán)隊(duì)負(fù)責(zé)人。主要研究方向包括多媒體處理與通信、流媒體傳輸優(yōu)化等,發(fā)表論文40+,申請(qǐng)專利50+,曾獲得2012年IEEE VCIP Best Student Paper Award和2015年IEEE VCIP Best Paper Award。
1
做追求極致的選擇
最開始考慮多碼率自適應(yīng)大概是18年下半年。當(dāng)時(shí)團(tuán)隊(duì)的人很少,大家都在集中精力做KTP(Kuaishou Transport Protocol快手傳輸協(xié)議),優(yōu)化上行的體驗(yàn),包括直播推流、短視頻發(fā)布、以及RTC等。但當(dāng)時(shí)快手的直播業(yè)務(wù)發(fā)展非???#xff0c;隨著王者榮耀、吃雞這些爆款游戲的推出,游戲直播的規(guī)模急劇增長(zhǎng)。
游戲直播畫面復(fù)雜,對(duì)清晰度的要求很高,直播推流碼率是快手APP直播場(chǎng)景的好幾倍,卡頓情況嚴(yán)重。這時(shí)候,降低卡頓成為很明確的需求,大家第一反應(yīng)就是要做直播多碼率,但是具體怎么做,面臨著選型的問題。
當(dāng)時(shí)有兩條路:
圖:《紳士們》
一是“拿來主義”,采用DASH或HLS這類國(guó)際標(biāo)準(zhǔn)協(xié)議。優(yōu)點(diǎn)是部署簡(jiǎn)單,很快就能在線上看見效果。缺點(diǎn)也很顯著,這類基于分片的方案延遲大,例如采用HLS,至少需要3個(gè)片段,再考慮到推流、轉(zhuǎn)碼、服務(wù)端和客戶端的處理邏輯等因素,端到端的延遲預(yù)計(jì)4個(gè)片段左右。而當(dāng)時(shí)快手的GOP是4秒,那么延遲基本就是15秒往上了,這顯然不是用戶能接受的。
二是“造輪子”,自研一套低延遲的直播多碼率方案。自研的優(yōu)點(diǎn)很明顯,無論是架構(gòu)還是算法,都可以結(jié)合業(yè)務(wù)的需求做深度優(yōu)化。缺點(diǎn)也很突出,從零到一面臨著很多的不確定性。此外,快手的直播主要依靠第三方云廠商進(jìn)行分發(fā),采用自研的方案,意味著所有CDN廠商需要配合做定制化的開發(fā)。
自研私有方案我們是有經(jīng)驗(yàn)的,KTP就是私有方案,當(dāng)時(shí)也面臨過同樣的選擇?,F(xiàn)成的方案,例如直播可以采用RTMP,PK/連麥等RTC業(yè)務(wù)可以采用WebRTC。然而,眾所周知,RTMP雖然簡(jiǎn)單易接入,CDN支持好,但是由于底層采用TCP,很難做深入的優(yōu)化。
此外,直播和PK/連麥采用不同的協(xié)議,會(huì)存在互相干擾和競(jìng)爭(zhēng)的情況。因此,盡管自研會(huì)面臨著很多的不確定,包括協(xié)議、算法、源站等等,經(jīng)過反復(fù)斟酌與權(quán)衡,為了把傳輸做到極致,我們依然選擇了自研的KTP。目前KTP已全面用于快手的各種業(yè)務(wù),取得了非常不錯(cuò)的效果,這為團(tuán)隊(duì)自研多碼率方案提供了很強(qiáng)的信心。
選擇自研,并且能做成,是需要一定的認(rèn)知和信念的。
圖:《紳士們》
首先要評(píng)估自己的能力,能不能比現(xiàn)成的方案做得更好,要對(duì)相關(guān)的技術(shù)有非常深刻和全面的理解,以及對(duì)自己團(tuán)隊(duì)能力有足夠的認(rèn)知。快手音視頻技術(shù)團(tuán)隊(duì)都是行業(yè)里的佼佼者,技術(shù)能力上絕對(duì)不會(huì)有問題。
另外很關(guān)鍵的是信念,做自研的時(shí)候會(huì)去想:“有必要為了一點(diǎn)點(diǎn)收益投入那么大么?”“已有的方案簡(jiǎn)單快捷,湊合一下不也可以么?”
快手是一家“追求極致”的公司,對(duì)技術(shù)人來說,追求“極致”的技術(shù)就是我們的使命。在明確市場(chǎng)已有解決方案存在嚴(yán)重問題的情況下,只為了工作簡(jiǎn)便就“湊合”一下的選擇是我們心理上不能接受的??梢灶A(yù)見的是,隨著快手業(yè)務(wù)的飛速發(fā)展,這種“湊合”未來也將成為我們前行的障礙。
2
成功的秘籍是不放棄
毫無懸念的,我們?cè)俅巫呱狭俗匝兄贰m?xiàng)目初期內(nèi)部做了很明確的分工,例如各家CDN廠商的排期、轉(zhuǎn)碼模版的設(shè)計(jì)、客戶端和播放器的適配、自適應(yīng)算法的設(shè)計(jì)等等。
當(dāng)時(shí)大家對(duì)項(xiàng)目整體比較樂觀,預(yù)計(jì)3~5個(gè)月就可以上線,其中最擔(dān)憂的是CDN廠商,因?yàn)樾枰狢DN廠商配合做定制開發(fā),擔(dān)心對(duì)方配合度不高。事實(shí)證明是我們多慮了,CDN廠商了解基本信息后都非常認(rèn)可這套架構(gòu),并給予高度配合,甚至有的CDN廠商承諾一個(gè)月就可以聯(lián)調(diào)上線。于是,我們就很愉快的開工啦。
大約4個(gè)月左右,我們完成了所有的開發(fā)與聯(lián)調(diào)工作,開始灰度與AB測(cè)試。大家都期待著數(shù)據(jù)給我們一個(gè)大大的驚喜,然而驚喜沒有,驚嚇倒是不小,無論是卡頓率等QoS數(shù)據(jù),還是時(shí)長(zhǎng)等QoE數(shù)據(jù),都顯著負(fù)向,一時(shí)間大家都傻眼了。我的第一反應(yīng)是是不是多碼率自適應(yīng)算法設(shè)計(jì)的不夠合理?
圖:《搏擊俱樂部》
畢竟算法是影響多碼率效果的核心因素。我在北大讀博的研究課題之一就是多碼率算法,無論是標(biāo)準(zhǔn)制定還是學(xué)術(shù)論文,無論是系統(tǒng)搭建還是工程落地,都有比較豐富的經(jīng)驗(yàn),對(duì)這個(gè)領(lǐng)域也有很深刻的理解,在反復(fù)檢查算法的邏輯和實(shí)現(xiàn)后,基本排除了算法的因素。
到底為什么數(shù)據(jù)會(huì)負(fù)向,等待我們的是漫長(zhǎng)的基于數(shù)據(jù)驅(qū)動(dòng)的優(yōu)化過程。不斷的加埋點(diǎn),AB測(cè)試、數(shù)據(jù)分析與優(yōu)化、加埋點(diǎn)、AB測(cè)試、數(shù)據(jù)分析與優(yōu)化……一路逢山開路,遇水架橋,發(fā)現(xiàn)和解決了各類問題。
有的是我們低估了整個(gè)系統(tǒng)的復(fù)雜度,例如我們只是給了CDN廠商一個(gè)簡(jiǎn)單的需求文檔,但是各家CDN廠商都有自己的層級(jí)邏輯和回源架構(gòu),功能上很容易支持,不過效果卻和傳統(tǒng)的HTTP-FLV有比較大的差異;例如回源機(jī)制、冷流的處理、吐流規(guī)則、域名更換等等。于是團(tuán)隊(duì)和各家CDN廠商一起一點(diǎn)點(diǎn)迭代優(yōu)化,直到能和傳統(tǒng)的非多碼率架構(gòu)的性能完全對(duì)齊。
還有的問題是內(nèi)部溝通不夠充分導(dǎo)致的。整個(gè)項(xiàng)目涉及到的團(tuán)隊(duì)非常多,例如客戶端、播放器、算法等等,很多細(xì)節(jié)沒有達(dá)成一致,比如上報(bào)的口徑不一致,導(dǎo)致統(tǒng)計(jì)數(shù)據(jù)的偏差;播放器的邏輯與算法適配不夠精細(xì),例如播放器的很多操作都是基于音頻,而算法的輸入則主要參考視頻;卡頓事件沒告知算法,因?yàn)橐坏┌l(fā)生卡頓播放器會(huì)等緩存積累到一定程度再繼續(xù)播放,如果算法不知道卡頓這個(gè)事件,單純的看見緩存數(shù)據(jù)很多,就會(huì)誤以為網(wǎng)絡(luò)很好……
類似的例子特別多,現(xiàn)在回頭來看感覺這些問題解決起來都很簡(jiǎn)單。但是在實(shí)際過程中,最大的難點(diǎn)是發(fā)現(xiàn)問題,明確問題所在。
圖:《搏擊俱樂部》
一個(gè)小插曲,記得當(dāng)時(shí)數(shù)據(jù)負(fù)向排查幾個(gè)月依然沒有拿到收益時(shí),這個(gè)項(xiàng)目一度變成了燙手山芋,陷入讓人無從下手的膠著狀態(tài),不得不被“擱置”。但是這個(gè)事情總得有始有終,在停滯了一段時(shí)間后,我硬著頭皮重新梳理了整個(gè)方案,把每個(gè)環(huán)節(jié)的核心開發(fā)人員拉到一起,逐個(gè)細(xì)節(jié)去核對(duì)預(yù)期的需求和具體的實(shí)現(xiàn)。
一點(diǎn)點(diǎn)核對(duì)數(shù)據(jù)細(xì)節(jié),而不只看最終的結(jié)論。同時(shí)叫停了每周的匯報(bào),我們一直在通過AB測(cè)試和數(shù)據(jù)找問題,但是狀態(tài)一直不變,無形中會(huì)給同事更大的壓力。
經(jīng)過深入艱難的分析與優(yōu)化,在去年10月份左右,我們基本把問題全部解決,并在游戲場(chǎng)景取得了很好的效果,卡頓率得到顯著的降低,用戶時(shí)長(zhǎng)等QoE也有不錯(cuò)的收益,這時(shí)大家才真的松了口氣。
看到游戲的收益后,快手APP就在考慮,是不是也可以采用這套架構(gòu),提升站內(nèi)直播的體驗(yàn)。有了前面的豐富經(jīng)驗(yàn),在快手APP上,我們從播放器和算法適配,到灰度、AB,再到最后全量,只花了大概一個(gè)月左右的時(shí)間。目前,這套架構(gòu)也已全面用于快手的各直播業(yè)務(wù)?。
3
先行者要把肩膀貢獻(xiàn)出來
自研多碼率在快手全面落地取得不錯(cuò)的收益,獲得了公司的內(nèi)部肯定,似乎可以暫時(shí)畫上一個(gè)句號(hào),但是總感覺差口氣。
在和部門負(fù)責(zé)人于冰老師的探討中,我們?cè)谙肽壳笆忻嫔蠜]有適合直播的多碼率標(biāo)準(zhǔn)方案,而我們踩過那么多坑,終于搞出了這套每天有上億快手用戶在使用的方案,是不是可以考慮將方案標(biāo)準(zhǔn)化甚至開源貢獻(xiàn)給業(yè)界呢?
圖:《搏擊俱樂部》
這個(gè)想法立馬就得到了大家的認(rèn)可,記得之前我們第一次對(duì)外公開KTP的時(shí)候,就有很多的同行問過我們,期望我們將KTP開源。但KTP涉及到公司內(nèi)部的太多技術(shù)和業(yè)務(wù),一時(shí)難以解耦,暫時(shí)無法開源。
直播多碼率方案,也許是我們?yōu)闃I(yè)界作貢獻(xiàn)的一個(gè)很好的機(jī)會(huì)。有了想法以后,說干就干,我立刻著手標(biāo)準(zhǔn)文檔的撰寫和開源的事情,并正式命名為L(zhǎng)AS。
LAS基于流式架構(gòu),實(shí)現(xiàn)幀級(jí)傳輸,與MPEG-DASH/HLS等基于分片的多碼率架構(gòu)相比,能顯著降低延遲。在自適應(yīng)算法上,與分片傳輸?shù)牟呗韵啾?#xff0c;基于流式的傳輸邏輯會(huì)一定程度增加自適應(yīng)算法的難度(例如在流式傳輸中,因?yàn)樵磾?shù)據(jù)實(shí)時(shí)產(chǎn)生,觀測(cè)到的平均帶寬值近似等于當(dāng)前請(qǐng)求的視頻碼率,無法反應(yīng)真實(shí)的帶寬),但流式架構(gòu)更加靈活,并且能顯著降低分片架構(gòu)中存在的傳輸ON-OFF現(xiàn)象,從而降低了碼率切換過于頻繁的問題。
與HLS測(cè)試對(duì)比也驗(yàn)證了LAS的高效性,LAS能極大的降低卡頓率和延遲,同時(shí)獲得更高的清晰度(平均碼率),詳細(xì)數(shù)據(jù)可以參考LAS測(cè)試報(bào)告。
做標(biāo)準(zhǔn)與開源,經(jīng)常會(huì)被問到的是“對(duì)外開放技術(shù),會(huì)不會(huì)讓別人快速追上甚至超過你們”。這種情況的確可能存在,正所謂“如果我看得更遠(yuǎn)一點(diǎn)的話,是因?yàn)槲艺驹诰奕说募绨蛏稀?#xff0c;我們不是什么巨人,但是至少可以幫助其他企業(yè)少走很多彎路。
至于超過我們,我覺得這也是一種好事,說明LAS還有很大的優(yōu)化空間。作為一個(gè)技術(shù)人,如果一直擔(dān)心“別人偷了你的技術(shù)”,在某種程度上也是對(duì)自己技術(shù)不夠自信的表現(xiàn)。無論是學(xué)術(shù)科研,還是工程技術(shù),開放心態(tài),多多交流,于人于己都是有好處的。
“某個(gè)項(xiàng)目一旦用了開源模式,就能獲得迅速而持久的進(jìn)步。一旦開源,就能同時(shí)擁有許多團(tuán)隊(duì)并駕齊驅(qū)地投入工作,很多問題都能快速地迎刃而解,這和關(guān)起門來開發(fā)不可同日而語?!?/strong>
圖:《紳士們》
我們發(fā)布和開源LAS,除了把自己的技術(shù)經(jīng)驗(yàn)貢獻(xiàn)給業(yè)界,也非常希望業(yè)界同行一起參與進(jìn)來。目前,百度、阿里、騰訊、網(wǎng)宿、金山等廠商都參與了LAS的共建,在云端保證了LAS的服務(wù)。
此外,業(yè)內(nèi)知名開源流媒體服務(wù)器SRS也已支持LAS,基于SRS 4.0及更高版本,企業(yè)客戶也可搭建自己的LAS服務(wù)端以滿足個(gè)性化的需求。在客戶端,我們已經(jīng)開源了LAS Web的實(shí)現(xiàn),包括協(xié)議、架構(gòu)和自適應(yīng)算法。
LAS1.0的發(fā)布只是開源的第一步,希望起到拋磚引玉的作用,集中業(yè)界的智慧,進(jìn)一步將LAS完善,例如移動(dòng)端方案、WebRTC和QUIC等協(xié)議的支持等,最終打造一套可以真正解決直播傳輸場(chǎng)景下各種復(fù)雜問題的標(biāo)準(zhǔn)化方案,服務(wù)全球相關(guān)行業(yè)開發(fā)者,幫助大家站在更高的起點(diǎn)上完成相關(guān)研究,實(shí)現(xiàn)更高的技術(shù)突破。
總結(jié)
以上是生活随笔為你收集整理的专访快手传输算法负责人周超博士:LAS标准的推出离不开信念感的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hey, Apple | Decode
- 下一篇: 我们还有一些话想和你说