Meet Media API – Übersicht

Mit der Google Meet Media API können Sie auf Echtzeitmedien aus Google Meet-Konferenzen zugreifen. Dies ermöglicht eine Vielzahl von Anwendungsfällen, z. B. Apps, die Aufgaben dokumentieren, Echtzeitdaten zum aktuellen Meeting liefern oder Audio- und Videoinhalte auf eine neue Oberfläche streamen.

Anwendungsfälle

In der Google Cloud Console registrierte Apps können über die Meet Media API eine Verbindung zu Meet-Konferenzen herstellen. So sind folgende Aktionen möglich:

  • Videostreams ansehen Beispiel:
    • Videostreams, die in Meet-Konferenzen generiert wurden, in Ihre eigenen KI-Modelle einspeisen.
    • Streams nach benutzerdefinierten Aufnahmen filtern
  • Audiostreams abspielen Beispiel:
    • Sie können Audioinhalte direkt in Gemini einspeisen und Ihren eigenen KI-Chatbot für Besprechungen erstellen.
    • In Meet-Konferenzen generierte Audiostreams in Ihren eigenen Transkriptionsservice einspeisen
    • Untertitel in verschiedenen Sprachen generieren
    • Erstelle aus den aufgenommenen Audiodaten modellgegenerte Gebärdensprachfeeds.
    • Erstellen Sie eigene Geräuschunterdrückungsmodelle, um Hintergrundgeräusche und Artefakte aus der Videokonferenz zu entfernen.
  • Teilnehmermetadaten verwenden Beispiel:
    • Erkennen, welche Teilnehmer an der Konferenz teilnehmen, um bessere Informationen und Analysen zu erhalten.

Meet Media API-Lebenszyklus

Die folgenden Bilder zeigen den Lebenszyklus der Meet Media API:

  • Der Meet Media API-Bot versucht, auf der Website des Drittanbieters beizutreten.
    Abbildung 1. Der Meet Media API-Bot versucht, auf der Website des Drittanbieters beizutreten. Die Verbindung wird abgelehnt, wenn Konten von Minderjährigen vorhanden sind.
  • Verschlüsselte Videokonferenzen und Videokonferenzen mit einem Wasserzeichen
    Abbildung 2 Videokonferenzen können als verschlüsselt gekennzeichnet und mit einem Wasserzeichen versehen werden. Die Meet Media API kann nicht verbunden werden, wenn eine Videokonferenz verschlüsselt ist oder ein Wasserzeichen enthält.
  • Prüfen Sie, ob die Administratoreinstellung korrekt ist.
    Abbildung 3 Prüfen Sie, ob die Administratoreinstellung korrekt ist.
  • Richten Sie die Videokonferenz in Google Kalender ein.
    Abbildung 4: Richten Sie die Videokonferenz in Google Kalender ein. Der Host muss der Drittanbieter-App in den Kalendereinstellungen die Berechtigung erteilen, andernfalls wird die Verbindung abgelehnt.
  • Einstellungsänderung während des Anrufs
    Abbildung 5 Eine Einstellungsänderung während des Anrufs. Wenn der Organisator die Einstellung für die Meet Media API während eines Anrufs deaktiviert, wird die Verbindung beendet.
  • Der Initiator muss bei den Treffen mit den Nutzern anwesend sein.
    Abbildung 6 Wenn der Organisator des Meetings ein Privatnutzerkonto hat (ein Konto, das auf @gmail.com endet), muss der Initiator des Meetings anwesend sein, um seine Einwilligung zu erteilen. Andernfalls wird die Verbindung abgelehnt.
  • Verbindung hergestellt.
    Abbildung 7. Sobald die Verbindung hergestellt ist, sehen der Organisator, der Co-Organisator oder alle Teilnehmer in derselben Organisation wie der Organisator das Dialogfeld zum Starten.
  • Jeder Teilnehmer kann die Meet Media API während des Anrufs beenden.
    Abbildung 8 Jeder Teilnehmer kann die Meet Media API während des Anrufs beenden.

Allgemeine Begriffe

