Meet Media API: คู่มือเริ่มต้นใช้งานไคลเอ็นต์อ้างอิง C++

หน้านี้จะอธิบายวิธีตั้งค่าและเรียกใช้ตัวอย่างโดยใช้การติดตั้งใช้งานไคลเอ็นต์อ้างอิง C++ ไคลเอ็นต์ การติดตั้งใช้งาน หากต้องการดูข้อมูลเกี่ยวกับไคลเอ็นต์ TypeScript แทน โปรดดูคู่มือเริ่มต้นใช้งานฉบับย่อของไคลเอ็นต์อ้างอิง TypeScript

ข้อกำหนดเบื้องต้น

คุณต้องมีข้อกำหนดเบื้องต้นต่อไปนี้จึงจะเรียกใช้คู่มือเริ่มต้นใช้งานฉบับย่อนี้ได้

เปิดใช้ Meet REST API

ก่อนที่จะใช้ Google API คุณต้องเปิด API เหล่านั้นในโปรเจ็กต์ Google Cloud คุณสามารถเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้

คอนโซล Google Cloud

  1. เปิดใช้ Meet REST API ในคอนโซล Google Cloud

    เปิดใช้ API

  2. ยืนยันว่าคุณกำลังเปิดใช้ Meet REST API ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ที่ถูกต้อง แล้วคลิกถัดไป

  3. ยืนยันว่าคุณกำลังเปิดใช้ Meet REST API แล้วคลิกเปิดใช้

gcloud CLI

  1. หากจำเป็น ให้ตั้งค่าโปรเจ็กต์ Cloud ปัจจุบันเป็นโปรเจ็กต์ที่คุณสร้างขึ้นโดยใช้คำสั่งต่อไปนี้

    gcloud config set project PROJECT_ID

    แทนที่ PROJECT_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 ในตำแหน่งตัวอย่าง
    • เรียกใช้สคริปต์ของ 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

สร้างโทเค็น OAuth

หากต้องการเชื่อมต่อกับ Meet Media API แอปของคุณต้องใช้ OAuth เพื่อสร้างโทเค็นเพื่อการเข้าถึง ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้าถึง Google API ด้วย OAuth ได้ที่ การใช้ OAuth 2.0 เพื่อเข้าถึง Google API

คุณสามารถใช้ OAuth 2.0 Playground เพื่อสร้างโทเค็นได้ เมื่อใช้ Playground โปรดตรวจสอบว่าคุณได้ทำสิ่งต่อไปนี้

  • ใช้รหัสไคลเอ็นต์และข้อมูลเข้าสู่ระบบลับจากโปรเจ็กต์ที่อยู่ในระบบคลาวด์
  • ขอขอบเขตที่ถูกต้อง scopes
  • ลงชื่อเข้าใช้บัญชี Google และยอมรับการเข้าถึง

เมื่อเสร็จแล้ว ให้คลิกปุ่ม Exchange authorization code for tokens แล้วคัดลอกโทเค็นเพื่อการเข้าถึงที่สร้างขึ้น

เริ่มการประชุม

เริ่มการประชุมโดยใช้บัญชีผู้ใช้เดียวกับที่ ใช้สร้างโทเค็น OAuth คัดลอกรหัสการประชุม ตอนนี้คุณพร้อมที่จะเรียกใช้ตัวอย่างแล้ว

ตัวอย่างแอป

ที่เก็บ GitHub repository มี ตัวอย่างสำหรับการรับสื่อและข้อมูลเมตาของผู้เข้าร่วมจากการประชุม

ตัวอย่างเหล่านี้จะรวบรวมข้อมูลตามระยะเวลาที่ระบุ (ค่าเริ่มต้นคือ 3 วินาที) และเขียนข้อมูลที่รวบรวมไว้ลงในไฟล์

ไฟล์เสียงอยู่ในรูปแบบ PCM16 ไฟล์วิดีโออยู่ในรูปแบบ YUV420p คุณสามารถเล่นไฟล์เหล่านี้ได้โดยใช้ไลบรารี เช่น FFmpeg

เนื่องจากความละเอียดของวิดีโออาจเปลี่ยนแปลงระหว่างการประชุม ตัวอย่างจึงรวมความละเอียดไว้ในชื่อไฟล์วิดีโอ

ไฟล์ข้อมูลเมตาของผู้เข้าร่วมจะเป็นไฟล์ข้อความที่มนุษย์อ่านได้

ตัวอย่างสื่อของผู้ใช้รายเดียว

ตัวอย่างสื่อของผู้ใช้รายเดียวเป็นแอปพื้นฐานที่เน้นการรวบรวมเสียงและวิดีโอ ตัวอย่างนี้ไม่ได้ระบุว่าผู้เข้าร่วมคนใดเป็นผู้สร้างข้อมูลเสียงและวิดีโอ ดังนั้น การใช้ตัวอย่างนี้ในการประชุมที่มีผู้เข้าร่วมมากกว่า 1 คนอาจทำให้เอาต์พุตเสียหาย

หากต้องการเรียกใช้ตัวอย่างสื่อของผู้ใช้รายเดียว ให้เรียกใช้คำสั่งต่อไปนี้

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 ระบุ URL สำหรับ Meet Media API ค่าเริ่มต้นคือ https://meet.googleapis.com/v2alpha/