Descripción general de la API de Meet Media

La API de Google Meet Media te permite acceder a contenido multimedia en tiempo real de las conferencias de Google Meet. Esto habilita una variedad de casos de uso, como apps que documentan elementos de acción, ofrecen estadísticas en tiempo real sobre la reunión actual o transmiten audio y video a una plataforma nueva.

Casos de uso

Las apps registradas en la consola de Google Cloud pueden usar la API de Meet Media para conectarse a conferencias de Meet, lo que les permite hacer lo siguiente:

  • Consumir transmisiones de video Por ejemplo:
    • Transmite los flujos de video generados en las conferencias de Meet a tus propios modelos de IA.
    • Filtrar transmisiones para grabaciones personalizadas
  • Consumir transmisiones de audio Por ejemplo:
    • Envía audio directamente a Gemini y crea tu propio chatbot de IA para reuniones.
    • Envía transmisiones de audio generadas en conferencias de Meet a tu propio servicio de transcripción
    • Generar subtítulos en varios idiomas
    • Crear feeds de lenguaje de señas generados por el modelo a partir del audio capturado
    • Crea tus propios modelos de reducción de ruido para quitar el ruido de fondo y los artefactos ruidosos de la conferencia.
  • Consume metadatos de participantes. Por ejemplo:
    • Detectar qué participantes están en la conferencia, lo que permite obtener mejores estadísticas y análisis

Ciclo de vida de la API de Meet Media

En las siguientes imágenes, se muestra el ciclo de vida de la API de Meet Media:

  • El bot de la API de Meet Media intenta unirse al sitio web de terceros.
    Figura 1: El bot de la API de Meet Media intenta unirse al sitio web de terceros. Se rechaza la conexión cuando hay cuentas de menores de edad.
  • Reuniones encriptadas y reuniones con marca de agua
    Figura 2: Las reuniones se pueden marcar como encriptadas y tener una marca de agua. No se puede conectar la API de Meet Media cuando una reunión tiene encriptación o una marca de agua.
  • Asegúrate de que el parámetro de configuración del administrador sea correcto.
    Figura 3: Asegúrate de que el parámetro de configuración del administrador sea correcto.
  • Configura la reunión en Calendario.
    Figura 4: Configura la reunión en el Calendario. El organizador debe otorgar permiso a la app de terceros en la configuración del Calendario; de lo contrario, se rechazará la conexión.
  • Cambio de configuración durante la llamada.
    Figura 5: Cambio de configuración durante la llamada. Si el organizador decide desactivar el parámetro de configuración de la API de Meet Media durante una llamada, la conexión se detendrá.
  • El iniciador debe estar presente durante las reuniones con el cliente.
    Figura 6: Si el propietario de la reunión tiene una cuenta de consumidor (una cuenta que termina en @gmail.com), el iniciador debe estar presente para que la reunión dé su consentimiento; de lo contrario, se rechazará la conexión.
  • Se estableció la conexión.
    Figura 7. Una vez que se establece la conexión, el organizador, el coorganizador o cualquier participante de la misma organización que el organizador ven el diálogo de inicio.
  • Cualquier persona puede detener la API de Meet Media durante la llamada.
    Figura 8. Cualquier persona puede detener la API de Meet Media durante la llamada.

Términos comunes

Número del proyecto de Cloud
Es un identificador int64 inmutable generado para un proyecto de Google Cloud. La consola de Google Cloud genera estos valores para cada app registrada.
Conferencia
Es una instancia de una llamada generada por el servidor dentro de un espacio de reunión. Por lo general, los usuarios consideran que esta situación es una sola reunión.
Canal de datos de recursos de la conferencia

En lugar de solicitar recursos a través de HTTP, como con la API de REST de Google Meet, los clientes de la API de Meet Media solicitan recursos del servidor a través de canales de datos.

Se puede abrir un canal de datos exclusivo para cada tipo de recurso. Una vez abierto, el cliente puede enviar solicitudes a través del canal. Las actualizaciones de recursos se transmitirán por el mismo canal.

Fuente de contribución (CSRC)

Con los flujos de medios virtuales, no puedes suponer que un flujo de medios siempre apunta al mismo participante. El valor de CSRC en el encabezado de cada paquete RTP identifica la verdadera fuente del paquete.

Meet asigna a cada participante de una conferencia un valor de CSRC único cuando se une. Este valor permanece constante hasta que se va.

Canales de datos

Los canales de datos de WebRTC permiten el intercambio de datos arbitrarios (texto, archivos, etc.) independientemente de las transmisiones de audio y video. Los canales de datos usan la misma conexión que las transmisiones de medios, lo que proporciona una forma eficiente de agregar intercambio de datos a las aplicaciones de WebRTC.

Interactive Connectivity Establishment (ICE)

Es un protocolo para establecer la conectividad, encontrar todas las rutas posibles para que dos computadoras se comuniquen entre sí a través de redes punto a punto (P2P) y, luego, asegurarse de que permanezcas conectado.

Flujo de medios

