WebRTC-减少CPU,调整设置



预脚本:

我在StackOverflow上搜索过,没有任何问答解释调整WebRTC以使其更适合最终产品的所有可能性。

问题:

WebRTC有一个非常好的用户体验,它是最前沿的。它应该非常适合网格通话(3-8人),但现在还不是。网格调用(所有参与者相互交换流)的最大问题是资源消耗,尤其是CPU。

以下是我想分享的一些统计数据:

2.3 GHz Intel Core i5(2核),OSX 10.10.2(14C109),4GB RAM,Chrome 40.0.2214.111(64位)

+------------------------------------+----------+----------+
| Condition                          | CPU      | Delta    |
+------------------------------------+----------+----------+
| Chrome (idle after getUserMedia)   | 11%      | 11%      |
| Chrome-Chrome                      | 55%      | 44%      |
| Chrome-Chrome-Chrome               | 74%      | 19%      |
| Chrome-Chrome-Chrome-Chrome        | 102%     | 28%      |
+------------------------------------+----------+----------+

问题:

我想创建一个带有WebRTC调整的表,这可以提高资源消耗,使整体体验更好。除了下表中的设置之外,我还有其他设置可以玩吗?

+------------------------------------+--------------+----------------------+
| Tweak                              | CPU Effect   | Affects              |
+------------------------------------+--------------+----------------------+
| Lower FPS                          | Low to high  | Video quality lower  |
| Lower video bitrate                | Low to high  | Video quality lower  |
| Turn off echo cancellation         | Low          | Audio quality lower  |
| Lower source video resolution      | Low to high  | Video quality lower  |
| Get audio only source              | Very high    | No video             |
| Codecs? Compression? More?..       |              |                      |
+------------------------------------+--------------+----------------------+

p.S.

我想离开相同的架构(网格),所以MCU不是我要搜索的东西。

您可以更改音频速率和编解码器(OPUS->PCMA/U),也可以减少通道。改变音频会有所帮助,但视频是占用CPU的主要部分。

Firefox确实支持H.264。使用它可以显著降低CPU利用率,因为大量不同的体系结构支持H.264的硬件编码/解码。我不能100%确定Firefox是否会利用这一点,但值得一试。

至于chrome,VP8实际上是您目前唯一的视频选项,而与编解码器无关的更改(分辨率、比特率等)实际上是解决其中使用的周期的唯一方法。

您还可以通过协商SDP中的最大带宽来强制Chrome使用较低质量的流。不过,在过去,这在Firefox中并不起作用。

最新更新