Visão geral da API Meet Media

A API Google Meet Media permite acessar mídia em tempo real de conferências do Google Meet. Isso permite uma variedade de casos de uso, como apps que documentam itens de ação, oferecem insights em tempo real sobre a reunião atual ou transmitem áudio e vídeo para uma nova plataforma.

Casos de uso

Os apps registrados no console do Google Cloud podem usar a API Meet Media para se conectar a conferências do Meet, permitindo que eles:

  • Consumir transmissões de vídeo. Por exemplo:
    • Alimentar fluxos de vídeo gerados em conferências do Meet nos seus próprios modelos de IA.
    • Filtrar transmissões para gravações personalizadas.
  • Consumir streams de áudio. Por exemplo:
    • Envie áudio diretamente para o Gemini e crie seu próprio chatbot de IA para reuniões.
    • Alimentar fluxos de áudio gerados em conferências do Meet no seu próprio serviço de transcrição
    • Gerar legendas em vários idiomas.
    • Crie feeds de linguagem de sinais gerados por modelo com base no áudio gravado.
    • Crie seus próprios modelos de redução de ruído para remover artefatos de fundo e ruídos da conferência.
  • Consumir metadados do participante. Por exemplo:
    • Detectar quais participantes estão na conferência, permitindo uma melhor inteligência e análise.

Termos comuns

Número do projeto do Cloud
Um identificador int64 gerado de forma imutável para um projeto do Google Cloud. Esses valores são gerados pelo console do Google Cloud para cada app registrado.
Conferência
Uma instância gerada pelo servidor de uma chamada em um espaço de reunião. Os usuários geralmente consideram esse cenário uma única reunião.
Canal de dados de recursos da conferência

Em vez de solicitar recursos por HTTP, como na API REST do Google Meet, os clientes da API Meet Media solicitam recursos do servidor por canais de dados.

Um canal de dados dedicado pode ser aberto para cada tipo de recurso. Depois de aberto, o cliente pode enviar solicitações pelo canal. As atualizações de recursos serão transmitidas pelo mesmo canal.

Origem que contribui (CSRC, na sigla em inglês)

Com as transmissões de mídia virtual, não é possível presumir que uma transmissão de mídia sempre aponta para o mesmo participante. O valor CSRC no cabeçalho de cada pacote RTP identifica a fonte real do pacote.

O Meet atribui um valor CSRC exclusivo a cada participante de uma conferência quando ele entra. Esse valor permanece constante até que eles saiam.

Canais de dados

Os canais de dados do WebRTC permitem a troca de dados arbitrários (texto, arquivos etc.) independentemente dos streams de áudio e vídeo. Os canais de dados usam a mesma conexão que os streams de mídia, oferecendo uma maneira eficiente de adicionar a troca de dados aos aplicativos WebRTC.

Estabelecimento de conectividade interativa (ICE)

Um protocolo para estabelecer conectividade, encontrando todas as rotas possíveis para que dois computadores se comuniquem por meio de rede ponto a ponto (P2P) e garantindo que você permaneça conectado.

Fluxo de mídia

Uma stream de mídia do WebRTC representa um fluxo de dados de mídia, normalmente áudio ou vídeo, capturados de um dispositivo, como uma câmera ou um microfone. Ele consiste em uma ou várias faixas de streaming de mídia, cada uma representando uma única fonte de mídia, como uma faixa de vídeo ou de áudio.

Faixa de streaming de mídia

Consiste em um único fluxo unidirecional de pacotes RTP. Uma faixa de stream de mídia pode ser de áudio ou vídeo, mas não os dois. Uma conexão bidirecional do Secure Real-time Transport Protocol (SRTP, na sigla em inglês) geralmente consiste em duas faixas de fluxo de mídia, saída do local para o peer remoto e entrada do peer remoto para o local.

Espaço para reuniões

Um lugar virtual ou um objeto persistente (como uma sala de reunião) em que uma conferência é realizada. Apenas uma videoconferência ativa pode ser realizada em um espaço por vez. Um espaço de reunião também ajuda os usuários a encontrar e acessar recursos compartilhados.

