BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

关于WebRTC:挑战与机遇并存的实时通信

| 作者 Zef Hemel 关注 0 他的粉丝 ,译者 廖煜嵘 关注 0 他的粉丝 发布于 2013年6月18日. 估计阅读时间: 4 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

QCon New York 2013大会上, Gustavo Garcia就支持HTML 5的新型实时通信组件WebRTC做了主题演讲。WebRTC是一系列技术的组合,能在端到端之间实现实时、低延时的通信,可以用于视频和音频会议以及游戏。虽然通常都使用WebSockets来实现实时通信,但WebRTC却尝试通过直接在端到端之间建立连接来显著地降低延迟,并且只有在出现例如NAT或防火墙等原因导致不能直接建立连接的情况下,才会使用NAT穿透技术 。

Garcia描述了构建一个视频或音频会议系统所需要的各种组件。建立一个一对一的通话也许是最简单的情景。这就需要浏览器中支持如下特性:

  1. 支持对流式视频和音频的解码和显示
  2. 能够从网络摄像头中捕获视频和音频流
  3. 对呼叫的协调协议(如信号处理)
  4. 高效的音频和视频的编码及解码器
  5. 处理回波消除、噪声抑制、比特率适应(根据带宽自适应的流)等诸多方面的算法。

其中有许多是现在HTML5的一部分,包括流式视频和音频,以及通过getUserMedia去捕获视频和音频。虽然可以使用getUserMedia API去捕获音频和视频,但也只是实验性的扩展,在目前新构建的Chrome版本中实现了去捕获屏幕、单独的浏览器tab或部分网页的功能。

WebRTC忽略了重要的一点是对信号处理(signaling)的直接支持。信号处理用于控制呼叫的建立:谁在尝试呼叫谁,是否有人接受这次呼叫。信号处理必须由开发者自己实现,例如使用WebSockets或HTTP长轮询。开发者必须部署的另外一块基础设施是隧道服务器,它在用户需要NAT穿透和使用受限防火墙时充当中介角色。据Garcia估计,大概8%的呼叫都需要这样的中间隧道服务器。

Garcia描述了WebRTC的各种使用场景:

  • 一对一的视频和音频通话使用WebRTC来实现是最简单的。
  • 多方通话较难实现。一种方法是在完整的网状网络中,每个参与者都连接到所有其他参与者,但由于CPU占用率过高和带宽的限制,这种方法不能供超过5-6人使用。另一种方法是使用一个中间服务器,聚集所有的流,以单独或是合并成单一流的方式将其广播到所有其他参与者。
  • 允许WebRTC连接到固定电话网络,并通过网络浏览器拨打固话。
  • 结合其他技术如HTML5 WebGL实现实时的多人游戏
  • 因为WebRTC支持端到端之间任意数据的传输, 因此该技术可以用来在用户之间传输文件。例如,可以想象以这种方式建立类似BitTorrent的应用。

尽管当今支持WebRTC的浏览器(目前只有较新版本的Chrome和Firefox支持)还不是很多,但已经有了许多应用的例子。要了解有关该技术的更多信息,请参考webrtc.org或相关W3C标准

查看英文原文:Wrangling WebRTC: Challenges and Opportunities for Real-Time Communication


感谢赵震一对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

深度内容

百度AIOps实践

??? 2018年7月18日

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT