對話Justin Uberti:RTC的過去、現在和未來

語言: CN / TW / HK

內容編輯:Alex

技術審校:劉連響、許耀武

Justin Uberti 人物對話 #003

2021年1月,WebRTC成為了官方標準,對於這個2011年由谷歌釋出的開源專案來說,它是一個重要里程碑。

WebRTC 的目的是實現不同瀏覽器和各種裝置之間的實時媒體通訊,如語音、視訊和資料的傳輸。在新冠疫情期間,WebRTC連線了整個世界,它的作用變得越來越重要。

圖片

Justin Uberti(照片由本人提供)

為了幫助大家更深入地瞭解WebRTC和它的幕後故事,我們通過郵件採訪了它的創造者之一——Justin Uberti(Justin曾任谷歌WebRTC團隊工程負責人,目前為Clubhouse流媒體技術負責人)。在本篇訪談中,Justin講述了他是如何加入WebRTC專案的,他和團隊所面臨的挑戰,他從這個專案中所獲得的靈感以及他對WebRTC的未來期望。

今年,Justin離開了工作15年的谷歌並加入音訊社交媒體平臺Clubhouse。Justin在採訪中告訴了我們他離開的原因,並表示他現在已經完全適應了新工作,而且非常喜歡現在所做的事。

除了WebRTC和工作變化,Justin還分享了他對數學和計算機的熱愛,他還有些話想告訴年輕時候的自己:學會欣賞日積月累的工作所帶來的價值。

以下是LiveVideoStack和Justin Uberti之間的對話內容。

早年生活

LiveVideoStack:你好,Justin! 歡迎你參加我們的訪談。讓我們從頭開始,當你還是個小男孩時,你的夢想是什麼? 那個時候你有想過成為一名軟體工程師嗎?你擁有怎樣的童年?

Justin Uberti: 我的父母都是當地一所大學的教授,雖然他們對計算機並不精通,但他們的鼓勵是我對科技產生興趣的重要原因。

在我大約6歲的時候,我父親為家裡購置了一臺德州儀器(Texas Instruments)家用電腦。可以說,我就是從這個時候開始對計算機產生了濃厚的興趣。幾年以後,我開始玩起了藝電公司(Electronic Arts)最初發布的遊戲,這些遊戲很有意思,加深了我對計算機的興趣。早年的藝電不遺餘力地將他們的開發者打造成“搖滾明星”,好吧,這似乎正是我夢想成為的樣子。我現在還保留著一張我在9歲或10歲時寫下的“職業目標”表格,我當時所寫的就是“我想成為一名軟體開發人員”。

LiveVideoStack:在你小時候,數學是否在你的生活中就扮演了很重要的角色?計算機呢?

Justin Uberti: 儘管我對計算機很感興趣,但它只能算是我的一種愛好。那個時候,雖然數學俱樂部和數學夏令營等數學相關的組織和活動很多,但我還是把主要精力放在學校學業和數學競賽上,比如Mathcounts(美國初中數學競賽)和AIME(美國高中數學邀請賽)。一路走來,我得出的結論是,數學將會成為我的長期職業賽道。

LiveVideoStack: 在弗吉尼亞大學,你本科學的是數學物理,畢業以後卻成為了一名軟體工程師,是什麼促使你踏入科技公司的? 你有想過繼續攻讀研究生或博士嗎?

Justin Uberti: 在弗吉尼亞大學的最後一年(1995年),我去見當時的物理系主任,想了解畢業後的一些潛在機會。他打開了網上的瀏覽器下拉出來給我看,這是我有生以來第一次接觸到網路,我立刻就被吸引住了。我花了很多時間研究網路是如何執行的,並且開始自學C++,這樣我就能夠真正使用這門新興的技術了。同時我開始逐漸意識到,計算機領域的機會要遠遠多於數學領域。

不管怎樣,我還是被紐約大學錄取併成為了一名數學博士。但是隨著我的興趣轉向新興的技術,以及個人所遭遇的生活變故(我的父親在我大學畢業時離世),我很快就決定從紐約大學退學,進入我一心向往的科技世界。

圖片

Justin Uberti(照片由本人提供)

LiveVideoStack: 現在回顧過往,你有什麼話想要對還在大學讀書的自己說嗎?

