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