ORTC 以及 WebRTC 的未来

  • Abel Avram
  • 侯伯薇

2014 年 8 月 25 日

话题:JavaScript微软GoogleChromeMozillaNode.js语言 & 开发

第一版稳定的 ORTC(对象 RTC)规范已经发布。问题是,它会对 WebRTC 产生什么样的影响呢?

让我们回顾一下,在 2013 年,Hookflash的首席架构师 Robin Raymond 就表达了对于在 WebRTC 中使用SDP(会话描述协议)的不满。他总结了自己关于 SDP 的问题,如下:

  1. 不需要——太多高层次的 API
  2. 晦涩难懂的格式——遗留下来的,而且有问题
  3. 要求没有得到应答
  4. 不兼容
  5. 缺少 API 契约
  6. 无法真正解决与遗留系统兼容性的问题

在接下来的几个月间,其他成员加入进来,成立了W3C 对象 RTC (ORTC)社区小组,要定义“一系列 WebIDL 中的 ECMAScript API,让媒体可以从其他浏览器或者设备进行发送和接收”。该小组当前拥有 60 名成员,包括微软和 Google,并且已经产出了第一个稳定的规范草案: 针对 WebRTC 的对象 RTC(ORTC)API

Doug Mahugh(微软)认为“ORTC 现在已经完成了足够多的内容,可以实现以获取经验,从而可以号召更多人来对其进行实现。” 他概述了一些原因,来说明为什么 ORTC 有用:

ORTC API 很适合“移动优先,云优先”的世界,因为它支持高级视频特性,像可伸缩的视频编码simulcast。这些高级视频技术已经被证实难以在 WebRTC 1.0 中的SDP中以可互操作的方式支持。相对而言,在 JavaScript 对象 API 中利用这些高级视频技术会更简单。

此外,ORTC FAQ中的问题,也让大家发现需要创建新的 web 通信规范:

通过 JavaScript,ORTC 可以更好地访问更多控件。这样,在 web 开发者构建实时通信应用程序和特性的时候,就有更多能力和灵活性。比方说:分层视频编码、根据每个轨道设置编码格式等等。

并且

ORTC 的主要 API 都是用 JavaScript 编写的。想要在 WebRTC 1.0 中修改同样的控件,可能需要浏览源代码的变化。当我们问 web 开发者更喜欢哪种的时候,大多数人都说更喜欢在应用程序中可以访问更多控件,而不需要等浏览器或者其他软件厂商的更新。

既然微软和 Google 都在推动 ORTC,大家可能会想,WebRTC 会走向何方? 由于多家浏览器厂商——Google、Mozilla、Opera、微软——都已经投入大量资金来支持 WebRTC,所以它不会被抛弃,而是会做调整来支持 ORTC。据 Google 的 Justin Uberti 所说,WebRTC 1.1 会集成 ORTC(参见这个视频 @ 29m20s)。因此,开发者不需要重新编写他们的 RTC 应用程序,但是还是建议转而使用 ORTC API,因为在浏览器中使用它更自然一些。

在 GitHub 上有大量类库帮助开发者使用 ORTC: 针对客户端的JavaScript shim library for WebRTC、针对服务端应用程序的Node.js 库以及针对移动设备的C++ wrapper

据 Uberti 和 Google 的 Serge Lachappelle 所说,迄今为止已经有大概 450 家公司开发了 WebRTC 应用,并且有大概 17 亿台设备支持它(参见视频 @ 43m40s),到 2018 年,这个数量预计会增长到 40 亿,因为在所有那些设备中,WebRTC 会被用于视频聊天,语音通话、文件共享等等,Google 的一个团队还演示通过 WebRTC 操作带有 3D 摄像头的路虎汽车(参见视频 @ 2m36s)。

查看英文原文:ORTC and the Future of WebRTC

JavaScript微软GoogleChromeMozillaNode.js语言 & 开发