Justin Uberti: 我總是喜歡反思,所以這裡我有很多話想告訴過去的自己。其中最想說的是:學會欣賞日積月累的工作所帶來的價值。我過去曾觀察在這個領域的傑出人士,並常常想如何做才能獲得與他們一樣的成就。但事實是,這些我敬仰的人只是為自己設定了一個目標,並每天不斷朝著這個目標努力。隨著時間的推移,這種每天努力工作的積累最後真的會獲得非凡的成就。

還有,我會告訴自己要學會如何正確打字,我在工作以後很久才學會這件事!

WebRTC

LiveVideoStack: 你是如何開始WebRTC開發工作的?你在WebRTC團隊中擔任什麼樣的角色?

**Justin Uberti:**** 從04年釋出AIM視訊聊天軟體開始(1997~2006年,Justin任職於AOL並擔任首席架構師),到領導Gmail視訊通話和Google Hangouts視訊技術的發展,多年來我一直對語音和視訊通訊很感興趣。我清楚地認識到這項技術的複雜性以及它的開發難度,所以建立一個讓更多應用可以使用視訊技術的開放平臺,這項充滿前景的工作非常吸引我。

在谷歌,根據我之前開發基於瀏覽器的RTC應用(比如Google Hangouts)的工作經驗,我對WebRTC在瀏覽器上的呈現形式做了一些初步調查。最終我成為了WebRTC團隊的工程負責人和經理,並開始了和產品經理 Serge Lachapelle的緊密合作。在開發WebRTC期間,我做過很多工作,包括撰寫標準文件、協調開發人員工作、開發示例程式碼、建立WebRTC堆疊元件等。

LiveVideoStack: 整個開發過程中最難的部分是哪裡?你是如何解決的?

*Justin Uberti:* 有兩件事對我來說非常有挑戰:

第一、整個WebRTC專案的規模和複雜度。WebRTC本身就有接近1000個API和100多萬行程式碼,以及實現了100多個IETF RFC。我們從一開始就知道這將會是一項艱鉅的任務,但誰也沒有想到會花了近10年時間才全面實現它。

第二、在一個開放、基於共識的工作環境中,各方參與者都有他們自己的利益和動機,也使得專案更加複雜。我很高興看到最後所取得的成果,但一開始我在這方面缺乏經驗,不得不努力想清楚如何解決一些重要問題,比如 WebRTC 應該使用哪些視訊編解碼器。在這個過程中,我們團隊的Harald Alvestrand提供了非常關鍵的支援。

LiveVideoStack: WebRTC對你來說有什麼樣的意義?對於它,你還有什麼遺憾嗎?

Justin Uberti: 我認為它對每個從最開始就加入WebRTC開發的人來說都非常有意義。我們真的實現了構建一個高效能、靈活、開放和安全的RTC平臺的願望!緊接著,在新冠疫情期間, WebRTC極大地促進了人們之間的相互聯絡,這也使得它真正發展起來。線上通訊已經成為許多行業新的工作方式,並且有大量新興創業公司也在用 RTC 做有趣的事情,我對未來充滿期待。每個參與WebRTC專案的人都會為此感到驕傲!

至於遺憾,就不多說了。在開發WebRTC的過程中,肯定有很多因為最初的錯誤決策而不得不回頭重做的工作,這對於WebRTC的早期使用者來說非常不友好。而且有些工作依然過於複雜,不過每個專案都會遇到這些問題。

LiveVideoStack: 你希望在WebRTC下一版本中加入哪些效能?

Justin Uberti: 既然我已經離開谷歌,我對WebRTC未來規劃的見解也不似從前。但是我知道,有相當多的開發活動一直圍繞著Insertable Streams、新的Capture Handle提案、以及新的data channel實現。我也非常期待看到Cryptex(一種新的RTP元資料安全機制)的實現。

LiveVideoStack: 有些人說QUIC是WebRTC的未來,你認為呢?使用QUIC傳輸資料時,WebRTC將會遇到哪些挑戰?

Justin Uberti: 我認為QUIC將會對WebRTC的未來產生重要影響,之所以這樣說,是因為目前仍然很難建立WebRTC伺服器。基於HTTP的應用程式已經有了很棒的基礎設施,但是建立WebRTC伺服器卻要從零開始。能夠通過QUIC來傳輸WebRTC流量意味著設定cloud WebRTC端點並向其傳輸資料會變得容易得多。不必繼續為 WebRTC 開發一套完全獨立的傳輸協議(和支援庫)也是一件好事。

