API Meet Media: guide de démarrage rapide du client de référence C++

Cette page explique comment configurer et exécuter un exemple à l'aide de l'implémentation du client de référence C++ client. Pour en savoir plus sur le client TypeScript, consultez le guide de démarrage rapide du client de référence TypeScript.

Prérequis

Pour suivre ce guide de démarrage rapide, vous devez remplir les prérequis suivants :

Activer l'API REST Meet

Avant d'utiliser les API Google, vous devez les activer dans un projet Google Cloud. Vous pouvez activer une ou plusieurs API dans un même projet Google Cloud.

Console Google Cloud

  1. Dans la console Google Cloud, activez l'API REST Meet.

    Activer les API

  2. Vérifiez que vous activez l'API REST Meet dans le bon projet Cloud, puis cliquez sur Suivant.

  3. Vérifiez que vous activez l'API REST Meet, puis cliquez sur Activer.

CLI gcloud

  1. Si nécessaire, définissez le projet Cloud actuel sur celui que vous avez créé :

    gcloud config set project PROJECT_ID

    Remplacez PROJECT_ID par l'ID de projet du projet Cloud que vous avez créé.

  2. Activez l'API REST Meet :

    gcloud services enable meet.googleapis.com

Créer le client C++

L'implémentation C++ est créée avec Generate Ninja (GN). Pour en savoir plus, consultez la documentation WebRTC.

  1. Générez un mot de passe à partir de Git sur Google et configurez Git.

  2. Dans l'interface de ligne de commande (CLI), remplacez <samples_location> par le répertoire contenant les exemples, puis exécutez la commande suivante :

    • Remplacez le répertoire de travail par le répertoire d'accueil.
    • Créez un répertoire nommé src dans le répertoire d'accueil.
    • Remplacez le répertoire de travail par src.
    • Clonez https://chromium.googlesource.com/chromium/tools/depot_tools.git dans le répertoire src/ à partir de Git.
    • Ajoutez temporairement le répertoire ~/src/depot_tools à la liste des emplacements dans lesquels le shell recherche les commandes exécutables.
    • Remplacez le répertoire de travail par le répertoire cpp dans l'emplacement des exemples.
    • Exécutez le 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

Générer des jetons OAuth

Pour se connecter à l'API Meet Media, votre application doit utiliser OAuth pour générer des jetons d'accès. Pour en savoir plus sur l'accès aux API Google avec OAuth, consultez Utiliser OAuth 2.0 pour accéder aux API Google.

Vous pouvez utiliser le OAuth 2.0 Playground pour générer des jetons. Lorsque vous utilisez le Playground, veillez à :

  • Utiliser votre ID client et vos identifiants secrets à partir de votre projet Cloud.
  • Demander les champs d'application appropriés.
  • Vous connecter à un compte Google et accepter l'accès.

Une fois l'opération terminée, cliquez sur le bouton Exchange authorization code for tokens (Échanger le code d'autorisation contre des jetons) et copiez le jeton d'accès généré.

Démarrer une réunion

Démarrez une réunion à l'aide du même compte utilisateur que celui que vous avez utilisé pour générer le jeton OAuth. Copiez le code de la réunion. Vous êtes maintenant prêt à exécuter les exemples.

Applications exemples

Le dépôt GitHub propose des exemples pour recevoir des contenus multimédias et des métadonnées de participants à partir d'une réunion.

Ces exemples collectent des données pendant une durée spécifiée (par défaut, 3 secondes) et les écrivent dans des fichiers.

Les fichiers audio sont au format PCM16. Les fichiers vidéo sont au format YUV420p. Vous pouvez lire ces fichiers à l'aide d'une bibliothèque telle que FFmpeg.

Étant donné que la résolution vidéo peut changer au cours d'une réunion, les exemples incluent la résolution dans les noms de fichiers vidéo.

Les fichiers de métadonnées des participants seront des fichiers texte lisibles.

Exemple de contenu multimédia pour un seul utilisateur

L'exemple de contenu multimédia pour un seul utilisateur est une application de base qui se concentre sur la collecte de contenus audio et vidéo. L'exemple ne détermine pas quel participant a créé les données audio et vidéo. Par conséquent, l'utilisation de cet exemple dans une réunion avec plusieurs participants peut entraîner une sortie corrompue.

Pour exécuter l'exemple de contenu multimédia pour un seul utilisateur, exécutez la commande suivante :

Linux

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

Par défaut, un seul fichier audio est enregistré dans /tmp/test_output_audio.pcm.

Étant donné que la résolution des flux vidéo peut changer au cours d'une réunion, plusieurs fichiers vidéo peuvent être créés. Les noms de fichiers vidéo incluent un compteur incrémentiel et la résolution de ce fichier. Par exemple, si la résolution du flux vidéo passe de 320 x 180 à 240 x 135, puis revient à 320 x 180, les fichiers vidéo suivants sont créés :

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

(Facultatif) Utiliser FFmpeg pour lire les fichiers de sortie sur Linux et Mac

FFmpeg peut être utilisé pour lire les fichiers audio et vidéo créés. Exemples de commandes :

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

Options

Vous pouvez spécifier les options suivantes lorsque vous exécutez les exemples :

Option Description
--output_file_prefix PREFIX Spécifiez le préfixe des fichiers de sortie. La valeur par défaut est /tmp_test_output_.
--collection_duration DURATION Spécifiez la durée de collecte des contenus multimédias. La valeur par défaut est 30s.
--join_timeout TIMEOUT Spécifiez la durée d'attente avant que l'application ne rejoigne la conférence. La valeur par défaut est 2m.
--meet_api_url URL Spécifiez l'URL de l'API Meet Media. La valeur par défaut est https://meet.googleapis.com/v2alpha/.