VIPKID 张武锋:自研RTC的故事
?
歷時(shí)兩年,張武鋒和他的團(tuán)隊(duì)完成了VIPKID的RTC平臺(tái)自研1.0到2.0的演進(jìn),并正在開發(fā)3.0版,經(jīng)歷了來自用戶習(xí)慣的無情碾壓,內(nèi)測(cè)過程中信心滿滿,線上事故的至暗時(shí)刻。LiveVideoStack對(duì)VIPKID音視頻技術(shù)負(fù)責(zé)人張武鋒進(jìn)行了郵件采訪,并整理成文。
文 / 張武鋒
策劃 / LiveVideoStack
LiveVideoStack:張武鋒,您好!非常開心邀請(qǐng)您接受LiveVideoStack的采訪。能否向我們的讀者簡(jiǎn)要介紹下自己,以及您目前關(guān)注的技術(shù)領(lǐng)域與場(chǎng)景?
張武鋒:從2005年加入了Radvision開始,進(jìn)入了實(shí)時(shí)視頻通信領(lǐng)域,開始是為歐洲和北美的客戶定制開發(fā)VoIP電話系統(tǒng)。那時(shí)的產(chǎn)品在企業(yè)專網(wǎng)上跑,網(wǎng)絡(luò)比較有保障,對(duì)視頻質(zhì)量要求比較高,最低也要標(biāo)清。
后來又開始基于3G234M開發(fā)3G視頻電話,在64kbps的帶寬上,傳輸QCIF分辨率的視頻,當(dāng)時(shí)被運(yùn)營(yíng)商寄予厚望的3G殺手級(jí)應(yīng)用,因?yàn)轶w驗(yàn)差,資費(fèi)貴,沒幾年就銷聲匿跡了。
2012年進(jìn)入互聯(lián)網(wǎng)領(lǐng)域,還是主導(dǎo)開發(fā)視頻通信平臺(tái),發(fā)現(xiàn)和傳統(tǒng)的視頻會(huì)議產(chǎn)品相比,互聯(lián)網(wǎng)的通信系統(tǒng)對(duì)技術(shù)要求完全不一樣,抗弱網(wǎng),終端適配,高并發(fā)成了必修課,需要全新的技術(shù)架構(gòu)來應(yīng)對(duì),目前專注在教育場(chǎng)景下的高可靠音視頻通話平臺(tái)建設(shè)和音視頻質(zhì)量評(píng)價(jià)體系建設(shè)。
LiveVideoStack:我記得2017年我們就認(rèn)識(shí)了,當(dāng)時(shí)邀請(qǐng)您來LiveVideoStackCon分享,但是遺憾未能如愿。直到今年,您終于同意來LiveVideoStackCon2019北京 分享。兩年間VIPKID從初出茅廬到行業(yè)翹楚,您和您的團(tuán)隊(duì)在這期間經(jīng)歷了哪些至暗時(shí)刻與狂喜(考驗(yàn)和成果)?回顧這兩年,有哪些難忘的瞬間?
張武鋒:我是2017年加入VIPKID的,前半年,我們團(tuán)隊(duì)一直在打磨自研RTC平臺(tái),開始沒有關(guān)注教室業(yè)務(wù),只是埋頭優(yōu)化視頻通信平臺(tái),等到覺得平臺(tái)可以了,想要和業(yè)務(wù)部門討論上線的時(shí)候,發(fā)現(xiàn)要把新的平臺(tái)接入每天并發(fā)量已經(jīng)很高的舊系統(tǒng),而且是應(yīng)對(duì)穩(wěn)定性要求超高的收費(fèi)業(yè)務(wù),路才剛剛走了一半。當(dāng)時(shí)做了個(gè)Demo系統(tǒng),組織了100多個(gè)同事,晚上在家里做了個(gè)內(nèi)測(cè),總體反映還可以,大家對(duì)上新系統(tǒng)有了一定信心。公司的不同部門的同事全力幫助開發(fā)新老系統(tǒng)兼容上線,做了很周密的灰度計(jì)劃,緊鑼密鼓的集成了1個(gè)月。因?yàn)樯婕昂枚嘞到y(tǒng),上線那天晚上,弄到夜里1點(diǎn)多,發(fā)現(xiàn)有一個(gè)系統(tǒng)需要修改,但負(fù)責(zé)的同學(xué)已經(jīng)回家了,被我們電話叫到公司,上線完成已經(jīng)是次日凌晨6點(diǎn)了。
自研的RTC平臺(tái)上線前,經(jīng)過了3個(gè)月的測(cè)試,大家都滿懷信心,預(yù)期也很高,但是上線后的數(shù)據(jù)卻遠(yuǎn)低于預(yù)期,這時(shí)前期針對(duì)流媒體大數(shù)據(jù)平臺(tái),我們內(nèi)部叫海豚系統(tǒng),發(fā)揮了作用,因?yàn)橹暗穆顸c(diǎn)比較細(xì)致,這樣在用戶側(cè)發(fā)生的問題,通過海豚系統(tǒng)都可以分析到,問題主要集中在設(shè)備適配,和用戶網(wǎng)絡(luò)的穩(wěn)定性上,那時(shí)發(fā)現(xiàn)問題,要求本周必需發(fā)版本解決,經(jīng)常加班到夜里2、3點(diǎn)鐘,通過了3個(gè)月的迭代,系統(tǒng)開始穩(wěn)定,整個(gè)數(shù)據(jù)越來越好,也收到了很多業(yè)務(wù)部門和用戶的正向反饋,說新系統(tǒng)很好用,參與平臺(tái)研發(fā)的同學(xué)都感覺挺自豪的。
印象比較深的是系統(tǒng)上線后差不多半年的時(shí)候,發(fā)生了線上事故,導(dǎo)致了100多節(jié)課損失。當(dāng)天晚上,我把幾個(gè)骨干召集到一起,因?yàn)槭堑谝淮问鹿?#xff0c;心里面不能接受,情緒有一點(diǎn)兒不太好,不留情面的指出了每個(gè)人的問題,說了一些重話,還好因?yàn)樵谝黄鸷献鞅容^久,大家都虛心接受了。事后反思,應(yīng)該控制好自己的情緒,自罰1000元請(qǐng)大家擼串。通過這件事情,團(tuán)隊(duì)成員更清晰的認(rèn)識(shí)到在線教育平臺(tái)對(duì)穩(wěn)定性是有非常高的要求,對(duì)于系統(tǒng)上線,灰度,擴(kuò)容,監(jiān)控,都力求做到萬無一失。?
LiveVideoStack:面對(duì)業(yè)務(wù)快速增長(zhǎng),產(chǎn)品功能不斷迭代,VIPKID多媒體架構(gòu)和技術(shù)棧經(jīng)歷了哪些迭代?
張武鋒:VIPKID早期的多媒體架構(gòu)技術(shù)是基于Flash的,采用RTMP協(xié)議,這套架構(gòu)伴隨著業(yè)務(wù)發(fā)展,做了很多優(yōu)化工作,也挺穩(wěn)定,它最大的好處是直接網(wǎng)頁上課,用戶使用很方便,隨著業(yè)務(wù)增長(zhǎng)也面臨一些問題。
我2017年加入公司后,主導(dǎo)開發(fā)私有協(xié)議的多媒體平臺(tái),算是VK RTC 1.0版本,主要是想在低延時(shí),音視頻質(zhì)量和并發(fā)上有所突破,能夠快速擴(kuò)容,滿足公司飛速發(fā)展的業(yè)務(wù)需求,這個(gè)版本只實(shí)現(xiàn)了Native SDK,用戶必須安裝客戶端App才能上課,上線后體驗(yàn)滿足了要求。
VK RTC 2.0增加了對(duì)Web接入的支持,之前內(nèi)部討論的時(shí)候,我一直堅(jiān)持Native體驗(yàn)好,不要做web端支持,最終還是被用戶教育了,一些場(chǎng)景下用戶就是喜歡用web接入,需求逼著我們升級(jí)平臺(tái),支持WebRTC的接入,我們采用橋接的方式把WebRTC的用戶導(dǎo)入我們的私有協(xié)議平臺(tái),主要的業(yè)務(wù)流程還是自研平臺(tái),因?yàn)榉e累比較多,升級(jí)迭代的速度可以很快,后來交流看,幾家主流的RTC廠商,也都是這種方式支持WebRTC接入的,同時(shí)也實(shí)現(xiàn)了多中心容災(zāi)。
目前我們正在開發(fā)的是VK RTC 3.0,主要是擴(kuò)展一對(duì)多,和多對(duì)多的功能,滿足大班課,超級(jí)小班課等業(yè)務(wù)支持,實(shí)時(shí)質(zhì)量感知系統(tǒng)也會(huì)在3.0版本上線,通過實(shí)時(shí)標(biāo)簽,智能感知問題,并啟用相應(yīng)的處理策略。
質(zhì)量?jī)?yōu)化是每個(gè)版本都持續(xù)迭代的,包括用戶的設(shè)備適配,抗網(wǎng)絡(luò)抖動(dòng),用戶智能選點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn)擴(kuò)展等。VIPKID自建的“星云系統(tǒng)”覆蓋了全球35個(gè)國(guó)家的5條跨海專線,在16個(gè)國(guó)家、55個(gè)城市完成數(shù)據(jù)中心傳輸節(jié)點(diǎn)布局,能夠根據(jù)實(shí)時(shí)動(dòng)態(tài)在一分鐘內(nèi)完成智能切換。該系統(tǒng)由于具備“邊緣節(jié)點(diǎn)覆蓋”“多中心容災(zāi)”“異常節(jié)點(diǎn)自愈”等特點(diǎn),可以有效解決跨洋教育中數(shù)據(jù)傳輸不穩(wěn)定這一“頑疾”。目前我們自研的抗弱網(wǎng)的UDR算法,能抵抗50%的網(wǎng)絡(luò)丟包,也做了一些橫向?qū)Ρ?#xff0c;算是較好的平臺(tái)之一,給我們小伙伴們鼓個(gè)掌吧。
LiveVideoStack:在LiveVideoStackCon2019北京上,您即將分享的“在線教育音視頻質(zhì)量評(píng)價(jià)和感知系統(tǒng)”,能簡(jiǎn)要介紹這個(gè)系統(tǒng)嗎?它給研發(fā)、運(yùn)營(yíng)團(tuán)隊(duì)帶來哪些幫助?
張武鋒:這個(gè)系統(tǒng)在我們內(nèi)部叫海豚系統(tǒng),是希望它更聰明,更智能。海豚系統(tǒng)實(shí)時(shí)收集了RTC 客戶端和SDK服務(wù)端的所有數(shù)據(jù),實(shí)時(shí)生成標(biāo)簽,基于標(biāo)簽判斷系統(tǒng)問題,粒度可以是線路級(jí),地域級(jí),教室級(jí)和用戶級(jí),按照既定的策略執(zhí)行,主動(dòng)修復(fù)問題。
我們灰課評(píng)價(jià)標(biāo)準(zhǔn)的建立花了差不多半年時(shí)間,我們持續(xù)收集用戶關(guān)于上課質(zhì)量的反饋和建議,通過分析,我們發(fā)現(xiàn)這些反饋主觀性很強(qiáng),有的用戶容忍度很低,有的用戶沒有任何反饋,但是我們通過回放發(fā)現(xiàn)質(zhì)量是有問題。所以就想有一套客觀定量的標(biāo)準(zhǔn),評(píng)價(jià)一節(jié)課的質(zhì)量的好壞,并且和大多數(shù)用戶的主觀感受一致,經(jīng)過了半年多的摸索,提出了包含視頻卡頓率,視頻清晰度,音頻清晰度,音量大小等指標(biāo),與之相對(duì)應(yīng)的系統(tǒng)也已經(jīng)上線。這個(gè)過程積累了一些有價(jià)值的算法,比如用機(jī)器學(xué)習(xí),訓(xùn)練了無參考視頻質(zhì)量的打分模型,教學(xué)場(chǎng)景下的音頻清晰度打分算法等。這個(gè)系統(tǒng)能夠指導(dǎo)我們的版本迭代,質(zhì)量持續(xù)優(yōu)化,也能監(jiān)控線上是否發(fā)生了非災(zāi)難事故但是引起質(zhì)量波動(dòng),這個(gè)標(biāo)準(zhǔn)也可以用來對(duì)比不同的RTC平臺(tái)在教學(xué)場(chǎng)景下的優(yōu)劣,對(duì)比是基于線上用戶數(shù)據(jù)而非實(shí)驗(yàn)室測(cè)試。更多詳細(xì)信息將在LiveVideoStackCon2019北京做分享。
LiveVideoStack:你認(rèn)為,哪些技術(shù)或標(biāo)準(zhǔn)將成為在線教育場(chǎng)景用戶體驗(yàn)提升的關(guān)鍵?
張武鋒:隨著在線教育的普及,人們對(duì)音視頻質(zhì)量的要求越來越高,在高清場(chǎng)景下, H.265的帶寬優(yōu)勢(shì)會(huì)體現(xiàn)出來。音頻Codec,比較喜歡EVS,EVS如果能越過許可費(fèi)用和性能兩個(gè)門檻,也許會(huì)普及。SVC在一對(duì)多和多對(duì)多的教育場(chǎng)景下有很大的發(fā)揮余地。也很期待全息影像能在視頻通信領(lǐng)域?qū)嵱?#xff0c;能給人提供更真實(shí)的面對(duì)面溝通體驗(yàn)。
LiveVideoStack:5G呼之欲出,他對(duì)在線教育帶來哪些機(jī)遇和挑戰(zhàn)?
張武鋒:5G到來以后,高帶寬使得沉浸式的教學(xué)體驗(yàn)落地,VIPKID有一個(gè)外教帶你看世界項(xiàng)目,5G時(shí)代可以把中國(guó)的學(xué)生投射到更逼真的學(xué)習(xí)環(huán)境當(dāng)中,體驗(yàn)和教學(xué)主題相關(guān)公園,博物館等場(chǎng)景,對(duì)英語學(xué)習(xí)效果提升會(huì)非常明顯。5G以后移動(dòng)接入會(huì)更普及,這樣隨時(shí)隨地上課成為可能,選擇在線教育的用戶會(huì)更多,上課的頻次也會(huì)增加。5G對(duì)最后一公里的帶寬極大提高,相應(yīng)的對(duì)骨干網(wǎng)絡(luò)會(huì)產(chǎn)生很大的壓力,對(duì)于老師和學(xué)生全球分布的教學(xué)場(chǎng)景,需要有更智能、更實(shí)時(shí)的網(wǎng)路資源調(diào)度能力,應(yīng)對(duì)骨干網(wǎng)絡(luò)的波動(dòng)。我們持續(xù)優(yōu)化星云系統(tǒng)的節(jié)點(diǎn)部署和智能調(diào)度平臺(tái),為學(xué)生和老師提供一條最優(yōu)的網(wǎng)絡(luò)通路,以達(dá)到最佳的上課體驗(yàn)。
感謝LiveVideoStack給音視頻從業(yè)者提供了一個(gè)非常活躍的專業(yè)交流平臺(tái)。
總結(jié)
以上是生活随笔為你收集整理的VIPKID 张武锋:自研RTC的故事的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英特尔开源WebRTC开发套件OWT
- 下一篇: IBC+Palette 实现屏幕内容编码