Cloud-Projektnummer
Eine unveränderliche generierte int64-Kennung für ein Google Cloud-Projekt. Diese Werte werden von der Google Cloud Console für jede registrierte App generiert.
Konferenz
Eine servergenerierte Instanz eines Anrufs in einem Videokonferenzbereich. Nutzer betrachten dieses Szenario in der Regel als ein einziges Meeting.
Conference Resource Data Channel

Anstatt Ressourcen wie bei der Google Meet REST API über HTTP anzufordern, fordern Meet Media API-Clients Ressourcen über Datenkanäle vom Server an.

Für jeden Ressourcentyp kann ein spezieller Datenkanal geöffnet werden. Danach kann der Client Anfragen über den Kanal senden. Ressourcenaktualisierungen werden über denselben Kanal übertragen.

Mitwirkende Quelle (Contributing Source, CSRC)

Bei virtuellen Medienstreams kann nicht davon ausgegangen werden, dass ein Medienstream immer auf denselben Teilnehmer verweist. Der CSRC-Wert im Header jedes RTP-Pakets gibt die tatsächliche Quelle des Pakets an.

Meet weist jedem Teilnehmer einer Konferenz beim Beitritt einen eindeutigen CSRC-Wert zu. Dieser Wert bleibt konstant, bis der Nutzer die Website verlässt.

Datenkanäle

WebRTC-Datenkanäle ermöglichen den Austausch beliebiger Daten (Text, Dateien usw.) unabhängig von Audio- und Videostreams. Datenkanäle verwenden dieselbe Verbindung wie Medienstreams. So können WebRTC-Anwendungen effizient um einen Datenaustausch erweitert werden.

Interactive Connectivity Establishment (ICE)

Ein Protokoll zum Herstellen einer Verbindung, das alle möglichen Routen für die Kommunikation zwischen zwei Computern über ein Peer-to-Peer-Netzwerk (P2P) findet und dann dafür sorgt, dass die Verbindung aufrechterhalten wird.

Medienstream

Ein WebRTC-Medienstream stellt einen Mediendatenfluss dar, in der Regel Audio- oder Videodaten, die von einem Gerät wie einer Kamera oder einem Mikrofon erfasst werden. Er besteht aus einem oder mehreren Medienstream-Tracks, die jeweils eine einzelne Medienquelle wie einen Video- oder Audiotrack repräsentieren.

Mediastream-Track

Besteht aus einem einzelnen, unidirektionalen Fluss von RTP-Paketen. Ein Mediastream-Track kann Audio oder Video sein, aber nicht beides. Eine bidirektionale Secure Real-time Transport Protocol-Verbindung (SRTP) besteht in der Regel aus zwei Medienstream-Tracks, einem ausgehenden Track vom lokalen zum Remote-Peer und einem eingehenden Track vom Remote-Peer zum lokalen Peer.

Konferenzraum

Ein virtueller Ort oder ein dauerhaftes Objekt (z. B. ein Konferenzraum), an dem eine Konferenz stattfindet. In einem Gruppenbereich kann immer nur eine aktive Videokonferenz stattfinden. Ein Gruppenbereich hilft Nutzern auch, sich zu treffen und gemeinsame Ressourcen zu finden.

Teilnehmer

Eine Person, die an einer Videokonferenz teilnimmt oder den Companion-Modus verwendet, sich als Zuschauer ansieht oder ein mit einem Anruf verbundenes Konferenzraumgerät. Wenn ein Teilnehmer der Konferenz beitritt, wird ihm eine eindeutige ID zugewiesen.

Relevante Streams

Die Anzahl der virtuellen Audiostreams und virtuellen Videostreams, die ein Client öffnen kann, ist begrenzt.

Es ist durchaus möglich, dass die Anzahl der Teilnehmer in einer Videokonferenz diese Zahl überschreitet. In diesen Fällen übertragen Meet-Server die Audio- und Videostreams der Teilnehmer, die als „am relevantesten“ eingestuft werden. Die Relevanz wird anhand verschiedener Merkmale bestimmt, z. B. anhand der Bildschirmfreigabe und der Frage, wie lange es her ist, dass ein Teilnehmer gesprochen hat.

Selective Forwarding Unit (SFU)

