WebRTC - CPU减少,设置调整

时间:2015-02-18 17:51:45

标签: performance video real-time cpu webrtc

PRE-SCRIPTUM:

我搜索过StackOverflow并且没有Q / A解释调整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不是我要搜索的东西。

1 个答案:

答案 0 :(得分:4)

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

Firefox确实支持H.264。使用它可以显着降低CPU利用率,因为大量不同的架构支持H.264的硬件编码/解码。我不是百分百确定Firefox是否会利用它,但值得一试。

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

您还可以通过协商the maximum bandwith in your SDP强制Chrome使用质量较低的信息流。虽然,在过去,这对Firefox没有用。