Participante

Uma pessoa que participou de uma conferência ou que usa o modo companion, assistindo como espectador, ou um dispositivo de sala conectado a uma chamada. Quando um participante entra na conferência, um ID exclusivo é atribuído.

Streams relevantes

Há um limite no número de fluxos de áudio virtual e fluxos de vídeo virtual que um cliente pode abrir.

É possível que o número de participantes em uma conferência exceda esse número. Nessas situações, os servidores do Meet transmitem as transmissões de áudio e vídeo dos participantes considerados "mais relevantes". A relevância é determinada por várias características, como compartilhamento de tela e a frequência com que um participante falou.

Unidade de encaminhamento seletiva (SFU)

Uma unidade de encaminhamento seletiva (SFU, na sigla em inglês) é um componente do lado do servidor em conferências do WebRTC que gerencia a distribuição de fluxos de mídia. Os participantes se conectam apenas à SFU, que encaminha seletivamente transmissões relevantes para outros participantes. Isso reduz o processamento do cliente e as necessidades de largura de banda, permitindo conferências escalonáveis.

Protocolo de descrição de sessão (SDP)

O mecanismo de sinalização que o WebRTC usa para negociar uma conexão P2P. O RFC 8866 governa isso.

Resposta do SDP

A resposta a uma oferta de SDP. A resposta rejeita ou aceita todos os fluxos recebidos do peer remoto. Ele também negocia quais streams pretende transmitir de volta para o peer de oferta. É importante observar que a resposta do SDP não pode adicionar streams sinalizados da oferta inicial. Por exemplo, se uma oferta peer sinaliza que aceita até três streams de áudio do peer remoto, esse peer remoto não pode sinalizar quatro streams de áudio para transmissão.

Oferta do SDP

A SDP inicial no fluxo de negociação ponto a ponto de oferta-resposta. A oferta é criada pelo peer inicializador e determina os termos da sessão peer-to-peer. A oferta é sempre criada pelo cliente da API Meet Media e enviada aos servidores do Meet.

Por exemplo, uma oferta pode indicar o número de fluxos de áudio ou vídeo que o ofertedor está enviando (ou capaz de receber) e se os canais de dados serão abertos.

Origem de sincronização (SSRC)

Um SSRC é um identificador de 32 bits que identifica exclusivamente uma única origem de um fluxo de mídia em uma sessão de RTP (protocolo de transporte em tempo real). No WebRTC, os SSRCs são usados para distinguir entre diferentes streams de mídia originados de participantes diferentes ou até mesmo diferentes faixas do mesmo participante (como câmeras diferentes).

RtpTransceiver

Conforme detalhado em RFC 8829, um transmissor-receptor é uma abstração em torno de fluxos RTP em uma sessão ponto a ponto.

Um único transceptor é mapeado e descrito por uma única descrição de mídia no SDP. Um transceptor consiste em um RtpSender e um RtpReceiver.

Como o RTP é bidirecional, cada peer tem a própria instância de transceptor para a mesma conexão RTP. O RtpSender de um transceptor para o peer local é mapeado para o RtpReceiver de um transceptor específico no peer remoto. O inverso também é verdadeiro. O RtpSender do mesmo transmissor-receptor do par remoto é mapeado para o RtpReceiver do par local.

Cada descrição de mídia tem um transceptor dedicado. Portanto, uma sessão ponto a ponto com vários fluxos RTP tem vários transceptores com vários RtpSenders e RtpReceivers para cada peer.

Fluxos de mídia virtual

Os streams de mídia virtuais são streams de mídia agregados gerados por uma Unidade de encaminhamento seletivo (SFU, na sigla em inglês) em conferências do WebRTC. Em vez de cada participante enviar streams individuais para todos os outros, a SFU multiplexa os streams de participantes selecionados em menos streams virtuais de saída. Isso simplifica a topologia de conexão e reduz a carga sobre os participantes, permitindo conferências escalonáveis. Cada transmissão virtual pode conter mídia de vários participantes, gerenciada dinamicamente pelo SFU.