OBS Studio 近日新增了一个名为 “Add WebRTC (WHIP) output support” 的 PR,主要内容是贡献者希望使用 Rust 为 OBS Studio 添加对 WebRTC 的支持。
具体来说,该 PR 增加了一个可扩展支持的插件,包含:
- 具有推荐设置的 WebRTC 服务类型,以最大程度地兼容 webrtc 对等体
- WebRTC 输出
- 带有 FFI 绑定的 WebRTC 堆栈的 Rust 实现
贡献者表示,目前其初始版本的目标是仅支持输出,后续会提交 PR 添加源代码支持。
贡献者还解释了采用 Rust 的原因,他们最初评估的方案是 Google 实现的 libwebrtc,但他们发现获取该库的速度非常慢,安装和构建速度也耗费了许多时间:
Fetching the source of libwebrtc: 11 minutes 20 seconds
Installing the dependencies: 3 minutes and 30 seconds
Building libwebrtc: 7 minutes
Size added by libwebrtc: 35 megabytes
因此,他们评估了其他方案,最终选择了 https://webrtc.rs/,可以看到它比 libwebrtc 更轻量,也更易获取。
Additional Build time: 40 seconds
Size Added: 25 Megabytes
测试数据显示,使用 WebRTC 能够实现亚秒级延迟。从广播 (Broadcaster) 到播放 (Playback) 大约需要 120 毫秒,贡献者表示还可以继续降低这个数字。
此外,WebRTC 将让 OBS 用户体验更新的编解码器。WebRTC 支持的编解码器非常灵活,因此用户可以使用 H265 和 AV1。WebRTC 还支持同一会话中的多个视频流。因此 OBS 可以尝试一次播放多个场景。观众可以在同一个游戏中的场景或不同视图之间切换。