Eine Selective Forwarding Unit (SFU) ist eine serverseitige Komponente in WebRTC-Konferenzen, die die Verteilung von Medienstreams verwaltet. Die Teilnehmer stellen nur eine Verbindung zur SFU her, die relevante Streams selektiv an andere Teilnehmer weiterleitet. Dadurch werden die Clientverarbeitung und der Bandbreitenbedarf reduziert, was skalierbare Konferenzen ermöglicht.

Session Description Protocol (SDP)

Der Signalisierungsmechanismus, mit dem WebRTC eine P2P-Verbindung aushandelt. RFC 8866 gilt.

SDP-Antwort

Die Antwort auf ein SDP-Angebot. Mit der Antwort werden alle empfangenen Streams vom Remote-Peer abgelehnt oder akzeptiert. Außerdem wird ausgehandelt, welche Streams an das anbietende Peer-Gerät zurückgesendet werden sollen. Hinweis: In der SDP-Antwort können keine gesendeten Streams aus dem ursprünglichen Angebot hinzugefügt werden. Wenn ein Angebots-Peer signalisiert, dass er bis zu drei Audiostreams von seinem Remote-Peer akzeptiert, kann dieser Remote-Peer keine vier Audiostreams für die Übertragung signalisieren.

SDP-Angebot

Das ursprüngliche SDP im Peer-to-Peer-Verhandlungsablauf für Angebot und Antwort. Das Angebot wird vom ausführenden Peer erstellt und legt die Bedingungen der Peer-to-Peer-Sitzung fest. Das Angebot wird immer vom Meet Media API-Client erstellt und an Meet-Server gesendet.

Ein Angebot kann beispielsweise die Anzahl der Audio- oder Videostreams angeben, die der Anbieter sendet (oder empfangen kann) und ob Datenkanäle geöffnet werden sollen.

Synchronisationsquelle (SSRC)

Eine SSRC ist eine 32-Bit-Kennung, die eine einzelne Quelle eines Medienstreams innerhalb einer RTP-Sitzung (Real-Time Transport Protocol) eindeutig identifiziert. In WebRTC werden SSRCs verwendet, um zwischen verschiedenen Medienstreams zu unterscheiden, die von verschiedenen Teilnehmern stammen, oder sogar zwischen verschiedenen Tracks desselben Teilnehmers (z. B. von verschiedenen Kameras).

RtpTransceiver

Wie unter RFC 8829 beschrieben, ist ein Transceiver eine Abstraktion von RTP-Streams in einer Peer-to-Peer-Sitzung.

Einem einzelnen Transceiver wird eine einzelne Medienbeschreibung im SDP zugeordnet und beschrieben. Ein Transceiver besteht aus einem RtpSender und einem RtpReceiver.

Da RTP bidirektional ist, hat jeder Peer eine eigene Transceiver-Instanz für dieselbe RTP-Verbindung. Die RtpSender eines bestimmten Transceivers für den lokalen Peer wird der RtpReceiver eines bestimmten Transceivers im Remote-Peer zugeordnet. Auch das Gegenteil kann der Fall sein. Die RtpSender desselben Transceivers des Remote-Peers wird der RtpReceiver des lokalen Peers zugeordnet.

Jede Medienbeschreibung hat einen eigenen Transceiver. Daher hat eine Peer-to-Peer-Sitzung mit mehreren RTP-Streams mehrere Transceiver mit mehreren RtpSenders und RtpReceiver für jeden Peer.

Virtuelle Medienstreams

Virtuelle Medienstreams sind aggregierte Medienstreams, die von einer Selective Forwarding Unit (SFU) in WebRTC-Konferenzen generiert werden. Anstatt dass jeder Teilnehmer einzelne Streams an alle anderen sendet, multiplext die SFU ausgewählte Teilnehmerstreams auf weniger ausgehende virtuelle Streams. Dadurch wird die Verbindungstopologie vereinfacht und die Belastung der Teilnehmer reduziert, was skalierbare Konferenzen ermöglicht. Jeder virtuelle Stream kann Medien von mehreren Teilnehmern enthalten, die dynamisch von der SFU verwaltet werden.