Meet Media API: C++ リファレンス クライアントのクイックスタート

このページでは、C++ リファレンス クライアント実装を使用してサンプルを設定して実行する方法について説明します。TypeScript クライアントについては、TypeScript リファレンス クライアントのクイックスタートをご覧ください。

前提条件

このクイックスタートを実行するには、次の前提条件を満たしている必要があります。

Meet REST API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで API を有効にする必要があります。1 つの Google Cloud プロジェクトで 1 つ以上の API を有効にできます。

Google Cloud コンソール

  1. Google Cloud コンソールで、Meet REST API を有効にします。

    API を有効にする

  2. 正しい Cloud プロジェクトで Meet REST API を有効にしていることを確認し、[次へ] をクリックします。

  3. Meet REST API を有効にすることを確認し、[有効にする] をクリックします。

gcloud CLI

  1. 必要に応じて、現在の Cloud プロジェクトを作成したプロジェクトに設定します。

    gcloud config set project PROJECT_ID

    PROJECT_ID は、作成した Cloud プロジェクトのプロジェクト ID に置き換えます。

  2. Meet REST API を有効にします。

    gcloud services enable meet.googleapis.com

C++ クライアントをビルドする

C++ 実装は Generate Ninja(GN)でビルドされます。詳しくは、WebRTC のドキュメントをご覧ください。

  1. Git at Google からパスワードを生成し、git を構成します。

  2. コマンドライン インターフェース(CLI)で、<samples_location> をサンプルを保持するディレクトリに変更し、次のコマンドを実行します。

    • 作業ディレクトリをホーム ディレクトリに変更します。
    • ホーム ディレクトリに src という名前のディレクトリを作成します。
    • 作業ディレクトリを src に変更します。
    • https://chromium.googlesource.com/chromium/tools/depot_tools.git から src/ ディレクトリに git でクローンを作成します。
    • ~/src/depot_tools ディレクトリを、シェルが実行可能コマンドを検索する場所のリストに一時的に追加します。
    • 作業ディレクトリをサンプル内の cpp ディレクトリに変更します。
    • ./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

OAuth トークンを生成する

Meet Media API に接続するには、アプリで OAuth を使用してアクセス トークンを生成する必要があります。OAuth を使用して Google API にアクセスする方法については、OAuth 2.0 を使用して Google API にアクセスするをご覧ください。

OAuth 2.0 Playground を使用してトークンを生成できます。プレイグラウンドを使用する際は、次の点に注意してください。

  • クラウド プロジェクトのクライアント ID とシークレット認証情報を使用します。
  • 正しいスコープをリクエストします。
  • Google アカウントにログインして、アクセスを許可します。

完了したら、Exchange authorization code for tokens ボタンをクリックして、生成されたアクセス トークンをコピーします。

会議を開始する

OAuth トークンの生成に使用したのと同じユーザー アカウントを使用して会議を開始します。会議コードをコピーします。これで、サンプルを実行する準備が整いました。

サンプルアプリ

GitHub リポジトリには、会議からメディアと参加者のメタデータを受信するサンプルが用意されています。

これらのサンプルは、指定された時間(デフォルトは 3 秒)データを収集し、収集したデータをファイルに書き込みます。

音声ファイルは PCM16 形式です。動画ファイルは YUV420p 形式です。これらのファイルは、FFmpeg などのライブラリを使用して再生できます。

会議中に動画の解像度が変更される可能性があるため、サンプルには動画ファイル名に解像度が含まれています。

参加者のメタデータ ファイルは、人間が読めるテキスト ファイルになります。

単一ユーザーのメディア サンプル

シングル ユーザー メディア サンプルは、音声と動画の収集に重点を置いた基本的なアプリです。このサンプルでは、どの参加者が音声データと動画データを作成したかは特定されません。そのため、このサンプルを複数の参加者がいる会議で使用すると、出力が破損する可能性があります。

シングル ユーザー メディア サンプルを実行するには、次のコマンドを実行します。

Linux

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

デフォルトでは、単一の音声ファイルが /tmp/test_output_audio.pcm に保存されます。

ビデオ会議中に動画ストリームの解像度が変更される可能性があるため、複数の動画ファイルが作成されることがあります。動画ファイル名には、連番とファイルの解像度が含まれます。たとえば、動画ストリームの解像度が 320x180 から 240x135 に変更され、その後 320x180 に戻った場合、次の動画ファイルが作成されます。

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

(省略可)FFmpeg を使用して Linux と Mac で出力ファイルを再生する

FFmpeg を使用して、作成した音声ファイルと動画ファイルを再生できます。コマンドの例:

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

オプション

これらのオプションは、サンプルを実行するときに指定できます。

オプション 説明
--output_file_prefix PREFIX 出力ファイルの接頭辞を指定します。デフォルトは /tmp_test_output_ です。
--collection_duration DURATION メディアを収集する期間を指定します。デフォルトは 30s です。
--join_timeout TIMEOUT アプリが会議に参加するまでの待機時間を指定します。デフォルトは 2m です。
--meet_api_url URL Meet Media API の URL を指定します。デフォルトは https://meet.googleapis.com/v2alpha/ です。