Gerenciar streams de mídia virtual na API Meet Media

No contexto de conferências do WebRTC, os streams de mídia virtuais são streams de mídia gerados por uma unidade de encaminhamento seletivo (SFU, na sigla em inglês) para agregar e distribuir mídia de vários participantes. Ao contrário dos streams de mídia ponto a ponto diretos, que criariam uma rede complexa de conexões em grandes conferências, os streams de mídia virtuais simplificam a topologia. A SFU recebe streams de mídia individuais de cada participante e encaminha seletivamente os streams ativos ou relevantes para outros participantes, multiplexando-os em um conjunto menor e fixo de streams de mídia virtual saída.

Essa abordagem reduz o número de fluxos de entrada simultâneos que cada participante precisa processar, reduzindo os requisitos de processamento e de largura de banda. Cada transmissão virtual pode conter mídia de um participante por vez, ajustada dinamicamente pelo SFU com base em fatores como atividade do orador ou atribuição de vídeo. Os participantes recebem essas transmissões virtuais, tendo uma visão composta da conferência sem precisar gerenciar transmissões individuais de todos os outros participantes. Essa abstração fornecida por streams de mídia virtual é crucial para dimensionar conferências do WebRTC para um grande número de participantes.

Para receber áudio, o cliente precisa oferecer exatamente três descrições de mídia de áudio, criando três transmissores-receptores de áudio locais. Para receber vídeo, o cliente precisa oferecer de uma a três descrições de mídia de vídeo, estabelecendo esse número de transceptores de vídeo.

Recebedores

Cada transceptor de propriedade do cliente tem um RtpReceiver e uma "faixa de mídia" dedicada que recebe os streams RTP de áudio dos servidores do Meet.

Cada faixa tem um ID exclusivo e recebe um stream distinto de pacotes RTP dessa fonte de mídia específica. Por exemplo, a Faixa A pode receber áudio de production-1, enquanto a Faixa B recebe áudio de production-2.

SSRCs

Cada pacote RTP tem um valor de cabeçalho Synchronization Source (SSRC), vinculando-o a uma faixa específica.

As sessões de áudio pela API Meet Media usam três fluxos de mídia distintos, cada um com o próprio SSRC estático. Depois de estabelecidos, esses valores do SSRC nunca mudam durante a sessão.

Transmissões virtuais

A API Meet Media usa fluxos de mídia virtual. Eles são estáticos durante a sessão, mas a origem dos pacotes pode mudar para refletir os feeds mais relevantes. As transmissões de mídia virtual têm o mesmo comportamento para áudio e vídeo.

A fonte de contribuição (CSRC) nos cabeçalhos de pacote RTP identifica a fonte verdadeira dos pacotes RTP. O Meet atribui a cada participante de uma conferência o próprio CSRC exclusivo quando ele entra. Esse valor permanece constante até que o usuário saia.

Como o número de SSRCs é constante durante a sessão da API Meet Media, confira os três cenários possíveis:

  1. Mais participantes do que SSRCs disponíveis:

    O Meet transmite as três pessoas mais altas entre os três SSRCs. Como cada fluxo RTP está no próprio SSRC dedicado, não há mistura entre os fluxos.

    O Meet transmite as três pessoas mais altas entre os três SSRCs.
    Figura 1. O Meet transmite as três pessoas mais altas entre os três SSRCs.

    Se algum dos fluxos originais na conferência não for mais um dos mais altos, o Meet vai alternar os pacotes RTP que compõem o SSRC para o mais alto.

    O Meet alterna os pacotes RTP para a pessoa mais alta.
    Figura 2. O Meet alterna os pacotes RTP para a pessoa mais alta.
  2. O número de participantes ativos é menor que os três SSRCs de áudio:

    No cenário em que há mais SSRCs disponíveis do que transmissões na conferência, o Meet mapeia todos os pacotes de áudio disponíveis para o próprio SSRC. Todos os SSRCs não usados ainda estão prontos e disponíveis, mas nenhum pacote RTP é transmitido.

    O Meet mapeia os pacotes de áudio disponíveis para o próprio SSRC exclusivo.
    Figura 3. O Meet mapeia os pacotes de áudio disponíveis para o próprio SSRC exclusivo.
  3. O número de participantes ativos é igual aos três SSRCs de áudio:

    No cenário de participantes iguais e SSRCs disponíveis, a mídia de cada participante é mapeada para um SSRC dedicado. Esses mapeamentos persistem enquanto esse cenário específico persistir.

    O Meet mapeia a mídia de cada participante para um SSRC dedicado.
    Figura 4. O Meet mapeia a mídia de cada participante para um SSRC dedicado.