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 vários 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 e fazer o seguinte:

  • Consumir transmissões de vídeo. Por exemplo:
    • Transmita fluxos de vídeo gerados em conferências do Meet para 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.
    • Enviar streams de áudio gerados em conferências do Meet para seu próprio serviço de transcrição
    • Gerar legendas em vários idiomas.
    • Criar feeds de linguagem de sinais gerados por modelos com base no áudio capturado.
    • Crie seus próprios modelos de redução de ruído para remover artefatos ruidosos e de plano de fundo da conferência.
  • Consumir metadados do participante. Por exemplo:
    • Detectar quais participantes estão na conferência, permitindo melhor inteligência e análise.

Ciclo de vida da API Meet Media

As imagens a seguir mostram o ciclo de vida da API Meet Media:

  • O bot da API Meet Media tenta entrar no site de terceiros.
    Figura 1. O bot da API Meet Media tenta entrar no site de terceiros. A conexão é rejeitada quando há contas de menores de idade.
  • Reuniões criptografadas e com marca-d'água.
    Figura 2. As reuniões podem ser marcadas como criptografadas e ter uma marca d'água. A API Meet Media não pode ser conectada quando uma reunião tem criptografia ou marca-d'água.
  • Verifique se a configuração de administrador está correta.
    Figura 3. Verifique se a configuração de administrador está correta.
  • Configure a reunião no Google Agenda.
    Figura 4. Configure a reunião no Google Agenda. O organizador precisa dar permissão ao app de terceiros na configuração da Agenda. Caso contrário, a conexão será rejeitada.
  • Mudança de configuração durante a chamada.
    Figura 5. Uma mudança de configuração durante a chamada. Se o organizador decidir desativar a configuração da API Meet Media durante uma chamada, a conexão será interrompida.
  • O iniciador precisa estar presente durante as reuniões com o consumidor.
    Figura 6. Se o proprietário da reunião tiver uma conta pessoal (uma conta que termina em @gmail.com), o iniciador precisa estar presente para que a reunião dê consentimento. Caso contrário, a conexão será rejeitada.
  • Conexão estabelecida.
    Figura 7. Depois que a conexão é estabelecida, o organizador, o coorganizador ou qualquer participante da mesma organização que o organizador vê a caixa de diálogo de início.
  • Qualquer pessoa pode interromper a API Meet Media durante a chamada.
    Figura 8. Qualquer pessoa pode interromper a API Meet Media durante a chamada.

Termos comuns

Número do projeto do Cloud
Um identificador int64 imutável gerado 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 normalmente consideram esse cenário como uma única reunião.
Canal de dados de recursos de 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.

Fonte contribuinte (CSRC)

Com fluxos de mídia virtuais, não é possível presumir que um fluxo de mídia sempre aponta para o mesmo participante. O valor CSRC no cabeçalho de cada pacote RTP identifica a verdadeira origem do pacote.

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

Canais de dados

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

Estabelecimento de conectividade interativa (ICE)

Um protocolo para estabelecer conectividade, encontrar todas as rotas possíveis para dois computadores se comunicarem por rede ponto a ponto (P2P) e garantir que você permaneça conectado.

Transmissão de mídia

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

Faixa de stream 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 Secure Real-time Transport Protocol (SRTP) bidirecional geralmente consiste em duas faixas de fluxo de mídia, saída do peer local para o 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ões) onde uma conferência é realizada. Só é possível realizar uma videoconferência ativa em um espaço por vez. Um espaço para reuniões também ajuda os usuários a se encontrar e encontrar recursos compartilhados.

Participante

Uma pessoa que participa de uma conferência ou 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.

Transmissões relevantes

Há um limite para o número de fluxos de áudio virtuais e fluxos de vídeo virtuais que um cliente pode abrir.

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

Unidade de encaminhamento seletivo (SFU)

Uma unidade de encaminhamento seletivo (SFU, na sigla em inglês) é um componente do lado do servidor em conferências WebRTC que gerencia a distribuição de fluxos de mídia. Os participantes se conectam apenas à SFU, que encaminha seletivamente streams 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ões (SDP)

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

Resposta do SDP

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

Oferta de SDP

O SDP inicial no fluxo de negociação ponto a ponto de oferta-resposta. A oferta é criada pelo peer iniciador e determina os termos da sessão ponto a ponto. 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 proponente 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 RTP (Real-time Transport Protocol). No WebRTC, os SSRCs são usados para distinguir entre diferentes fluxos de mídia originados de participantes diferentes ou até mesmo faixas diferentes do mesmo participante (como câmeras diferentes).

RtpTransceiver

Conforme detalhado em RFC 8829, um transceptor é 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 determinado 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 transceptor do peer remoto é mapeado para o RtpReceiver do peer local.

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

Fluxos de mídia virtual

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