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 Console

    เปิดใช้ API

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

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

gcloud CLI

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

    gcloud config set project PROJECT_ID

    แทนที่ PROJECT_ID ด้วยรหัสโปรเจ็กต์ของ โปรเจ็กต์ Cloud ที่คุณสร้าง

  2. วิธีเปิดใช้ Meet REST API

    gcloud services enable meet.googleapis.com

สร้างไคลเอ็นต์ C++

การใช้งาน C++ สร้างขึ้นด้วย Generate Ninja (GN) ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ WebRTC

  1. สร้างรหัสผ่านจาก Git ที่ 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 เพื่อสร้าง โทเค็นเพื่อการเข้าถึง ดูข้อมูลเพิ่มเติมเกี่ยวกับการเข้าถึง Google API ด้วย OAuth ได้ที่การใช้ OAuth 2.0 เพื่อเข้าถึง Google API

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

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

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

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

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

แอปตัวอย่าง

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

ตัวอย่างเหล่านี้จะรวบรวมข้อมูลเป็นระยะเวลาที่ระบุ (ค่าเริ่มต้นคือ 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 API ค่าเริ่มต้นคือ https://meet.googleapis.com/v2alpha/