对话Justin Uberti:RTC的过去现在和未来

Posted LiveVideoStack_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对话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高低,老鸟还是菜鸟,只要你的内容对技术人有帮助,其他都是次要的。欢迎通过 speaker@livevideostack.com 提交个人资料及议题描述,我们将会在24小时内给予反馈。

喜欢我们的内容就点个“在看”吧!

以上是关于对话Justin Uberti:RTC的过去现在和未来的主要内容,如果未能解决你的问题,请参考以下文章

后疫情时代,RTC期待新的场景大爆发

TEA...霉霉Taylor Swift粉丝围剿Justin Bieber,又发生了什么?

java Justin.java

JavaScript 用异步递归显示Justin Bieber推文

Lineage Logistics宣布向职业高尔夫球员Justin Thomas提供多年赞助

Ruby OpenSSL 错误 - 缺少 CA 证书(Justin 是谁?)