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不是我要搜索的东西。
答案 0 :(得分:4)
您可以更改音频速率和编解码器(OPUS - > PCMA / U),您也可以减少频道。改变音频会有所帮助,但视频是你的主要CPU占用量。
Firefox确实支持H.264。使用它可以显着降低CPU利用率,因为大量不同的架构支持H.264的硬件编码/解码。我不是百分百确定Firefox是否会利用它,但值得一试。
对于chrome,VP8目前是您唯一的视频选项,而您的编解码器无关的更改(分辨率,比特率等)实际上是解决其中使用的周期的唯一方法。
您还可以通过协商the maximum bandwith in your SDP强制Chrome使用质量较低的信息流。虽然,在过去,这对Firefox没有用。