PRE-SCRIPTUM:
Я искал StackOverflow, и нет Q/A, объясняющего все возможности настройки WebRTC, чтобы сделать его более жизнеспособным для конечных продуктов.
Проблема:
WebRTC имеет очень хороший UX, и он режет край. Он должен быть идеальным для вызовов сетки (3-8 человек), но это еще не все. Самая большая проблема с сетными вызовами (все участники обмениваются потоками друг с другом) - это потребление ресурсов, особенно CPU.
Вот некоторые статистики, которые я хотел бы поделиться:
2.3 ГГц Intel Core i5 (2 ядра), OSX 10.10.2 (14C109), 4 ГБ ОЗУ, 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.
Я хотел бы оставить ту же архитектуру (mesh), поэтому MCU - это не то, что я ищу.