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++. Per scoprire di più sul client TypeScript, consulta la guida rapida al 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 abilitare l'API REST di Meet nel progetto Cloud corretto, poi fai clic su Avanti.

  3. Verifica di abilitare l'API REST di Meet, quindi fai clic su Abilita.

Interfaccia a riga di comando gcloud

  1. Se necessario, imposta il progetto Cloud attuale 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

Crea 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 at Google e configura Git.

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

    • Cambia la directory di lavoro impostandola sulla home directory.
    • Crea una directory nella tua home directory 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 posizioni in cui la shell cerca i comandi eseguibili.
    • Cambia la directory di lavoro impostandola sulla directory cpp nella posizione degli esempi.
    • Esegue lo script 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 saperne di più sull'accesso alle API di Google con OAuth, vedi 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:

  • Utilizza le credenziali dell'ID client e del client secret del tuo progetto cloud.
  • Richiedi gli ambiti corretti.
  • Accedi a un Account Google e accetta 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.

App di esempio

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

Questi campioni raccolgono dati per un periodo di tempo specificato (il valore predefinito è 3 secondi) e scrivono i dati raccolti 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 media per un singolo utente

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

Per eseguire l'esempio di media 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é i flussi video potrebbero cambiare risoluzione 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 320 x 180 a 240 x 135 e poi di nuovo a 320 x 180, 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) Utilizza 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 per quanto tempo raccogliere i contenuti multimediali. Il valore predefinito è 30s.
--join_timeout TIMEOUT Specifica quanto tempo attendere prima che l'app partecipi alla conferenza. Il valore predefinito è 2m.
--meet_api_url URL Specifica l'URL dell'API Meet Media. Il valore predefinito è https://meet.googleapis.com/v2alpha/.