Meet Media API:C++ 參考用戶端快速入門

本頁面說明如何使用 C++ 參考用戶端實作設定及執行範例。如要瞭解 TypeScript 用戶端,請參閱 TypeScript 參考用戶端快速入門指南

必要條件

如要執行本快速入門導覽課程,請先完成下列必要條件:

啟用 Meet REST API

使用 Google API 前,您需要在 Google Cloud 專案中啟用這些 API。 您可以在單一 Google Cloud 專案中啟用一或多個 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
    • 從 Git 將 https://chromium.googlesource.com/chromium/tools/depot_tools.git 複製到 src/ 目錄。
    • 暫時將 ~/src/depot_tools 目錄新增至殼層搜尋可執行指令的位置清單。
    • 將工作目錄變更為範例位置中的 cpp 目錄。
    • 執行 ./build.sh shell 指令碼。
    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 的網址。預設值為 https://meet.googleapis.com/v2alpha/