Nel contesto delle conferenze WebRTC, gli stream multimediali virtuali sono stream multimediali generati da un'unità di inoltro selettivo (SFU) per aggregare e distribuire i contenuti multimediali di più partecipanti. A differenza degli stream multimediali peer-to-peer diretti, che creerebbero una rete complessa di connessioni nelle conferenze di grandi dimensioni, gli stream multimediali virtuali semplificano la topologia. L'unità SFU riceve singoli stream multimediali da ciascun partecipante e inoltra in modo selettivo gli stream attivi o pertinenti agli altri partecipanti, eseguendo il loro multiplexing in un insieme più piccolo e fisso di stream multimediali virtuali in uscita.
Questo approccio riduce il numero di stream in entrata simultanei che ogni partecipante deve gestire, riducendo i requisiti di elaborazione e larghezza di banda. Ogni stream virtuale può contenere contenuti multimediali di un solo partecipante alla volta, regolati dinamicamente dall'SFU in base a fattori come l'attività dell'altoparlante o l'assegnazione del video. I partecipanti ricevono questi stream virtuali, visualizzando in modo efficace una vista composta della conferenza senza dover gestire i singoli stream di tutti gli altri partecipanti. Questa astrazione fornita dagli stream multimediali virtuali è fondamentale per scalare le conferenze WebRTC a un gran numero di partecipanti.
Per ricevere l'audio, il client deve offrire esattamente tre descrizioni di contenuti multimediali audio, creando tre trasmettitori/ricevitori audio locali. Per ricevere il video, il cliente deve offrire da una a tre descrizioni dei contenuti multimediali video, stabilendo così il numero di transceiver video.
Ricevitori
Ogni transceiver di proprietà del cliente ha un RtpReceiver
e un "canale multimediale" dedicati che ricevono gli stream RTP audio dai server di Meet.
Ogni traccia ha un ID univoco e riceve il proprio stream distinto di pacchetti RTP
da quella specifica sorgente multimediale. Ad esempio, la Traccia A potrebbe ricevere l'audio daproduction-1
, mentre la Traccia B lo riceve da production-2
.
SSRC
Ogni pacchetto RTP ha un valore dell'intestazione Synchronization Source (SSRC) che lo lega a un canale specifico.
Le sessioni audio tramite l'API Meet Media utilizzano tre stream multimediali distinti, ciascuno con il proprio SSRC statico. Una volta stabiliti, questi valori SSRC non cambiano mai per tutta la durata della sessione.
Stream virtuali
L'API Meet Media utilizza stream di contenuti multimediali virtuali. Questi valori rimangono statici per tutta la sessione, ma la sorgente dei pacchetti può cambiare per riflettere i feed più pertinenti. Gli stream di contenuti multimediali virtuali si comportano allo stesso modo per l'audio e il video.
L'origine contribuente (CSRC) negli intestazioni dei pacchetti RTP identifica l'origine effettiva dei pacchetti RTP. Quando partecipano, a ogni utente di una conferenza viene assegnato un CSRC unico. Questo valore rimane costante fino alla chiusura della pagina.
Poiché il numero di SSRC è costante per tutta la sessione dell'API Meet Media, ecco i tre possibili scenari:
Più partecipanti rispetto agli SSRC disponibili:
Meet trasmette le tre persone più rumorose tra i tre SSRC. Poiché ogni stream RTP ha il proprio SSRC dedicato, non avviene alcun intreccio tra gli stream.
Figura 1. Meet trasmette le tre persone più rumorose tra i tre SSRC. Se uno degli stream originali della conferenza non è più uno degli stream più intensi, Meet passa i pacchetti RTP che compongono lo SSRC a quello più alto.
Figura 2. Meet sposta i pacchetti RTP sulla nuova persona più alta. Il numero di partecipanti attivi è inferiore ai tre SSRC audio:
Se sono disponibili più SSRC rispetto agli stream nella conferenza, Meet mappa tutti i pacchetti audio disponibili al proprio SSRC univoco. Eventuali SSRC inutilizzati sono ancora pronti e disponibili, ma non vengono trasmessi pacchetti RTP.
Figura 3. Meet mappa i pacchetti audio disponibili al proprio SSRC univoco. Il numero di partecipanti attivi corrisponde ai tre SSRC audio:
Per lo scenario in cui i partecipanti sono uguali e sono disponibili SSRC, i contenuti multimediali di ciascun partecipante vengono mappati a un SSRC dedicato. Queste mappature rimangono invariatefinché persiste questo scenario specifico.
Figura 4. Meet mappa i contenuti multimediali di ciascun partecipante a un SSRC dedicato.