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

內容 輯: 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小時內給予反饋。



喜歡我們的內容就點個“在看”吧!

本文分享自微信公衆號 - LiveVideoStack(livevideostack)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章