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

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

前提条件

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

Meet REST API を有効にする

Google API を使用する前に、Google Cloud プロジェクトで有効にする必要があります。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. 必要に応じて、現在のクラウド プロジェクトを作成したプロジェクトに設定します。

    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. Google の Git からパスワードを生成し、Git を構成します。

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

    • 作業ディレクトリをホーム ディレクトリに変更します。
    • ホーム ディレクトリに src という名前のディレクトリを作成します。
    • 作業ディレクトリを src に変更します。
    • https://chromium.googlesource.com/chromium/tools/depot_tools.git を Git から src/ ディレクトリにクローンします。
    • シェルが実行可能コマンドを検索するロケーションのリストに、~/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 の API の URL を指定します。デフォルトは https://meet.googleapis.com/v2alpha/ です。