Chrome 47 WebRTC:媒体录制、安全来源和代理处理

Chrome 47 包含多项重要的 WebRTC 增强功能和更新。

从 Web 应用录制视频

MediaStreamRecorder API 长期以来一直是 chromium.org 上最热门的请求,获得了超过 2, 500 个星标。媒体录制功能现已添加到 Chrome 中,但目前仅适用于桌面设备,并且需要通过实验性 Web 平台功能标志启用。这样,您就可以录制和播放视频,也可以下载视频。WebRTC 示例代码库中提供了一个简单的演示,您还可以通过 discuss-webrtc 公告了解更多信息。您可以在 github.com/niklasenbom/RecordingApp 上找到一个用于录制屏幕截图视频的示例 Chrome 应用。这些都是全新的实现,可能仍存在需要解决的 bug:如果您遇到问题,请在相应代码库中提交问题。

WebRTC GitHub 示例代码库中 MediaRecorder 演示的屏幕截图

音频输出设备选择

MediaDevices.enumerateDevices()”已发布。如需了解详情,请参阅 Chromium 问题 504280。除了 MediaStreamTrack.getSources() 已经提供的音频输入和视频输入设备之外,您现在还可以枚举音频输出设备。如需详细了解如何使用此功能,请参阅此更新

Windows 上的设备支持

现在已添加对 Windows 上默认通信设备的支持。这意味着,在 Windows 上枚举音频设备时,会有一个额外的通信设备条目,其 ID 为“communications”。

默认音频设备(以及 Windows 上的通信)的设备 ID 将不再进行哈希处理(问题 535980)。相反,它支持两个预留 ID,即“default”和“communications”,这两个 ID 在所有安全来源中都是相同的。设备标签将翻译为浏览器语言区域设置,因此开发者不应期望标签具有预先确定的值。通过将捕获时间戳一直传播到渲染算法,改进了视频渲染准确性,从而可以根据该时间戳选择正确的 Vsync。对于 Windows 平台,Chrome 47 中的捕获时间戳也更加准确。

代理处理

Chrome 47 新增了一项偏好设置,用于强制 WebRTC 流量通过本地代理服务器(如果已配置)发送,这对于通过 VPN 浏览的部分用户来说非常重要。这意味着 WebRTC 应用将仅看到代理 IP 地址。请注意,这会影响应用性能,并且除非应用支持 TURN/TCP 或 ICE-TCP,否则根本无法正常运行。请留意 WebRTC 网络限制器扩展程序的新版本,该版本很快就会提供用于设置此偏好的界面。如需详细了解 IP 地址“泄露”,请参阅 WebRTC 的未来发展

WebRTC Network Limiter Chrome 扩展程序

…以及更多

大幅提升了高延迟连接的数据通道吞吐量。

我们将在 Chrome 47 时间范围内逐步推出对 DTLS 1.2 的支持。

虽然此版本不支持 VP9 和 H.264,但我们仍在继续开发这些功能,并希望在 Chrome 48 中实现对 VP9 和初始版 H.264(通过标志启用)的支持。

公共服务通告

  • 从 Chrome 47 开始,仅允许从安全来源(HTTPS 或 localhost)发出 getUserMedia() 请求。
  • 已移除 RTP 数据通道支持。仍在使用 RTP 数据通道的任何剩余应用都应改用标准数据通道。

与所有版本一样,我们鼓励开发者在 Canary 版、开发者版和 Beta 版渠道中试用 Chrome,并报告发现的任何问题。我们收到的帮助非常宝贵。如需了解如何提交优质的 bug 报告,请参阅 WebRTC bug 页面

演示

了解详情