Panoramica dell'API Meet Media

L'API Google Meet Media ti consente di accedere ai contenuti multimediali in tempo reale delle conferenze di Google Meet. Ciò consente una serie di casi d'uso, ad esempio app che documentano gli elementi di azione, offrono approfondimenti in tempo reale sulla riunione in corso o trasmettono audio e video su una nuova piattaforma.

Casi d'uso

Le app registrate nella console Google Cloud possono utilizzare l'API Meet Media per collegarsi alle conferenze di Meet, in modo da:

  • Utilizzare stream video. Ad esempio:
    • Alimenta gli stream video generati nelle conferenze di Meet con i tuoi modelli di IA.
    • Filtra gli stream per le registrazioni personalizzate.
  • Utilizza gli stream audio. Ad esempio:
    • Carica l'audio direttamente in Gemini e crea il tuo chatbot AI per le riunioni.
    • Alimentare gli stream audio generati nelle conferenze di Meet nel tuo servizio di trascrizione
    • Genera sottotitoli codificati in varie lingue.
    • Creare feed di lingua dei segni generati dal modello dall'audio acquisito.
    • Crea i tuoi modelli di riduzione del rumore per rimuovere gli elementi di sfondo e i disturbi dalla conferenza.
  • Utilizzare i metadati dei partecipanti. Ad esempio:
    • Rileva i partecipanti alla conferenza, consentendo una migliore intelligence e analisi.

Termini comuni

Numero di progetto Cloud
Un identificatore int64 generato immutabile per un progetto Google Cloud. Questi valori vengono generati dalla console Google Cloud per ogni app registrata.
Conferenza
Un'istanza di una chiamata generata dal server all'interno di uno spazio riunioni. In genere, gli utenti considerano questo scenario come una singola riunione.
Canale di dati sulle risorse per le conferenze

Invece di richiedere risorse tramite HTTP, come con l'API REST di Google Meet, i client dell'API Meet Media richiedono risorse dal server tramite canali di dati.

È possibile aprire un canale di dati dedicato per ogni tipo di risorsa. Una volta aperto, il client può inviare richieste tramite il canale. Gli aggiornamenti delle risorse verranno trasmessi tramite lo stesso canale.

Contributing Source (CSRC)

Con gli stream multimediali virtuali, non puoi assumere che uno stream multimediale sposti sempre lo stesso partecipante. Il valore CSRC nell'intestazione di ogni pacchetto RTP identifica la vera sorgente del pacchetto.

Quando partecipano, a ogni utente di una conferenza viene assegnato un valore CSRC univoco. Questo valore rimane costante fino al loro abbandono.

Canali di dati

I canali di dati WebRTC consentono lo scambio di dati arbitrari (testo, file e così via) indipendentemente dagli stream audio e video. I canali di dati utilizzano la stessa connessione degli stream media, offrendo un modo efficiente per aggiungere lo scambio di dati alle applicazioni WebRTC.

Interactive Connectivity Establishment (ICE)

Un protocollo per stabilire la connettività, trovare tutti i percorsi possibili per consentire a due computer di comunicare tra loro tramite la rete peer-to-peer (P2P) e poi assicurarsi che la connessione rimanga attiva.

Stream di contenuti multimediali

Uno stream multimediale WebRTC rappresenta un flusso di dati multimediali, in genere audio o video, acquisiti da un dispositivo come una videocamera o un microfono. È costituito da una o più tracce stream multimediali, ognuna delle quali rappresenta una singola sorgente di contenuti multimediali, ad esempio una traccia video o audio.

Traccia stream multimediale

Consiste in un singolo flusso unidirezionale di pacchetti RTP. Una traccia dello stream multimediale può essere audio o video, ma non entrambe. Una connessione Secure Real-time Transport Protocol (SRTP) bidirezionale è in genere composta da due tracce di stream multimediali, in uscita dal peer locale al peer remoto e in entrata dal peer remoto al peer locale.

Spazio per le riunioni

Un luogo virtuale o un oggetto persistente (ad esempio una sala riunioni) in cui si svolge una conferenza. In un determinato momento, in un unico spazio può essere organizzata una sola conferenza attiva. Uno spazio di incontro aiuta inoltre gli utenti a incontrarsi e trovare risorse condivise.

