Meet Media API – Übersicht

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

Anwendungsfälle

Apps, die in der Google Cloud Console registriert sind, können die Meet Media API verwenden, um eine Verbindung zu Meet-Videokonferenzen herzustellen. Dadurch können sie:

  • Videostreams ansehen
  • Audiostreams ansehen
  • Teilnehmermetadaten verwenden.

Lebenszyklus der Meet Media API

Die folgenden Bilder zeigen den Lebenszyklus der Meet Media API:

  • Der Meet Media API-Bot versucht, der Drittanbieter-Website beizutreten.
    Abbildung 1. Der Meet Media API-Bot versucht, der Drittanbieterwebsite beizutreten. Die Verbindung wird abgelehnt, wenn Konten von Minderjährigen vorhanden sind.
  • Verschlüsselte Videokonferenzen und Videokonferenzen mit Wasserzeichen.
    Abbildung 2: Besprechungen können als verschlüsselt markiert werden und ein Wasserzeichen enthalten. Die Meet Media API kann nicht verbunden werden, wenn eine Besprechung 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 Besprechung in Google Kalender ein.
    Abbildung 4: Richten Sie die Besprechung 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 beschließt, die Einstellung „Meet Media API“ während eines Anrufs zu deaktivieren, wird die Verbindung beendet.
  • Der Initiator muss bei Verbraucherbesprechungen anwesend sein.
    Abbildung 6. Wenn der Inhaber der Besprechung ein Privatnutzerkonto (ein Konto, das auf @gmail.com endet) hat, muss der Initiator an der Besprechung teilnehmen, um die Einwilligung zu geben. 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 den Initiierungsdialog.
  • Jeder kann die Meet Media API während des Anrufs beenden.
    Abbildung 8. Jeder kann die Meet Media API während des Anrufs beenden.

Anforderungen an Einwilligende

Apps, die die Meet Media API verwenden, dürfen nur dann an einer Besprechung teilnehmen, wenn sich in der Besprechung eine Person befindet, die im Namen der Besprechung die Einwilligung erteilen darf.

Für Google Workspace-Videokonferenzen

Damit Sie in Google Workspace-Besprechungen die Einwilligung erteilen können, müssen Sie der Organisation angehören, die die Besprechung besitzt. In den meisten Fällen ist der Eigentümer der Besprechung derselbe wie der Organisator. Wenn der Organisator oder der Initiator an der Besprechung teilnimmt und zur Organisation gehört, die die Besprechung besitzt, wird ihm das Startdialogfeld bevorzugt angezeigt.

Für Verbraucherbesprechungen

Bei Besprechungen, die über Gmail-Konten organisiert werden, muss der Initiator an der Besprechung teilnehmen, um die Einwilligung zu geben.

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 vom Server generierte Instanz eines Anrufs in einem Besprechungsbereich. Nutzer betrachten dieses Szenario in der Regel als eine einzelne Besprechung.
Konferenzressourcendaten-Channel

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

Für jeden Ressourcentyp kann ein eigener Datenkanal geöffnet werden. Sobald der Kanal geöffnet ist, kann der Client Anfragen über den Kanal senden. Ressourcenaktualisierungen werden über denselben Channel übertragen.

Contributing Source (CSRC)

Bei virtuellen Media-Streams können Sie nicht davon ausgehen, dass ein Media-Stream immer auf denselben Teilnehmer verweist. Der CSRC-Wert im Header jedes RTP-Pakets gibt die tatsächliche Quelle des Pakets an.

In Meet wird jedem Teilnehmer einer Videokonferenz beim Beitritt ein eindeutiger CSRC-Wert zugewiesen. Dieser Wert bleibt konstant, bis sie die Sitzung beenden.

Datenchannels

WebRTC-Datenkanäle ermöglichen den Austausch beliebiger Daten (Text, Dateien usw.) unabhängig von Audio- und Videostreams. Data Channels verwenden dieselbe Verbindung wie Media Streams und bieten so eine effiziente Möglichkeit, WebRTC-Anwendungen den Datenaustausch hinzuzufügen.

Interactive Connectivity Establishment (ICE)

Ein Protokoll zum Herstellen einer Verbindung, zum Finden aller möglichen Routen für die Kommunikation zwischen zwei Computern über Peer-to-Peer-Netzwerke (P2P) und zum Aufrechterhalten der Verbindung.

Medienstream

Ein WebRTC-Media-Stream stellt einen Fluss von Media-Daten dar, in der Regel Audio- oder Videodaten, die von einem Gerät wie einer Kamera oder einem Mikrofon erfasst werden. Sie besteht aus einem oder mehreren Media-Stream-Tracks, die jeweils eine einzelne Medienquelle wie einen Video- oder Audio-Track darstellen.

Media-Stream-Track

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

Konferenzraum

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

Teilnehmer

Eine Person, die an einer Videokonferenz teilnimmt oder den Companion-Modus verwendet, eine Person, die als Zuschauer teilnimmt, oder ein Raumgerät, das mit einem Anruf verbunden ist. Wenn ein Teilnehmer der Videokonferenz beitritt, wird ihm eine eindeutige ID zugewiesen.

Relevante Streams

Es gibt eine Obergrenze für die Anzahl der virtuellen Audio- und virtuellen Videostreams, die ein Client öffnen kann.

Die Anzahl der Teilnehmer in einer Videokonferenz kann diese Zahl durchaus überschreiten. In diesen Situationen übertragen Meet-Server die Audio- und Videostreams der Teilnehmer, die als „am relevantesten“ eingestuft werden. Die Relevanz wird anhand verschiedener Merkmale bestimmt, z. B. der Bildschirmfreigabe und 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 Media-Streams verwaltet. 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 Videokonferenzen ermöglicht.

Session Description Protocol (SDP)

Der Signalmechanismus, den WebRTC zum Aushandeln einer P2P-Verbindung verwendet. RFC 8866

SDP-Antwort

Die Antwort auf ein SDP-Angebot. Die Antwort lehnt alle empfangenen Streams vom Remote-Peer ab oder akzeptiert sie. Außerdem wird ausgehandelt, welche Streams an den anbietenden Peer zurückgesendet werden sollen. Es ist wichtig zu beachten, dass der SDP-Antwort keine signalisierten Streams aus dem ursprünglichen Angebot hinzugefügt werden können. Wenn ein anbietender Peer signalisiert, dass er bis zu drei Audio-Streams von seinem Remote-Peer akzeptiert, kann dieser Remote-Peer nicht vier Audio-Streams für die Übertragung signalisieren.

SDP-Angebot

Das erste SDP im Peer-to-Peer-Verhandlungsablauf für Angebot und Antwort. Das Angebot wird vom initiierenden Peer erstellt und legt die Bedingungen der Peer-to-Peer-Sitzung fest. Das Angebot wird immer vom Meet Media API-Client erstellt und an die 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.

Synchronisierungsquelle (SSRC)

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

RtpTransceiver

Wie in 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. Der RtpSender desselben Transceivers des Remote-Peers wird dem 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-Elementen für jeden Peer.

Virtuelle Media-Streams

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