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