Auf dieser Seite wird beschrieben, wie Sie ein Beispiel mit der C++-Referenz client implementierung einrichten und ausführen. Informationen zum TypeScript-Client finden Sie in der Kurzanleitung zum TypeScript-Referenzclient.
Vorbereitung
Für diese Kurzanleitung benötigen Sie Folgendes:
- Sie haben das GitHub Repository geklont.
- Ein Google Cloud-Projekt mit Google Meet REST API aktiviert.
- Ein Google Workspace-Konto.
Meet REST API aktivieren
Bevor Sie Google APIs verwenden können, müssen Sie sie in einem Google Cloud-Projekt aktivieren. Sie können eine oder mehrere APIs in einem einzelnen Google Cloud-Projekt aktivieren.Google Cloud Console
Aktivieren Sie in der Google Cloud Console die Meet REST API.
Bestätigen Sie, dass Sie die Meet REST API im richtigen Cloud-Projekt aktivieren, und klicken Sie dann auf Weiter.
Bestätigen Sie, dass Sie die Meet REST API aktivieren, und klicken Sie dann auf Aktivieren.
gcloud-CLI
Legen Sie gegebenenfalls das aktuelle Cloud-Projekt auf das von Ihnen erstellte fest:
gcloud config set project PROJECT_IDErsetzen Sie PROJECT_ID durch die Projekt-ID des Cloud-Projekts, das Sie erstellt haben.
Aktivieren Sie die Meet REST API:
gcloud services enable meet.googleapis.com
C++-Client erstellen
Die C++-Implementierung wird mit Generate Ninja (GN) erstellt. Weitere Informationen finden Sie in der WebRTC-Dokumentation.
Generieren Sie ein Passwort von Git bei Google und konfigurieren Sie Git.
Ändern Sie in der Befehlszeilenschnittstelle
<samples_location>in das Verzeichnis mit den Beispielen und führen Sie den folgenden Befehl aus. Dieser Befehl:- Ändert das Arbeitsverzeichnis in Ihr Basisverzeichnis.
- Erstellt im Basisverzeichnis ein Verzeichnis mit dem Namen
src. - Ändert das Arbeitsverzeichnis in
src. - Klonen Sie https://chromium.googlesource.com/chromium/tools/depot_tools.git aus Git in das Verzeichnis „src/“.
- Fügt das Verzeichnis
~/src/depot_toolsvorübergehend der Liste der Speicherorte hinzu, an denen die Shell nach ausführbaren Befehlen sucht. - Ändert das Arbeitsverzeichnis in das Verzeichnis „cpp“ am Speicherort Ihrer Beispiele.
- Führt das Shell-Skript
./build.shaus.
cd ~ mkdir src cd src git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=~/src/depot_tools:$PATH cd <samples_location>/cpp sh ./build.sh
OAuth-Tokens generieren
Um eine Verbindung zur Meet Media API herzustellen, muss Ihre App mit OAuth Zugriffstokens generieren. Weitere Informationen zum Zugriff auf Google APIs mit OAuth finden Sie unter Mit OAuth 2.0 auf Google APIs zugreifen.
Sie können den OAuth 2.0 Playground verwenden, um Tokens zu generieren. Beachten Sie dabei Folgendes:
- Verwenden Sie Ihre Client-ID und Ihre geheimen Anmeldedaten aus Ihrem Cloud-Projekt.
- Fordern Sie die richtigen Bereiche an.
- Melden Sie sich in einem Google-Konto an und gewähren Sie Zugriff.
Klicken Sie nach Abschluss auf die Schaltfläche Exchange authorization code for tokens (Autorisierungscode gegen Tokens austauschen) und kopieren Sie das generierte Zugriffstoken.
Videokonferenz starten
Starten Sie eine Videokonferenz mit demselben Nutzerkonto, mit dem Sie das OAuth-Token generiert haben. Kopieren Sie den Besprechungscode. Jetzt können Sie die Beispiele ausführen.
Beispielanwendungen
Das GitHub Repository bietet Beispiele für den Empfang von Medien- und Teilnehmer-Metadaten aus einer Videokonferenz.
In diesen Beispielen werden Daten für einen bestimmten Zeitraum erfasst (Standardeinstellung: 3 Sekunden) und in Dateien geschrieben.
Audiodateien liegen im PCM16-Format vor. Videodateien liegen im YUV420p-Format vor. Diese Dateien können mit einer Bibliothek wie FFmpeg wiedergegeben werden.
Da sich die Videoauflösung während einer Videokonferenz ändern kann, ist die Auflösung in den Namen der Videodateien enthalten.
Dateien mit Teilnehmer-Metadaten sind für Menschen lesbare Textdateien.
Beispiel für Medien eines einzelnen Nutzers
Das Beispiel für Medien eines einzelnen Nutzers ist eine einfache App, die sich auf das Erfassen von Audio- und Videodaten konzentriert. Im Beispiel wird nicht ermittelt, welcher Teilnehmer die Audio- und Videodaten erstellt hat. Daher kann die Verwendung dieses Beispiels in einer Videokonferenz mit mehr als einem Teilnehmer zu beschädigten Ausgaben führen.
Führen Sie Folgendes aus, um das Beispiel für Medien eines einzelnen Nutzers auszuführen:
Linux
$ sh ./run_multi.sh -- \
--meeting_space_id MEETING_SPACE_ID \
--oauth_token OAUTH_TOKEN
Standardmäßig wird eine einzelne Audiodatei unter /tmp/test_output_audio.pcm gespeichert.
Da sich die Auflösung von Videostreams während einer Videokonferenz ändern kann, werden möglicherweise mehrere Videodateien erstellt. Die Namen von Videodateien enthalten einen inkrementellen Zähler und die Auflösung für diese Datei. Wenn sich die Auflösung des Videostreams beispielsweise von 320 × 180 auf 240 × 135 und dann wieder auf 320 × 180 ändert, werden die folgenden Videodateien erstellt:
/tmp/test_output_video_0_320x180.pcm/tmp/test_output_video_1_240x135.pcm/tmp/test_output_video_2_320x180.pcm
(Optional) Ausgabedateien mit FFmpeg unter Linux und Mac wiedergeben
FFmpeg können erstellte Audio- und Video dateien wiedergegeben werden. Beispiele für Befehle:
Linux und Mac
# Audio
$ ffplay -f s16le -ar 48k -af aformat=channel_layouts=mono \
/tmp/test_output_audio.pcm
# Video
#
# `video_size` must match the resolution in the video filename (320x180 in
# this example).
$ ffplay -f rawvideo -pixel_format yuv420p -video_size 320x180 \
/tmp/test_output_video_0_320x180.yuv
Optionen
Sie können beim Ausführen der Beispiele die folgenden Optionen angeben:
| Option | Beschreibung |
|---|---|
--output_file_prefix PREFIX |
Geben Sie das Präfix für Ausgabedateien an. Die Standardeinstellung ist /tmp_test_output_. |
--collection_duration DURATION |
Geben Sie an, wie lange Medien erfasst werden sollen. Die Standardeinstellung ist 30s. |
--join_timeout TIMEOUT |
Geben Sie an, wie lange gewartet werden soll, bis die App der Videokonferenz beitritt. Die Standardeinstellung ist 2m. |
--meet_api_url URL |
Geben Sie die URL für die Meet Media API an. Die Standardeinstellung ist https://meet.googleapis.com/v2alpha/. |