但是,要在QUIC上傳輸WebRTC,當中的細節才是難點。WebRTC 和 QUIC 中不同的擁塞控制演算法如何協同工作?我們是否應該在QUIC中傳輸 RTP 還是將其對映到原生QUIC概念? QUIC是主要用在C2S?還是應該考慮用在P2P?有很多事情都需要搞清楚。

LiveVideoStack: 基於WebTransport/WebCodecs/WebAssembly 的技術已經具備實現一個RTC引擎的能力,而且Zoom已經這麼做了。如何看待這些新技術與WebRTC的競爭?短期內,WebTransport 會替代WebRTC datachannel嗎?

**Justin Uberti:** 在我看來,這些技術對於那些想要交付更可控體驗的人來說非常重要。通過WASM,你最終能夠拿到大部分用於原生應用的自定義RTC堆疊,並將程式碼部署到瀏覽器上。或者將它們放在你的自定義編解碼器中。但是這些堆疊將仍是構建在WebRTC之上,所以我認為WASM更多是對WebRTC的一種擴充套件,而不是與之競爭。

WebTransport是一個有趣的協議,它是一個更簡單的網路堆疊,適用於需要非可靠傳輸(並且不需要任何其他 WebRTC 機制)的客戶端-伺服器應用程式。我一直非常支援這項工作,並認為谷歌的 Victor Vasiliev一直以來做得很棒!

LiveVideoStack: 今年,谷歌推出了兩款 AI 音訊編解碼器——Lyra 和 SoundStream。如你所見,這些 AI 編解碼器是否有可能加入WebRTC?

**Justin Uberti:** 我當然希望如此,但是就上文提到的觀點,我認為將編解碼器與WebRTC 解耦會非常有利於雙方的創新。

總的來說,我堅信人工智慧是壓縮技術的未來。而關鍵問題是,AI編解碼器什麼時候能夠替代現在的核心編解碼器?我和很多編解碼器專家聊過這個問題,他們大部分人都認為我們需要新一代AI編解碼器。

從谷歌到Clubhouse

LiveVideoStack: 15年的谷歌工作生涯中,你肯定遇到過很多了不起的人物,哪位對你的啟發最大?你從他們身上學到的最重要的事是什麼?

Justin Uberti: 有兩個人對我影響很大。一個是Linus Upson,他當時是Chrome的主管領導,正是他批准了WebRTC專案。他曾幫助我思考如何為專案找到前進的方向,並鼓勵團隊成員戰勝那些看似不可能解決的技術難題。

Eric Rescorla是第二個對我影響最大的人。在WebRTC專案期間,我和他密切合作過,當時我們分別擔任Chrome和Firefox的工程負責人。Eric非常關注WebRTC的魯棒安全,並竭盡所能實現這一目標,其中包括在我們團隊(Chrome)的程式碼庫中提交了好幾個重要的補丁。這種全棧式的、不計得失的工作態度深深打動了我。

LiveVideoStack: 在谷歌所做的所有工作中,哪部分是你最滿意的?

Justin Uberti: 我總是能在攻克技術難題並帶給使用者真正價值的過程中獲得樂趣。WebRTC絕對是我最滿意的作品,但是我還想提一下通過Web應用將Stadia Gameplay移植到iOS上這件事,這在當時很有風險,但最終還是成功解決,這樣人們就可以在iPad上玩Cyberpunk 2077(一款由CD Projekt RED開發的動作角色類遊戲)了。

LiveVideoStack:  你為什麼會離開谷歌加入Clubhouse?是對音訊特別感興趣嗎?你現在已經完全適應新工作了嗎?

Justin Uberti: 在谷歌規模還很小的時候,我就加入了。我非常喜歡當時那種毫無拘束的氛圍。所以我也在尋找類似的快速發展的環境,以及一個可以不斷探索的全新應用領域。Clubhouse和社交音訊實現了我的願望,而且我真的很喜歡他們的團隊。

我花了很多時間來研究音訊和視訊,但是在谷歌,我們把精力主要放在視訊上,因為這個領域有很多事情要做:HD、多使用者、螢幕共享、VP8、VP9和AV1等。但那個時候我覺得音訊實際上被忽視了,其實音訊領域有很多有趣的新方向可以探索,比如我們在Clubhouse推出的空間音訊(Spatial audio)體驗。是的,我想說的是,我已經完全適應了Clubhouse的工作,並準備投入到更多有趣的事情中去。

LiveVideoStack: 據你觀察,Clubhouse和谷歌這兩家公司最主要的不同是什麼?

