Meet Media API: krótkie wprowadzenie do klienta referencyjnego C++

Na tej stronie dowiesz się, jak skonfigurować i uruchomić przykład przy użyciu implementacji klienta referencyjnego w C++ client implementation. Aby dowiedzieć się więcej o kliencie TypeScript, zapoznaj się z krótkim wprowadzeniem do klienta referencyjnego TypeScript.

Wymagania wstępne

Aby uruchomić ten samouczek, musisz spełnić te wymagania wstępne:

Włączanie interfejsu Meet REST API

Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie w chmurze Google. W jednym projekcie Google Cloud możesz włączyć co najmniej 1 interfejs API.

Konsola Google Cloud

  1. W konsoli Google Cloud włącz interfejs Meet REST API.

    Włączanie interfejsów API

  2. Potwierdź, że włączasz interfejs Meet REST API w odpowiednim projekcie w chmurze, a następnie kliknij Dalej.

  3. Potwierdź, że włączasz interfejs Meet REST API, a następnie kliknij Włącz.

gcloud CLI

  1. W razie potrzeby ustaw bieżący projekt w chmurze na projekt, który został utworzony:

    gcloud config set project PROJECT_ID

    Zastąp PROJECT_ID identyfikatorem projektu utworzonego projektu w chmurze.

  2. Włącz interfejs Meet REST API:

    gcloud services enable meet.googleapis.com

Kompilowanie klienta C++

Implementacja w C++ jest tworzona za pomocą narzędzia Generate Ninja (GN). Więcej informacji znajdziesz w dokumentacji WebRTC.

  1. Wygeneruj hasło z Git w Google i skonfiguruj Git.

  2. W interfejsie wiersza poleceń (CLI) zmień <samples_location> na katalog zawierający przykłady i uruchom to polecenie:

    • Zmienia katalog roboczy na katalog główny.
    • Tworzy w katalogu głównym katalog o nazwie src.
    • Zmienia katalog roboczy na src.
    • Klonuje https://chromium.googlesource.com/chromium/tools/depot_tools.git do katalogu src/ z Git.
    • Tymczasowo dodaje katalog ~/src/depot_tools do listy lokalizacji, w których powłoka wyszukuje polecenia wykonywalne.
    • Zmienia katalog roboczy na katalog cpp w lokalizacji przykładów.
    • Uruchamia skrypt powłoki ./build.sh.
    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

Generowanie tokenów OAuth

Aby połączyć się z interfejsem Meet Media API, Twoja aplikacja musi używać OAuth do generowania tokenów dostępu. Więcej informacji o uzyskiwaniu dostępu do interfejsów API Google za pomocą OAuth znajdziesz w artykule Używanie protokołu OAuth 2.0 na potrzeby dostępu do interfejsów API Google.

Do generowania tokenów możesz użyć OAuth 2.0 Playground. Korzystając z narzędzia, pamiętaj, aby:

  • Użyj identyfikatora klienta i tajnych danych logowania z projektu w chmurze.
  • Wysyłać prośby o odpowiednie zakresy.
  • Zalogować się na konto Google i zaakceptować dostęp.

Gdy to zrobisz, kliknij przycisk Exchange authorization code for tokens (Wymień kod autoryzacji na tokeny) i skopiuj wygenerowany token dostępu.

Rozpoczynanie spotkania

Rozpocznij spotkanie, używając tego samego konta użytkownika, którego używasz do generowania tokena OAuth. Skopiuj kod spotkania. Możesz teraz uruchamiać przykłady.

Przykładowe aplikacje

Repozytorium GitHub zawiera przykłady odbierania multimediów i metadanych uczestników ze spotkania.

Te przykłady zbierają dane przez określony czas (domyślnie 3 sekundy) i zapisują je w plikach.

Pliki audio są w formacie PCM16. Pliki wideo są w formacie YUV420p. Te pliki można odtwarzać za pomocą biblioteki takiej jak FFmpeg.

Ponieważ rozdzielczość wideo może się zmieniać podczas spotkania, przykłady zawierają rozdzielczość w nazwach plików wideo.

Pliki metadanych uczestników będą plikami tekstowymi czytelnymi dla człowieka.

Przykład multimediów pojedynczego użytkownika

Przykład multimediów pojedynczego użytkownika to podstawowa aplikacja, która koncentruje się na zbieraniu dźwięku i obrazu. Przykład nie określa, który uczestnik utworzył dane audio i wideo. Dlatego używanie tego przykładu podczas spotkania z więcej niż 1 uczestnikiem może spowodować uszkodzenie danych wyjściowych.

Aby uruchomić przykład multimediów pojedynczego użytkownika, uruchom:

Linux

$ sh ./run_multi.sh -- \
    --meeting_space_id MEETING_SPACE_ID \
    --oauth_token OAUTH_TOKEN

Domyślnie pojedynczy plik audio jest zapisywany w /tmp/test_output_audio.pcm.

Ponieważ strumienie wideo mogą zmieniać rozdzielczość podczas spotkania, może zostać utworzonych kilka plików wideo. Nazwy plików wideo będą zawierać rosnący licznik i rozdzielczość danego pliku. Jeśli na przykład rozdzielczość strumienia wideo zmieniła się z 320 x 180 na 240 x 135, a następnie z powrotem na 320 x 180, zostaną utworzone te pliki wideo:

  • /tmp/test_output_video_0_320x180.pcm
  • /tmp/test_output_video_1_240x135.pcm
  • /tmp/test_output_video_2_320x180.pcm

(Opcjonalnie) Używanie FFmpeg do odtwarzania plików wyjściowych w systemach Linux i Mac

FFmpeg można używać do odtwarzania utworzonych plików audio i wideo. Przykładowe polecenia:

Linux i 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

Opcje

Podczas uruchamiania przykładów możesz określić te opcje:

Opcja Opis
--output_file_prefix PREFIX Określ prefiks plików wyjściowych. Domyślna wartość to /tmp_test_output_.
--collection_duration DURATION Określ, jak długo mają być zbierane multimedia. Domyślna wartość to 30s.
--join_timeout TIMEOUT Określ, jak długo aplikacja ma czekać na dołączenie do konferencji. Domyślna wartość to 2m.
--meet_api_url URL Określ adres URL interfejsu Meet Media API. Domyślna wartość to https://meet.googleapis.com/v2alpha/.