Meet Media API: C++ रेफ़रंस क्लाइंट की क्विकस्टार्ट गाइड

इस पेज पर, C++ रेफ़रंस क्लाइंट के तौर पर लागू करने का इस्तेमाल करके, सैंपल को सेट अप करने और चलाने का तरीका बताया गया है. अगर आपको TypeScript क्लाइंट के बारे में जानना है, तो TypeScript रेफ़रंस क्लाइंट के लिए क्विकस्टार्ट गाइड पढ़ें.

ज़रूरी शर्तें

इस क्विकस्टार्ट को चलाने के लिए, आपको ये ज़रूरी शर्तें पूरी करनी होंगी:

Meet REST API को चालू करना

Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा. एक ही Google Cloud प्रोजेक्ट में, एक या उससे ज़्यादा एपीआई चालू किए जा सकते हैं.

Google Cloud कंसोल

  1. Google Cloud Console में, Meet REST API को चालू करें.

    एपीआई चालू करना

  2. पुष्टि करें कि आपने सही Cloud प्रोजेक्ट में Meet REST API चालू किया है. इसके बाद, आगे बढ़ें पर क्लिक करें.

  3. पुष्टि करें कि Meet REST API चालू किया जा रहा है. इसके बाद, चालू करें पर क्लिक करें.

gcloud सीएलआई

  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 at Google से पासवर्ड जनरेट करें और git को कॉन्फ़िगर करें.

  2. अपने कमांड-लाइन इंटरफ़ेस (सीएलआई) में, <samples_location> को उस डायरेक्ट्री में बदलें जिसमें सैंपल मौजूद हैं. इसके बाद, यह कमांड चलाएं. इससे:

    • इस कमांड से, आपकी वर्किंग डायरेक्ट्री आपकी होम डायरेक्ट्री में बदल जाती है.
    • यह आपकी होम डायरेक्ट्री में src नाम की डायरेक्ट्री बनाता है.
    • यह आपकी वर्किंग डायरेक्ट्री को src पर सेट कर देता है.
    • यह git से src/ डायरेक्ट्री में, https://chromium.googlesource.com/chromium/tools/ depot_tools.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 का इस्तेमाल करके ऐक्सेस टोकन जनरेट करने होंगे. OAuth की मदद से Google API को ऐक्सेस करने के बारे में ज़्यादा जानने के लिए, Google API को ऐक्सेस करने के लिए OAuth 2.0 का इस्तेमाल करना लेख पढ़ें.

टोकन जनरेट करने के लिए, OAuth 2.0 Playground का इस्तेमाल किया जा सकता है. प्लेग्राउंड का इस्तेमाल करते समय, इन बातों का ध्यान रखें:

  • अपने क्लाउड प्रोजेक्ट से क्लाइंट आईडी और सीक्रेट क्रेडेंशियल का इस्तेमाल करें.
  • सही स्कोप का अनुरोध करें.
  • किसी Google खाते में साइन इन करें और ऐक्सेस स्वीकार करें.

इसके बाद, Exchange authorization code for tokens बटन पर क्लिक करें और जनरेट किया गया ऐक्सेस टोकन कॉपी करें.

मीटिंग शुरू करना

उसी उपयोगकर्ता खाते का इस्तेमाल करके मीटिंग शुरू करें जिसका इस्तेमाल आपने OAuth टोकन जनरेट करने के लिए किया था. मीटिंग कोड कॉपी करें. अब सैंपल चलाए जा सकते हैं.

सैंपल ऐप्लिकेशन

GitHub रिपॉज़िटरी में, मीटिंग से मीडिया और हिस्सा लेने वाले लोगों का मेटाडेटा पाने के लिए सैंपल उपलब्ध हैं.

ये सैंपल, तय की गई समयावधि के लिए डेटा इकट्ठा करते हैं. डिफ़ॉल्ट रूप से यह समयावधि तीन सेकंड होती है. साथ ही, इकट्ठा किए गए डेटा को फ़ाइलों में लिखते हैं.

ऑडियो फ़ाइलें 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

(ज़रूरी नहीं) Linux और Mac पर आउटपुट फ़ाइलें चलाने के लिए, FFmpeg का इस्तेमाल करना

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/ पर सेट होता है.