PRE-SCRIPTUM:WebRTC - riduzione della CPU, impostazioni da perfezionare
Ho cercato su StackOverflow e non c'è Q/A spiegare tutte le possibilità di tweaking WebRTC per renderlo più praticabile per i prodotti finali.
PROBLEMA:
WebRTC ha un bel UX e sta tagliando il bordo. Dovrebbe essere perfetto per le chiamate in mesh (3-8 persone), ma non lo è ancora. Il più grande problema con le chiamate mesh (tutti i partecipanti si scambiano i flussi l'uno con l'altro) è il consumo di risorse, in particolare la CPU.
Qui ci sono alcune statistiche che vorrei condividere:
2.3 GHz Intel Core i5 (2 core), OSX 10.10.2 (14C109), 4GB di RAM, Chrome 40.0.2214.111 (64-bit)
+------------------------------------+----------+----------+
| Condition | CPU | Delta |
+------------------------------------+----------+----------+
| Chrome (idle after getUserMedia) | 11% | 11% |
| Chrome-Chrome | 55% | 44% |
| Chrome-Chrome-Chrome | 74% | 19% |
| Chrome-Chrome-Chrome-Chrome | 102% | 28% |
+------------------------------------+----------+----------+
DOMANDA:
vorrei creare una tabella con modifiche WebRTC, che può migliorare il consumo di risorse e di rendere l'esperienza complessiva migliore. Ci sono altre impostazioni con cui posso giocare oltre a quelle che sono nella tabella qui sotto?
+------------------------------------+--------------+----------------------+
| 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.
Mi piacerebbe lasciare la stessa architettura (mesh), quindi MCU non è la cosa che sto cercando.
Immagino che un cambiamento da Opus a un PCMA/U a un tasso inferiore avrebbe fornito una differenza. Tuttavia, la qualità si abbasserebbe. –
Inoltre, il passaggio a H264 in Firefox (supportato solo lì) potrebbe essere d'aiuto poiché H264 è solitamente supportato dall'hardware e quindi facilita i cicli utilizzati nella CPU. –