Partecipante

Una persona che ha partecipato a una conferenza o che utilizza la modalità Complementare, che guarda come spettatore o un dispositivo della sala connesso a una chiamata. Quando un partecipante si unisce alla conferenza, viene assegnato un ID univoco.

Stream pertinenti

Esiste un limite al numero di flussi audio virtuali e flussi video virtuali che un client può aprire.

È possibile che il numero di partecipanti in una conferenza superi questo numero. In queste situazioni, i server di Meet trasmettono gli stream audio e video dei partecipanti ritenuti "più pertinenti". La pertinenza viene determinata in base a varie caratteristiche, come la condivisione dello schermo e la data dell'ultima volta che un partecipante ha parlato.

Unità di inoltro selettivo (SFU)

Un'unità di inoltro selettivo (SFU) è un componente lato server nelle conferenze WebRTC che gestisce la distribuzione degli stream multimediali. I partecipanti si connettono solo all'unità SFU, che inoltra in modo selettivo gli stream pertinenti ad altri partecipanti. In questo modo si riducono le esigenze di elaborazione e larghezza di banda del client, consentendo conferenze scalabili.

Session Description Protocol (SDP)

Il meccanismo di segnalazione utilizzato da WebRTC per negoziare una connessione P2P. RFC 8866 ne regola l'utilizzo.

Risposta SDP

La risposta a un'offerta SDP. La risposta rifiuta o accetta qualsiasi stream ricevuto dal peer remoto. Inoltre, negozia gli stream che intende trasmettere al peer dell'offerta. È importante notare che la risposta SDP non può aggiungere stream segnalati dall'offerta iniziale. Anecdotally, if an offering peer signals it accepts up to three audio streams from its remote peer, this remote peer can't signal four audio streams for transmission.

Offerta SDP

L'SDP iniziale nel flusso di negoziazione peer-to-peer di offerta e risposta. L'offerta viene creata dal peer che avvia la connessione e detta i termini della sessione peer-to-peer. L'offerta viene sempre creata dal client dell'API Meet Media e inviata ai server di Meet.

Ad esempio, un'offerta può indicare il numero di stream audio o video che l'offerente sta inviando (o è in grado di ricevere) e se i canali di dati devono essere aperti.

Origine sincronizzazione (SSRC)

Un SSRC è un identificatore a 32 bit che identifica in modo univoco una singola sorgente di un stream multimediale all'interno di una sessione RTP (Real-time Transport Protocol). In WebRTC, gli SSRC vengono utilizzati per distinguere tra diversi stream multimediali originati da partecipanti diversi o anche da tracce diverse dello stesso partecipante (ad esempio videocamere diverse).

RtpTransceiver

Come descritto in RFC 8829, un transceiver è un'astrazione degli stream RTP in una sessione peer-to-peer.

Un singolo transceiver è mappato e descritto da una singola descrizione media nell'SDP. Un transceiver è composto da un RtpSender e un RtpReceiver.

Poiché RTP è bidirezionale, ogni peer ha la propria istanza di transceiver per la stessa connessione RTP. Il RtpSender di un determinato transceiver per il peer locale è mappato al RtpReceiver di un transceiver specifico nel peer remoto. Questo è vero anche in caso contrario. Il RtpSender dello stesso transceiver del peer remoto è mappato al RtpReceiver del peer locale.

Ogni descrizione multimediale ha il proprio transceiver dedicato. Di conseguenza, una sessione peer-to-peer con più stream RTP ha più transceiver con più RtpSenders e RtpReceiver per ogni peer.

Virtual Media Streams

Gli stream di contenuti multimediali virtuali sono stream di contenuti multimediali aggregati generati da un'unità di inoltro selettivo (SFU) nelle conferenze WebRTC. Invece che ogni partecipante invii singoli stream a tutti gli altri, l'SFU multiplexa gli stream dei partecipanti selezionati in un numero inferiore di stream virtuali in uscita. In questo modo, la topologia di connessione viene semplificata e il carico sui partecipanti viene ridotto, consentendo conferenze scalabili. Ogni stream virtuale può contenere contenuti multimediali di più partecipanti, gestiti dinamicamente dall'SFU.