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.
    • Audiostreams, die in Meet-Konferenzen generiert wurden, 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.

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 Channel 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 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 Konferenz 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 Gerät in einem Konferenzraum, das mit einem Anruf verbunden ist. 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 Anforderungen an die Clientverarbeitung und die Bandbreite 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 übertragen werden sollen. Hinweis: In der SDP-Antwort können keine gesendeten Streams aus dem ursprünglichen Angebot hinzugefügt werden. Wenn ein Angebotspartner 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.

Ein einzelner Transceiver wird einer einzelnen Medienbeschreibung im SDP zugeordnet und durch diese 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.