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

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

从 Web 应用中录制视频

长期以来,MediaStreamRecorder API 一直是热门的 chromium.org 请求,有超过 2, 500 颗星。媒体录制功能现已添加到 Chrome 的实验性网络平台功能标志后面,但目前仅适用于桌面设备。这样你就可以录制、播放或下载视频。我们提供了 WebRTC 示例代码库中的简单演示。如需了解详情,请参阅 think-webrtc 公告。如需通过屏幕截图录制视频的示例 Chrome 应用,请访问 github.com/niklasenbom/RecordingApp。这些是全新的实现方式,可能仍有一些错误尚未解决:如果您遇到问题,请在代码库上提交问题。

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

音频输出设备选择

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

Windows 上的设备支持

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

默认音频设备(以及 Windows 上的通信)的设备 ID 将不再进行哈希处理(问题 535980)。而是支持“默认”和“通信”这两个预留 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 的初始版本(在标记后面)。

公共服务通告 (PSA)

  • 从 Chrome 47 开始,getUserMedia() 请求只能通过安全源(HTTPS 或 localhost)发出。
  • 移除了 RTP 数据通道支持。所有仍在使用 RTP 数据通道的其余应用都应改用标准数据通道。

与所有版本一样,我们建议开发者通过 Canary 版、开发者版和 Beta 版试用 Chrome,并报告发现的任何问题。我们获得的帮助是非常宝贵的。如需获取有关如何提交优质错误报告的指引,请访问 WebRTC bug 页面

样本歌曲

了解详情