Un flujo de medios de WebRTC representa un flujo de datos de medios, por lo general, audio o video, capturados desde un dispositivo, como una cámara o un micrófono. Consta de una o varias pistas de transmisión de medios, cada una de las cuales representa una sola fuente de medios, como una pista de video o una pista de audio.

Pista de transmisión de medios

Consta de un solo flujo unidireccional de paquetes RTP. Una pista de transmisión de medios puede ser de audio o video, pero no ambas. Por lo general, una conexión bidireccional del protocolo de transporte seguro en tiempo real (SRTP) consta de dos pistas de transmisión de medios: una de salida del par local al par remoto y otra de entrada del par remoto al par local.

Sala de reuniones

Es un lugar virtual o un objeto persistente (como una sala de reuniones) en el que se lleva a cabo una conferencia. Solo se puede realizar una conferencia activa en un espacio a la vez. Un espacio de reuniones también ayuda a los usuarios a reunirse y encontrar recursos compartidos.

Participante

Una persona que se unió a una conferencia o que usa el Modo complementario, que mira como espectador o un dispositivo de sala conectado a una llamada Cuando un participante se une a la conferencia, se le asigna un ID único.

Transmisiones relevantes

Existe un límite en la cantidad de transmisiones de audio virtuales y transmisiones de video virtuales que puede abrir un cliente.

Es muy posible que la cantidad de participantes en una conferencia supere este número. En estas situaciones, los servidores de Meet transmiten los flujos de audio y video de los participantes que se consideran "más relevantes". La relevancia se determina a partir de varias características, como el uso compartido de pantalla y la fecha en la que un participante habló por última vez.

Unidad de reenvío selectivo (SFU)

Una unidad de reenvío selectivo (SFU) es un componente del servidor en las conferencias de WebRTC que administra la distribución de transmisiones de medios. Los participantes se conectan solo a la SFU, que reenvía de forma selectiva las transmisiones pertinentes a otros participantes. Esto reduce el procesamiento del cliente y las necesidades de ancho de banda, lo que permite conferencias escalables.

Session Description Protocol (SDP)

Es el mecanismo de señalización que usa WebRTC para negociar una conexión P2P. RFC 8866 lo rige.

Respuesta de SDP

Es la respuesta a una oferta de SDP. La respuesta rechaza o acepta cualquier transmisión recibida del par remoto. También negocia qué transmisiones planea enviar de vuelta al par que ofrece el contenido. Es importante tener en cuenta que la respuesta del SDP no puede agregar transmisiones señalizadas desde la oferta inicial. De forma anecdótica, si un peer de oferta indica que acepta hasta tres transmisiones de audio de su peer remoto, este peer remoto no puede indicar cuatro transmisiones de audio para la transmisión.

Oferta de SDP

Es el SDP inicial en el flujo de negociación de igual a igual de oferta y respuesta. La oferta la crea el par que inicia la sesión y dicta las condiciones de la sesión peer-to-peer. El cliente de la API de Meet Media siempre crea la oferta y la envía a los servidores de Meet.

Por ejemplo, una oferta puede indicar la cantidad de transmisiones de audio o video que el oferente envía (o es capaz de recibir) y si se deben abrir canales de datos.

Fuente de sincronización (SSRC)

Un SSRC es un identificador de 32 bits que identifica de forma única una sola fuente de una transmisión de medios dentro de una sesión de RTP (Protocolo de transporte en tiempo real). En WebRTC, los SSRC se usan para distinguir entre diferentes transmisiones de medios que provienen de diferentes participantes o incluso diferentes pistas del mismo participante (como diferentes cámaras).

RtpTransceiver

Como se detalla en RFC 8829, un transceptor es una abstracción alrededor de los flujos de RTP en una sesión peer-to-peer.

Un solo transceptor se asigna a una sola descripción de medios en el SDP y se describe con ella. Un transceptor consta de un RtpSender y un RtpReceiver.

Dado que RTP es bidireccional, cada par tiene su propia instancia de transceptor para la misma conexión RTP. El RtpSender de un transceptor determinado para el par local se asigna al RtpReceiver de un transceptor específico en el par remoto. Lo opuesto también se cumple. El RtpSender del mismo transceptor del par remoto se asigna al RtpReceiver del par local.

Cada descripción de medios tiene su propio transceptor dedicado. Por lo tanto, una sesión punto a punto con varias transmisiones de RTP tiene varios transceptores con varios RtpSenders y RtpReceiver para cada par.

Transmisiones de medios virtuales

Los flujos de medios virtuales son flujos de medios agregados que genera una unidad de reenvío selectivo (SFU) en las conferencias de WebRTC. En lugar de que cada participante envíe transmisiones individuales a todos los demás, la SFU multiplexa las transmisiones de los participantes seleccionados en menos transmisiones virtuales salientes. Esto simplifica la topología de conexión y reduce la carga en los participantes, lo que permite conferencias escalables. Cada transmisión virtual puede contener contenido multimedia de varios participantes, que la SFU administra de forma dinámica.