***Justin Uberti:*** 令我驚訝的是,我在谷歌時所使用的幾乎所有內部工具(從搜尋到Bug追蹤再到招聘工具)都在外面以SaaS產品出現。由於規模效應,這些第三方工具很多時候比谷歌的同類工具還要好用。

大多數差異都是創業公司和大公司的典型差異,我就不在這裡贅述了。但是,能夠全身心地投入到單一產品和任務中,這種感覺很棒。我認為這也有利於人們獲得更多成就感。

LiveVideoStack: 作為Clubhouse的流媒體技術負責人,你在招人的時候會看重哪些品質?教育背景、經驗和快速學習能力,哪一個最重要?

****Justin Uberti:****** 在很多情況下,這些品質往往是高度相關的:一個學東西很快的人通常有很強的教育背景和之前的工作經驗。但強大的學習能力是我最看重的——新一代的人才必將在未來成為領導力量。我們在開發WebRTC時期招聘到了好幾個厲害的人,但當時他們都沒有經驗。

所以強大的學習能力才是最重要的。

LiveVideoStack: 最近Clubhouse宣佈啟用空間音訊,你在使用者對空間音訊體驗的反饋中有什麼發現?Clubhouse將會有哪些創新?

****Justin Uberti:**** 看起來人們真的很喜歡音訊空間體驗。下面是來自推特使用者的使用反饋:

圖片

@Clubhouse 上的空間音訊實現得非常好,以至於需要一點時間來適應。今天晚上散步時,我轉過身三次,想看看是誰的聲音,最後才發現聲音來自應用。

圖片

這是我今天在車裡用藍芽聽@Clubhouse 時的樣子,這個新的音訊空間功能太棒了!

關於下一步的動作,我無法透露太多細節,但是我想說的是Clubhouse的創新充滿潛力,非常值得期待。

現在和未來

LiveVideoStack: 你認為目前實時通訊技術最大的限制是什麼?有什麼解決方案嗎?

****Justin Uberti:**** 我們現在仍處於WebRTC/線上會議 1.0階段。它現在得以實現,並且還很可靠,這本身就是一項巨大的成就。但在某些方面它依然還很不自然,我們現在還無法做到超越面對面交談。

我想每個人都遇到過的一個痛點就是“靜音按鈕”。這個按鈕很好理解,但是如果有人忘記靜音的話,整個視訊過程就會很吵。而在面對面聊天時就不會出現這種問題。

我相信這些問題都會得以解決,只是需要時間。也許還需要能夠深入理解共享媒體的技術不斷髮展。

LiveVideoStack: 隨著 Facebook 加入元宇宙,你認為未來 5 到 10 年中實現元宇宙體驗的核心技術是什麼?

Justin Uberti: 也許我現在所說有些為時過早,但是在我看來,元宇宙的大部分互動應該是實時互動。畢竟,真實世界是由實時互動組成的連續流。所以過去幾年來我們研究的很多東西(WebRTC、QUIC、音訊空間、視訊(或點雲)、低延遲以及媒體處理和理解等)都與元宇宙非常相關。

LiveVideoStack: 你現在對哪些技術比較感興趣?

Justin Uberti: 其實很多你已經提到了!在Clubhouse,我的工作方向主要在空間音訊和多聲道音訊,還有實時語音識別和轉錄。同時這些年我一直在思考如何將WebRTC和QUIC結合起來。

我對AI也超級感興趣(它可以幫助我更好地理解AI生成媒體)。新的網路和加密技術也是我的興趣所在。

LiveVideoStack: 最後一個重要問題,如果你有一個機會和一位電腦科學家或者數學家對話,你最想和誰對話?你想和他談論什麼?

*****Justin Uberti:**** 非常有趣的問題!如果這個人還在世的話,我希望是夏農*。作為數學家和工程師,他的工作幾乎支撐了現在的整個網際網路。我會向他提問:有哪些創新是他設想過,但當時沒有技術來實現的?如今的技術可能會產生哪些次級效應?

特別感謝許耀武老師對本次採訪給予的幫助和支援。

延伸閱讀:WebRTC誕生記


講師招募

LiveVideoStackCon 2022 音視訊技術大會 上海站,正在面向社會公開招募講師,無論你所處的公司大小,title高低,老鳥還是菜鳥,只要你的內容對技術人有幫助,其他都是次要的。歡迎通過 [email protected] 提交個人資料及議題描述,我們將會在24小時內給予反饋。