Meet Media API: מדריך למתחילים ללקוח העזר של C++‎

בדף הזה מוסבר איך להגדיר ולהריץ דוגמה באמצעות הטמעה של לקוח הפניה ל-C++‎. אם רוצים לקבל מידע על לקוח TypeScript, אפשר לעיין במדריך לתחילת העבודה עם לקוח ההפניה של TypeScript.

דרישות מוקדמות

כדי להפעיל את המדריך למתחילים הזה, אתם צריכים שיהיו לכם:

הפעלת Meet API בארכיטקטורת REST

לפני שאתם משתמשים בממשקי Google API, אתם צריכים להפעיל אותם בפרויקט ב-Google Cloud. בכל פרויקט אפשר להפעיל ממשק API אחד או יותר.

מסוף Google Cloud

  1. במסוף Google Cloud, מפעילים את Meet API בארכיטקטורת REST.

    הפעלת ממשקי ה-API

  2. מוודאים שמפעילים את Meet API בארכיטקטורת REST בפרויקט הנכון ב-Cloud ולוחצים על הבא.

  3. מאשרים שאתם מפעילים את Meet API בארכיטקטורת REST ולוחצים על הפעלה.

‫CLI של gcloud

  1. אם צריך, מגדירים את פרויקט בענן הנוכחי לפרויקט שיצרתם:

    gcloud config set project PROJECT_ID

    מחליפים את PROJECT_ID במזהה הפרויקט של פרויקט בענן שיצרתם.

  2. מפעילים את API בארכיטקטורת REST של Meet:

    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 כדי ליצור אסימוני גישה. מידע נוסף על גישה ל-Google APIs באמצעות OAuth זמין במאמר שימוש ב-OAuth 2.0 כדי לגשת אל Google APIs.

אפשר להשתמש ב-OAuth 2.0 Playground כדי ליצור אסימונים. כשמשתמשים ב-Playground, חשוב:

  • משתמשים במזהה הלקוח ובפרטי הכניסה הסודיים מהפרויקט בענן.
  • מבקשים את ההיקפים הנכונים.
  • נכנסים לחשבון 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 מזינים את כתובת ה-URL של Meet Media API. ברירת המחדל היא https://meet.googleapis.com/v2alpha/.