Gestire gli stream multimediali virtuali nell'API Meet Media

I flussi multimediali virtuali, nel contesto delle conferenze WebRTC, sono flussi multimediali generati da un'unità di inoltro selettivo (SFU) per aggregare e distribuire i contenuti multimediali di più partecipanti. A differenza dei flussi multimediali peer-to-peer diretti, che creerebbero una complessa rete di connessioni in conferenze di grandi dimensioni, i flussi multimediali virtuali semplificano la topologia. L'SFU riceve singoli flussi multimediali da ogni partecipante e inoltra selettivamente i flussi attivi o pertinenti ad altri partecipanti, multiplexandoli in un insieme più piccolo e fisso di flussi multimediali virtuali in uscita.

Questo approccio riduce il numero di flussi in entrata simultanei che ogni partecipante deve gestire, diminuendo i requisiti di elaborazione e larghezza di banda. Ogni stream virtuale può contenere contenuti multimediali di un partecipante alla volta, regolati dinamicamente dall'SFU in base a fattori come l'attività dell'oratore o l'assegnazione del video. I partecipanti ricevono questi stream virtuali, vedendo di fatto una visualizzazione composta della conferenza senza dover gestire i singoli stream di tutti gli altri partecipanti. Questa astrazione fornita dai flussi multimediali virtuali è fondamentale per scalare le conferenze WebRTC a un numero elevato di partecipanti.

Per ricevere l'audio, il client deve offrire esattamente tre descrizioni di contenuti multimediali audio, creando tre transceiver audio locali. Per ricevere video, il client deve offrire da una a tre descrizioni di media video, stabilendo il numero di ricetrasmettitori video.

Ricevitori

Ogni ricetrasmettitore di proprietà del client ha un RtpReceiver dedicato e una "traccia multimediale" dedicata che riceve i flussi RTP audio dai server di Meet.

Ogni traccia ha un ID univoco e riceve il proprio flusso distinto di pacchetti RTP dalla specifica origine media. Ad esempio, la Traccia A potrebbe ricevere l'audio da production-1, mentre la Traccia B riceve l'audio da production-2.

SSRC

Ogni pacchetto RTP ha un valore di intestazione Synchronization Source (SSRC), che lo lega a una traccia specifica.

Le sessioni audio tramite l'API Meet Media utilizzano tre stream multimediali distinti, ognuno 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 flussi multimediali virtuali. Questi valori sono statici durante la sessione, ma l'origine dei pacchetti potrebbe cambiare per riflettere i feed più pertinenti. I flussi multimediali virtuali si comportano allo stesso modo per audio e video.

L'attributo Origine contributo (CSRC) nelle intestazioni dei pacchetti RTP identifica l'origine reale dei pacchetti RTP. Meet assegna a ogni partecipante a una conferenza il proprio CSRC univoco quando partecipa. Questo valore rimane costante finché non esce.

Poiché il numero di SSRC è costante durante la sessione dell'API Meet Media, ecco i tre scenari possibili:

  1. Più partecipanti rispetto agli SSR disponibili:

    Meet trasmette le tre persone più rumorose nei tre SSRC. Poiché ogni stream RTP si trova sul proprio SSRC dedicato, non vi è alcuna commistione tra gli stream.

    Meet trasmette le tre persone che parlano più forte nei tre SSRC.
    Figura 1. Meet trasmette le tre persone che parlano più forte nei tre SSRC.

    Se uno degli stream originali della conferenza non è più uno degli stream più forti, Meet cambia i pacchetti RTP che compongono l'SSRC con quello più forte.

    Meet passa i pacchetti RTP alla nuova persona che parla più forte.
    Figura 2. Meet passa i pacchetti RTP alla nuova persona che parla più forte.
  2. Il numero di partecipanti attivi è inferiore a tre SSRC audio:

    Nello scenario in cui sono disponibili più SSRC rispetto agli stream nella conferenza, Meet mappa tutti i pacchetti audio disponibili al proprio SSRC univoco. Gli SSRC inutilizzati sono ancora pronti e disponibili, ma non vengono trasmessi pacchetti RTP.

    Esegue la mappatura dei pacchetti audio disponibili per ogni SSRC univoco.
    Figura 3. Esegue la mappatura dei pacchetti audio disponibili per ogni SSRC univoco.
  3. Il numero di partecipanti attivi è uguale ai tre SSRC audio:

    Nello scenario di partecipanti e SSRCs disponibili in numero uguale, i contenuti multimediali di ciascun partecipante vengono mappati a un SSRC dedicato. Queste mappature rimangono invariate finché questo scenario specifico rimane invariato.

    Meet mappa i contenuti multimediali di ogni partecipante su un SSRC dedicato.
    Figura 4. Meet mappa i contenuti multimediali di ogni partecipante su un SSRC dedicato.