对话Justin Uberti:RTC的过去、现在和未来
內(nèi)容編輯:Alex
技術(shù)審校:劉連響、許耀武
Justin Uberti
人物對(duì)話
#003#
2021年1月,WebRTC成為了官方標(biāo)準(zhǔn),對(duì)于這個(gè)2011年由谷歌發(fā)布的開源項(xiàng)目來說,它是一個(gè)重要里程碑。
WebRTC 的目的是實(shí)現(xiàn)不同瀏覽器和各種設(shè)備之間的實(shí)時(shí)媒體通信,如語音、視頻和數(shù)據(jù)的傳輸。在新冠疫情期間,WebRTC連接了整個(gè)世界,它的作用變得越來越重要。
Justin Uberti(照片由本人提供)
為了幫助大家更深入地了解WebRTC和它的幕后故事,我們通過郵件采訪了它的創(chuàng)造者之一——Justin Uberti(Justin曾任谷歌WebRTC團(tuán)隊(duì)工程負(fù)責(zé)人,目前為Clubhouse流媒體技術(shù)負(fù)責(zé)人)。在本篇訪談中,Justin講述了他是如何加入WebRTC項(xiàng)目的,他和團(tuán)隊(duì)所面臨的挑戰(zhàn),他從這個(gè)項(xiàng)目中所獲得的靈感以及他對(duì)WebRTC的未來期望。
今年,Justin離開了工作15年的谷歌并加入音頻社交媒體平臺(tái)Clubhouse。Justin在采訪中告訴了我們他離開的原因,并表示他現(xiàn)在已經(jīng)完全適應(yīng)了新工作,而且非常喜歡現(xiàn)在所做的事。
除了WebRTC和工作變化,Justin還分享了他對(duì)數(shù)學(xué)和計(jì)算機(jī)的熱愛,他還有些話想告訴年輕時(shí)候的自己:學(xué)會(huì)欣賞日積月累的工作所帶來的價(jià)值。
以下是LiveVideoStack和Justin Uberti之間的對(duì)話內(nèi)容。
早年生活
LiveVideoStack:你好,Justin! 歡迎你參加我們的訪談。讓我們從頭開始,當(dāng)你還是個(gè)小男孩時(shí),你的夢(mèng)想是什么? 那個(gè)時(shí)候你有想過成為一名軟件工程師嗎?你擁有怎樣的童年?
Justin Uberti:?我的父母都是當(dāng)?shù)匾凰髮W(xué)的教授,雖然他們對(duì)計(jì)算機(jī)并不精通,但他們的鼓勵(lì)是我對(duì)科技產(chǎn)生興趣的重要原因。
在我大約6歲的時(shí)候,我父親為家里購(gòu)置了一臺(tái)德州儀器(Texas Instruments)家用電腦。可以說,我就是從這個(gè)時(shí)候開始對(duì)計(jì)算機(jī)產(chǎn)生了濃厚的興趣。幾年以后,我開始玩起了藝電公司(Electronic Arts)最初發(fā)布的游戲,這些游戲很有意思,加深了我對(duì)計(jì)算機(jī)的興趣。早年的藝電不遺余力地將他們的開發(fā)者打造成“搖滾明星”,好吧,這似乎正是我夢(mèng)想成為的樣子。我現(xiàn)在還保留著一張我在9歲或10歲時(shí)寫下的“職業(yè)目標(biāo)”表格,我當(dāng)時(shí)所寫的就是“我想成為一名軟件開發(fā)人員”。
LiveVideoStack:在你小時(shí)候,數(shù)學(xué)是否在你的生活中就扮演了很重要的角色?計(jì)算機(jī)呢?
Justin Uberti:?盡管我對(duì)計(jì)算機(jī)很感興趣,但它只能算是我的一種愛好。那個(gè)時(shí)候,雖然數(shù)學(xué)俱樂部和數(shù)學(xué)夏令營(yíng)等數(shù)學(xué)相關(guān)的組織和活動(dòng)很多,但我還是把主要精力放在學(xué)校學(xué)業(yè)和數(shù)學(xué)競(jìng)賽上,比如Mathcounts(美國(guó)初中數(shù)學(xué)競(jìng)賽)和AIME(美國(guó)高中數(shù)學(xué)邀請(qǐng)賽)。一路走來,我得出的結(jié)論是,數(shù)學(xué)將會(huì)成為我的長(zhǎng)期職業(yè)賽道。
LiveVideoStack: 在弗吉尼亞大學(xué),你本科學(xué)的是數(shù)學(xué)物理,畢業(yè)以后卻成為了一名軟件工程師,是什么促使你踏入科技公司的? 你有想過繼續(xù)攻讀研究生或博士嗎?
Justin Uberti: 在弗吉尼亞大學(xué)的最后一年(1995年),我去見當(dāng)時(shí)的物理系主任,想了解畢業(yè)后的一些潛在機(jī)會(huì)。他打開了網(wǎng)上的瀏覽器下拉出來給我看,這是我有生以來第一次接觸到網(wǎng)絡(luò),我立刻就被吸引住了。我花了很多時(shí)間研究網(wǎng)絡(luò)是如何運(yùn)行的,并且開始自學(xué)C++,這樣我就能夠真正使用這門新興的技術(shù)了。同時(shí)我開始逐漸意識(shí)到,計(jì)算機(jī)領(lǐng)域的機(jī)會(huì)要遠(yuǎn)遠(yuǎn)多于數(shù)學(xué)領(lǐng)域。
不管怎樣,我還是被紐約大學(xué)錄取并成為了一名數(shù)學(xué)博士。但是隨著我的興趣轉(zhuǎn)向新興的技術(shù),以及個(gè)人所遭遇的生活變故(我的父親在我大學(xué)畢業(yè)時(shí)離世),我很快就決定從紐約大學(xué)退學(xué),進(jìn)入我一心向往的科技世界。
Justin Uberti(照片由本人提供)
LiveVideoStack: 現(xiàn)在回顧過往,你有什么話想要對(duì)還在大學(xué)讀書的自己說嗎?
Justin Uberti:? 我總是喜歡反思,所以這里我有很多話想告訴過去的自己。其中最想說的是:學(xué)會(huì)欣賞日積月累的工作所帶來的價(jià)值。我過去曾觀察在這個(gè)領(lǐng)域的杰出人士,并常常想如何做才能獲得與他們一樣的成就。但事實(shí)是,這些我敬仰的人只是為自己設(shè)定了一個(gè)目標(biāo),并每天不斷朝著這個(gè)目標(biāo)努力。隨著時(shí)間的推移,這種每天努力工作的積累最后真的會(huì)獲得非凡的成就。
還有,我會(huì)告訴自己要學(xué)會(huì)如何正確打字,我在工作以后很久才學(xué)會(huì)這件事!
?WebRTC
LiveVideoStack: 你是如何開始WebRTC開發(fā)工作的?你在WebRTC團(tuán)隊(duì)中擔(dān)任什么樣的角色??
Justin Uberti:??從04年發(fā)布AIM視頻聊天軟件開始(1997~2006年,Justin任職于AOL并擔(dān)任首席架構(gòu)師),到領(lǐng)導(dǎo)Gmail視頻通話和Google Hangouts視頻技術(shù)的發(fā)展,多年來我一直對(duì)語音和視頻通信很感興趣。我清楚地認(rèn)識(shí)到這項(xiàng)技術(shù)的復(fù)雜性以及它的開發(fā)難度,所以創(chuàng)建一個(gè)讓更多應(yīng)用可以使用視頻技術(shù)的開放平臺(tái),這項(xiàng)充滿前景的工作非常吸引我。
在谷歌,根據(jù)我之前開發(fā)基于瀏覽器的RTC應(yīng)用(比如Google Hangouts)的工作經(jīng)驗(yàn),我對(duì)WebRTC在瀏覽器上的呈現(xiàn)形式做了一些初步調(diào)查。最終我成為了WebRTC團(tuán)隊(duì)的工程負(fù)責(zé)人和經(jīng)理,并開始了和產(chǎn)品經(jīng)理 Serge Lachapelle的緊密合作。在開發(fā)WebRTC期間,我做過很多工作,包括撰寫標(biāo)準(zhǔn)文檔、協(xié)調(diào)開發(fā)人員工作、開發(fā)示例代碼、創(chuàng)建WebRTC堆棧組件等。
LiveVideoStack: 整個(gè)開發(fā)過程中最難的部分是哪里?你是如何解決的?
Justin Uberti:?有兩件事對(duì)我來說非常有挑戰(zhàn):
第一、整個(gè)WebRTC項(xiàng)目的規(guī)模和復(fù)雜度。WebRTC本身就有接近1000個(gè)API和100多萬行代碼,以及實(shí)現(xiàn)了100多個(gè)IETF RFC。我們從一開始就知道這將會(huì)是一項(xiàng)艱巨的任務(wù),但誰也沒有想到會(huì)花了近10年時(shí)間才全面實(shí)現(xiàn)它。
第二、在一個(gè)開放、基于共識(shí)的工作環(huán)境中,各方參與者都有他們自己的利益和動(dòng)機(jī),也使得項(xiàng)目更加復(fù)雜。我很高興看到最后所取得的成果,但一開始我在這方面缺乏經(jīng)驗(yàn),不得不努力想清楚如何解決一些重要問題,比如 WebRTC 應(yīng)該使用哪些視頻編解碼器。在這個(gè)過程中,我們團(tuán)隊(duì)的Harald Alvestrand提供了非常關(guān)鍵的支持。
LiveVideoStack: WebRTC對(duì)你來說有什么樣的意義?對(duì)于它,你還有什么遺憾嗎?
Justin Uberti:? 我認(rèn)為它對(duì)每個(gè)從最開始就加入WebRTC開發(fā)的人來說都非常有意義。我們真的實(shí)現(xiàn)了構(gòu)建一個(gè)高性能、靈活、開放和安全的RTC平臺(tái)的愿望!緊接著,在新冠疫情期間, WebRTC極大地促進(jìn)了人們之間的相互聯(lián)系,這也使得它真正發(fā)展起來。在線通信已經(jīng)成為許多行業(yè)新的工作方式,并且有大量新興創(chuàng)業(yè)公司也在用 RTC 做有趣的事情,我對(duì)未來充滿期待。每個(gè)參與WebRTC項(xiàng)目的人都會(huì)為此感到驕傲!
至于遺憾,就不多說了。在開發(fā)WebRTC的過程中,肯定有很多因?yàn)樽畛醯腻e(cuò)誤決策而不得不回頭重做的工作,這對(duì)于WebRTC的早期使用者來說非常不友好。而且有些工作依然過于復(fù)雜,不過每個(gè)項(xiàng)目都會(huì)遇到這些問題。
LiveVideoStack: 你希望在WebRTC下一版本中加入哪些性能?
Justin Uberti:?既然我已經(jīng)離開谷歌,我對(duì)WebRTC未來規(guī)劃的見解也不似從前。但是我知道,有相當(dāng)多的開發(fā)活動(dòng)一直圍繞著Insertable Streams、新的Capture Handle提案、以及新的data channel實(shí)現(xiàn)。我也非常期待看到Cryptex(一種新的RTP元數(shù)據(jù)安全機(jī)制)的實(shí)現(xiàn)。
LiveVideoStack: 有些人說QUIC是WebRTC的未來,你認(rèn)為呢?使用QUIC傳輸數(shù)據(jù)時(shí),WebRTC將會(huì)遇到哪些挑戰(zhàn)?
Justin Uberti:? 我認(rèn)為QUIC將會(huì)對(duì)WebRTC的未來產(chǎn)生重要影響,之所以這樣說,是因?yàn)槟壳叭匀缓茈y創(chuàng)建WebRTC服務(wù)器。基于HTTP的應(yīng)用程序已經(jīng)有了很棒的基礎(chǔ)設(shè)施,但是創(chuàng)建WebRTC服務(wù)器卻要從零開始。能夠通過QUIC來傳輸WebRTC流量意味著設(shè)置cloud WebRTC端點(diǎn)并向其傳輸數(shù)據(jù)會(huì)變得容易得多。不必繼續(xù)為 WebRTC 開發(fā)一套完全獨(dú)立的傳輸協(xié)議(和支持庫(kù))也是一件好事。
但是,要在QUIC上傳輸WebRTC,當(dāng)中的細(xì)節(jié)才是難點(diǎn)。WebRTC 和 QUIC 中不同的擁塞控制算法如何協(xié)同工作?我們是否應(yīng)該在QUIC中傳輸 RTP 還是將其映射到原生QUIC概念? QUIC是主要用在C2S?還是應(yīng)該考慮用在P2P?有很多事情都需要搞清楚。
LiveVideoStack: 基于WebTransport/WebCodecs/WebAssembly 的技術(shù)已經(jīng)具備實(shí)現(xiàn)一個(gè)RTC引擎的能力,而且Zoom已經(jīng)這么做了。如何看待這些新技術(shù)與WebRTC的競(jìng)爭(zhēng)?短期內(nèi),WebTransport 會(huì)替代WebRTC datachannel嗎?
Justin Uberti:?在我看來,這些技術(shù)對(duì)于那些想要交付更可控體驗(yàn)的人來說非常重要。通過WASM,你最終能夠拿到大部分用于原生應(yīng)用的自定義RTC堆棧,并將代碼部署到瀏覽器上。或者將它們放在你的自定義編解碼器中。但是這些堆棧將仍是構(gòu)建在WebRTC之上,所以我認(rèn)為WASM更多是對(duì)WebRTC的一種擴(kuò)展,而不是與之競(jìng)爭(zhēng)。
WebTransport是一個(gè)有趣的協(xié)議,它是一個(gè)更簡(jiǎn)單的網(wǎng)絡(luò)堆棧,適用于需要非可靠傳輸(并且不需要任何其他 WebRTC 機(jī)制)的客戶端-服務(wù)器應(yīng)用程序。我一直非常支持這項(xiàng)工作,并認(rèn)為谷歌的 Victor Vasiliev一直以來做得很棒!
LiveVideoStack: 今年,谷歌推出了兩款 AI 音頻編解碼器——Lyra 和 SoundStream。如你所見,這些 AI 編解碼器是否有可能加入WebRTC?
Justin Uberti:?我當(dāng)然希望如此,但是就上文提到的觀點(diǎn),我認(rèn)為將編解碼器與WebRTC 解耦會(huì)非常有利于雙方的創(chuàng)新。
總的來說,我堅(jiān)信人工智能是壓縮技術(shù)的未來。而關(guān)鍵問題是,AI編解碼器什么時(shí)候能夠替代現(xiàn)在的核心編解碼器?我和很多編解碼器專家聊過這個(gè)問題,他們大部分人都認(rèn)為我們需要新一代AI編解碼器。
從谷歌到Clubhouse
LiveVideoStack: 15年的谷歌工作生涯中,你肯定遇到過很多了不起的人物,哪位對(duì)你的啟發(fā)最大?你從他們身上學(xué)到的最重要的事是什么?
Justin Uberti:? 有兩個(gè)人對(duì)我影響很大。一個(gè)是Linus Upson,他當(dāng)時(shí)是Chrome的主管領(lǐng)導(dǎo),正是他批準(zhǔn)了WebRTC項(xiàng)目。他曾幫助我思考如何為項(xiàng)目找到前進(jìn)的方向,并鼓勵(lì)團(tuán)隊(duì)成員戰(zhàn)勝那些看似不可能解決的技術(shù)難題。
Eric Rescorla是第二個(gè)對(duì)我影響最大的人。在WebRTC項(xiàng)目期間,我和他密切合作過,當(dāng)時(shí)我們分別擔(dān)任Chrome和Firefox的工程負(fù)責(zé)人。Eric非常關(guān)注WebRTC的魯棒安全,并竭盡所能實(shí)現(xiàn)這一目標(biāo),其中包括在我們團(tuán)隊(duì)(Chrome)的代碼庫(kù)中提交了好幾個(gè)重要的補(bǔ)丁。這種全棧式的、不計(jì)得失的工作態(tài)度深深打動(dòng)了我。
LiveVideoStack:?在谷歌所做的所有工作中,哪部分是你最滿意的?
Justin Uberti:?我總是能在攻克技術(shù)難題并帶給用戶真正價(jià)值的過程中獲得樂趣。WebRTC絕對(duì)是我最滿意的作品,但是我還想提一下通過Web應(yīng)用將Stadia Gameplay移植到iOS上這件事,這在當(dāng)時(shí)很有風(fēng)險(xiǎn),但最終還是成功解決,這樣人們就可以在iPad上玩Cyberpunk 2077(一款由CD Projekt RED開發(fā)的動(dòng)作角色類游戲)了。
LiveVideoStack:? 你為什么會(huì)離開谷歌加入Clubhouse?是對(duì)音頻特別感興趣嗎?你現(xiàn)在已經(jīng)完全適應(yīng)新工作了嗎?
Justin Uberti:? 在谷歌規(guī)模還很小的時(shí)候,我就加入了。我非常喜歡當(dāng)時(shí)那種毫無拘束的氛圍。所以我也在尋找類似的快速發(fā)展的環(huán)境,以及一個(gè)可以不斷探索的全新應(yīng)用領(lǐng)域。Clubhouse和社交音頻實(shí)現(xiàn)了我的愿望,而且我真的很喜歡他們的團(tuán)隊(duì)。
我花了很多時(shí)間來研究音頻和視頻,但是在谷歌,我們把精力主要放在視頻上,因?yàn)檫@個(gè)領(lǐng)域有很多事情要做:HD、多用戶、屏幕共享、VP8、VP9和AV1等。但那個(gè)時(shí)候我覺得音頻實(shí)際上被忽視了,其實(shí)音頻領(lǐng)域有很多有趣的新方向可以探索,比如我們?cè)贑lubhouse推出的空間音頻(Spatial audio)體驗(yàn)。是的,我想說的是,我已經(jīng)完全適應(yīng)了Clubhouse的工作,并準(zhǔn)備投入到更多有趣的事情中去。
LiveVideoStack:?據(jù)你觀察,Clubhouse和谷歌這兩家公司最主要的不同是什么?
Justin Uberti:?令我驚訝的是,我在谷歌時(shí)所使用的幾乎所有內(nèi)部工具(從搜索到Bug追蹤再到招聘工具)都在外面以SaaS產(chǎn)品出現(xiàn)。由于規(guī)模效應(yīng),這些第三方工具很多時(shí)候比谷歌的同類工具還要好用。
大多數(shù)差異都是創(chuàng)業(yè)公司和大公司的典型差異,我就不在這里贅述了。但是,能夠全身心地投入到單一產(chǎn)品和任務(wù)中,這種感覺很棒。我認(rèn)為這也有利于人們獲得更多成就感。
LiveVideoStack: 作為Clubhouse的流媒體技術(shù)負(fù)責(zé)人,你在招人的時(shí)候會(huì)看重哪些品質(zhì)?教育背景、經(jīng)驗(yàn)和快速學(xué)習(xí)能力,哪一個(gè)最重要?
Justin Uberti:?在很多情況下,這些品質(zhì)往往是高度相關(guān)的:一個(gè)學(xué)東西很快的人通常有很強(qiáng)的教育背景和之前的工作經(jīng)驗(yàn)。但強(qiáng)大的學(xué)習(xí)能力是我最看重的——新一代的人才必將在未來成為領(lǐng)導(dǎo)力量。我們?cè)陂_發(fā)WebRTC時(shí)期招聘到了好幾個(gè)厲害的人,但當(dāng)時(shí)他們都沒有經(jīng)驗(yàn)。
所以強(qiáng)大的學(xué)習(xí)能力才是最重要的。
LiveVideoStack: 最近Clubhouse宣布啟用空間音頻,你在用戶對(duì)空間音頻體驗(yàn)的反饋中有什么發(fā)現(xiàn)?Clubhouse將會(huì)有哪些創(chuàng)新?
Justin Uberti:?看起來人們真的很喜歡音頻空間體驗(yàn)。下面是來自推特用戶的使用反饋:
@Clubhouse 上的空間音頻實(shí)現(xiàn)得非常好,以至于需要一點(diǎn)時(shí)間來適應(yīng)。今天晚上散步時(shí),我轉(zhuǎn)過身三次,想看看是誰的聲音,最后才發(fā)現(xiàn)聲音來自應(yīng)用。
這是我今天在車?yán)镉盟{(lán)牙聽@Clubhouse 時(shí)的樣子,這個(gè)新的音頻空間功能太棒了!
關(guān)于下一步的動(dòng)作,我無法透露太多細(xì)節(jié),但是我想說的是Clubhouse的創(chuàng)新充滿潛力,非常值得期待。
現(xiàn)在和未來
LiveVideoStack: 你認(rèn)為目前實(shí)時(shí)通信技術(shù)最大的限制是什么?有什么解決方案嗎?
Justin Uberti:?我們現(xiàn)在仍處于WebRTC/在線會(huì)議 1.0階段。它現(xiàn)在得以實(shí)現(xiàn),并且還很可靠,這本身就是一項(xiàng)巨大的成就。但在某些方面它依然還很不自然,我們現(xiàn)在還無法做到超越面對(duì)面交談。
我想每個(gè)人都遇到過的一個(gè)痛點(diǎn)就是“靜音按鈕”。這個(gè)按鈕很好理解,但是如果有人忘記靜音的話,整個(gè)視頻過程就會(huì)很吵。而在面對(duì)面聊天時(shí)就不會(huì)出現(xiàn)這種問題。
我相信這些問題都會(huì)得以解決,只是需要時(shí)間。也許還需要能夠深入理解共享媒體的技術(shù)不斷發(fā)展。
LiveVideoStack: 隨著 Facebook 加入元宇宙,你認(rèn)為未來 5 到 10 年中實(shí)現(xiàn)元宇宙體驗(yàn)的核心技術(shù)是什么?
Justin Uberti:?也許我現(xiàn)在所說有些為時(shí)過早,但是在我看來,元宇宙的大部分交互應(yīng)該是實(shí)時(shí)交互。畢竟,真實(shí)世界是由實(shí)時(shí)交互組成的連續(xù)流。所以過去幾年來我們研究的很多東西(WebRTC、QUIC、音頻空間、視頻(或點(diǎn)云)、低延遲以及媒體處理和理解等)都與元宇宙非常相關(guān)。
LiveVideoStack: 你現(xiàn)在對(duì)哪些技術(shù)比較感興趣?
Justin Uberti:?其實(shí)很多你已經(jīng)提到了!在Clubhouse,我的工作方向主要在空間音頻和多聲道音頻,還有實(shí)時(shí)語音識(shí)別和轉(zhuǎn)錄。同時(shí)這些年我一直在思考如何將WebRTC和QUIC結(jié)合起來。
我對(duì)AI也超級(jí)感興趣(它可以幫助我更好地理解AI生成媒體)。新的網(wǎng)絡(luò)和加密技術(shù)也是我的興趣所在。
LiveVideoStack: 最后一個(gè)重要問題,如果你有一個(gè)機(jī)會(huì)和一位計(jì)算機(jī)科學(xué)家或者數(shù)學(xué)家對(duì)話,你最想和誰對(duì)話?你想和他談?wù)撌裁?#xff1f;
Justin Uberti:?非常有趣的問題!如果這個(gè)人還在世的話,我希望是香農(nóng)。作為數(shù)學(xué)家和工程師,他的工作幾乎支撐了現(xiàn)在的整個(gè)互聯(lián)網(wǎng)。我會(huì)向他提問:有哪些創(chuàng)新是他設(shè)想過,但當(dāng)時(shí)沒有技術(shù)來實(shí)現(xiàn)的?如今的技術(shù)可能會(huì)產(chǎn)生哪些次級(jí)效應(yīng)?
特別感謝許耀武老師對(duì)本次采訪給予的幫助和支持。
延伸閱讀:WebRTC誕生記
講師招募
LiveVideoStackCon 2022 音視頻技術(shù)大會(huì) 上海站,正在面向社會(huì)公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內(nèi)容對(duì)技術(shù)人有幫助,其他都是次要的。歡迎通過?speaker@livevideostack.com?提交個(gè)人資料及議題描述,我們將會(huì)在24小時(shí)內(nèi)給予反饋。
喜歡我們的內(nèi)容就點(diǎn)個(gè)“在看”吧!
總結(jié)
以上是生活随笔為你收集整理的对话Justin Uberti:RTC的过去、现在和未来的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频编码器的智能化——AI辅助编解码的A
- 下一篇: 音视频技术开发周刊 | 224