API Meet Media: guida rapida al client di riferimento C++

Questa pagina spiega come configurare ed eseguire un esempio utilizzando l'implementazione del client di riferimento C++ client implementation. Per scoprire di più sul client TypeScript, consulta la guida rapida del client di riferimento TypeScript.

Prerequisiti

Per eseguire questa guida rapida, devi soddisfare i seguenti prerequisiti:

Abilitare l'API REST di Meet

Prima di utilizzare le API di Google, devi attivarle in un progetto Google Cloud. Puoi attivare una o più API in un singolo progetto Google Cloud.

Console Google Cloud

  1. Nella console Google Cloud, abilita l'API REST di Meet.

    Abilita le API

  2. Verifica di aver abilitato l'API REST di Meet nel progetto Cloud corretto, poi fai clic su Avanti.

  3. Verifica di aver abilitato l'API REST di Meet, poi fai clic su Abilita.

gcloud CLI

  1. Se necessario, imposta il progetto Cloud corrente su quello che hai creato:

    gcloud config set project PROJECT_ID

    Sostituisci PROJECT_ID con l'ID progetto del progetto Cloud che hai creato.

  2. Abilita l'API REST di Meet:

    gcloud services enable meet.googleapis.com

Creare il client C++

L'implementazione C++ è creata con Generate Ninja (GN). Per saperne di più, consulta la documentazione di WebRTC.

  1. Genera una password da Git su Google e configura Git.

  2. Dall'interfaccia a riga di comando (CLI), cambia <samples_location> nella directory che contiene gli esempi ed esegui il seguente comando, che:

    • Cambia la directory di lavoro nella directory home.
    • Crea una directory nella directory home denominata src.
    • Cambia la directory di lavoro in src.
    • Clona https://chromium.googlesource.com/chromium/tools/depot_tools.git nella directory src/ da Git.
    • Aggiunge temporaneamente la directory ~/src/depot_tools all'elenco delle località in cui la shell cerca i comandi eseguibili.
    • Cambia la directory di lavoro nella directory cpp nella posizione degli esempi.
    • Esegue lo script della shell ./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

Generare token OAuth

Per connettersi all'API Meet Media, la tua app deve utilizzare OAuth per generare token di accesso. Per scoprire di più sull'accesso alle API di Google con OAuth, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.

Puoi utilizzare OAuth 2.0 Playground per generare token. Quando utilizzi il playground, assicurati di:

  • Utilizzare l'ID client e le credenziali del secret del progetto Cloud.
  • Richiedere gli ambiti corretti.
  • Accedere a un Account Google e accettare l'accesso.

Al termine, fai clic sul pulsante Exchange authorization code for tokens e copia il token di accesso generato.

Avviare una riunione

Avvia una riunione utilizzando lo stesso account utente che hai utilizzato per generare il token OAuth. Copia il codice riunione. Ora puoi eseguire gli esempi.

Esempi di app

Il repository GitHub offre esempi per la ricezione di contenuti multimediali e metadati dei partecipanti da una riunione.

Questi esempi raccolgono dati per un periodo di tempo specificato (il valore predefinito è 3 secondi) e li scrivono nei file.

I file audio sono in formato PCM16. I file video sono in formato YUV420p. Questi file possono essere riprodotti utilizzando una libreria come FFmpeg.

Poiché le risoluzioni video potrebbero cambiare durante una riunione, gli esempi includono la risoluzione nei nomi dei file video.

I file di metadati dei partecipanti saranno file di testo leggibili.

Esempio di contenuti multimediali per un singolo utente

L'esempio di contenuti multimediali per un singolo utente è un'app di base che si concentra sulla raccolta di audio e video. L'esempio non determina quale partecipante ha creato i dati audio e video. Pertanto, l'utilizzo di questo esempio in una riunione con più di un partecipante potrebbe comportare un output danneggiato.

Per eseguire l'esempio di contenuti multimediali per un singolo utente, esegui:

Linux

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

Per impostazione predefinita, un singolo file audio viene salvato in /tmp/test_output_audio.pcm.

Poiché le risoluzioni degli stream video potrebbero cambiare durante una riunione, potrebbero essere creati più file video. I nomi dei file video includeranno un contatore incrementale e la risoluzione del file. Ad esempio, se la risoluzione dello stream video è cambiata da 320x180 a 240x135 e poi di nuovo a 320x180, verranno creati i seguenti file video:

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

(Facoltativo) Utilizzare FFmpeg per riprodurre i file di output su Linux e Mac

FFmpeg può essere utilizzato per riprodurre i file audio e video creati. Comandi di esempio:

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

Opzioni

Puoi specificare queste opzioni quando esegui gli esempi:

Opzione Descrizione
--output_file_prefix PREFIX Specifica il prefisso per i file di output. Il valore predefinito è /tmp_test_output_.
--collection_duration DURATION Specifica la durata della raccolta dei contenuti multimediali. Il valore predefinito è 30s.
--join_timeout TIMEOUT Specifica il tempo di attesa per l'ingresso dell'app nella conferenza. Il valore predefinito è 2m.
--meet_api_url URL Specifica l'URL dell'API Meet Media. Il valore predefinito è https://meet.googleapis.com/v2alpha/.