A API Google Meet Media permite acessar mídia em tempo real de conferências do Google Meet. Isso possibilita 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 superfície.
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:
- Consumam streams de vídeo.
- Consumam streams de áudio.
- Consumam metadados de participantes.
Ciclo de vida da API Meet Media
As imagens a seguir mostram o ciclo de vida da API Meet Media:
-
Figura 1. O bot da API Meet Media tenta participar do site de terceiros. A conexão é rejeitada quando há contas de menores de idade. -
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 uma marca d'água. -
Figura 3. Verifique se a configuração do administrador está correta. -
Figura 4. Configure a reunião no Google Agenda. O organizador precisa conceder permissão ao app de terceiros na configuração do Agenda. Caso contrário, a conexão será rejeitada. -
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. -
Figura 6. Se o proprietário da reunião tiver uma conta de consumidor (uma conta que termina em @gmail.com), o iniciador precisará estar presente para que a reunião conceda consentimento. Caso contrário, a conexão será rejeitada. -
Figura 7. Depois que a conexão for estabelecida, o organizador, o coorganizador ou qualquer participante da mesma organização que o organizador verá a caixa de diálogo de inicialização. -
Figura 8. Qualquer pessoa pode interromper a API Meet Media durante a chamada.
Requisitos do consentidor
Os apps da API Meet Media só são permitidos em uma reunião se houver alguém em a chamada que possa dar consentimento em nome da reunião.
Para reuniões do Google Workspace
Para dar consentimento em reuniões do Google Workspace, você precisa estar na organização proprietária da reunião. Na maioria dos casos, o proprietário da reunião é o mesmo que o organizador. Se o organizador ou o iniciador estiver na reunião e estiver na organização proprietária da reunião, a caixa de diálogo de início será mostrada preferencialmente.
Para reuniões de consumidores
Para reuniões organizadas por contas do Gmail, o iniciador precisa estar na reunião para dar consentimento.
Termos comuns
- Número do projeto do Cloud
- Um identificador
int64imutá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 de uma chamada gerada pelo servidor em um espaço de reunião. Os usuários normalmente consideram esse cenário 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 de contribuição (CSRC)
Com streams de mídia virtuais, não é possível presumir que um stream 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 participa. Esse valor permanece constante até que ele saia.
- 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 troca de dados a aplicativos WebRTC.
- Estabelecimento de conectividade interativa (ICE, na sigla em inglês)
Um protocolo para estabelecer conectividade, encontrar todas as rotas possíveis para que dois computadores se comuniquem por meio de redes ponto a ponto (P2P) e garantir que você permaneça conectado.
- Stream de mídia
Um stream de mídia do WebRTC representa um fluxo de dados de mídia, normalmente á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 uma faixa de áudio.
- Faixa de stream de mídia
Consiste em um fluxo unidirecional de pacotes RTP. Uma faixa de stream de mídia pode ser de áudio ou vídeo, mas não ambas. Uma conexão Secure Real-time Transport Protocol (SRTP) bidirecional normalmente consiste em duas faixas de stream de mídia, saída do par local para o remoto e entrada do par remoto para o local.
- Espaço para reuniões
Um lugar virtual ou um objeto persistente (como uma sala de reunião) onde uma conferência é realizada. Apenas uma conferência ativa pode ser realizada 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 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 para o número de streams de áudio virtuais e streams 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 streams de áudio e vídeo dos participantes considerados "mais relevantes". A relevância é determinada por várias características, como o compartilhamento de tela e a frequência com que um participante falou.
- Unidade de encaminhamento seletivo (SFU)
Uma unidade de encaminhamento seletivo (SFU) é um componente do lado do servidor em conferências WebRTC que gerencia a distribuição de streams 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, na sigla em inglês)
O mecanismo de sinalização que o WebRTC usa para negociar uma conexão P2P.
RFC 8866rege-o.- Resposta do SDP
A resposta a uma oferta de SDP. A resposta rejeita ou aceita todos os streams recebidos do par remoto. Ele também negocia quais streams planeja transmitir de volta ao par de ofertas. É importante observar que a resposta do SDP não pode adicionar streams sinalizados da oferta inicial. Por exemplo, se um par de ofertas sinalizar que aceita até três streams de áudio do par remoto, esse par remoto não poderá sinalizar quatro streams de áudio para transmissão.
- Oferta de SDP
O SDP inicial no fluxo de negociação ponto a ponto de oferta e resposta. A oferta é criada pelo par de inicialização e dita 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 streams de áudio ou vídeo que o ofertante está enviando (ou capaz de receber) e se os canais de dados serão abertos.
- Fonte de sincronização (SSRC)
Um SSRC é um identificador de 32 bits que identifica exclusivamente uma única fonte de um stream de mídia em uma sessão RTP (Real-time Transport Protocol). No WebRTC, os SSRCs são usados para distinguir entre diferentes streams de mídia originários 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 streams 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
RtpSendere umRtpReceiver.Como o RTP é bidirecional, cada par tem a própria instância de transceptor para a mesma conexão RTP. O
RtpSenderde um determinado transceptor para o par local é mapeado para oRtpReceiverde um transceptor específico no par remoto. O inverso também é verdadeiro. ORtpSenderdo mesmo transceptor do par remoto é mapeado para oRtpReceiverdo par local.Cada descrição de mídia tem o próprio transceptor dedicado. Portanto, uma sessão ponto a ponto com vários streams RTP tem vários transceptores com vários
RtpSenderseRtpReceivers para cada par.- Streams de mídia virtuais
Os streams de mídia virtuais são streams de mídia agregados gerados por uma unidade de encaminhamento seletivo (SFU) em conferências WebRTC. Em vez de cada participante enviar streams individuais para todos os outros, a SFU multiplexa streams de participantes selecionados em menos streams 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.
Temas relacionados
Para saber como começar a desenvolver um cliente da API Meet Media, siga as etapas em Introdução.
Para saber como configurar e executar um cliente de referência da API Meet Media, leia o Guia de início rápido do cliente de referência em C++.
Para uma visão geral conceitual, consulte Conceitos da API Meet Media.
Para saber mais sobre o WebRTC, consulte WebRTC para curiosos.
Para saber como desenvolver com as APIs do Google Workspace, incluindo o processamento de autenticação e autorização, consulte Desenvolver no Google Workspace.