इस पेज पर, C++ रेफ़रंस क्लाइंट के लागू करने के तरीके का इस्तेमाल करके, सैंपल सेट अप करने और चलाने का तरीका बताया गया है. इसके बजाय, TypeScript क्लाइंट के बारे में जानने के लिए, TypeScript रेफ़रंस क्लाइंट क्विकस्टार्ट देखें.
ज़रूरी शर्तें
इस क्विकस्टार्ट को चलाने के लिए, आपको ये शर्तें पूरी करनी होंगी:
- आपने GitHub डेटा स्टोर करने की जगह का क्लोन बनाया हो.
- आपके पास Google Cloud का ऐसा प्रोजेक्ट हो जिसमें Google Meet REST API चालू हो.
- आपके पास Google Workspace खाता हो.
Meet REST API चालू करना
Google API का इस्तेमाल करने से पहले, आपको उन्हें Google Cloud प्रोजेक्ट में चालू करना होगा. एक Google Cloud प्रोजेक्ट में, एक या एक से ज़्यादा एपीआई चालू किए जा सकते हैं.Google Cloud कंसोल
Google Cloud कंसोल में, Meet REST API चालू करें.
पुष्टि करें कि आपने सही Cloud प्रोजेक्ट में Meet REST API चालू किया है. इसके बाद, आगे बढ़ें पर क्लिक करें.
पुष्टि करें कि आपने Meet REST API चालू किया है. इसके बाद, चालू करें पर क्लिक करें.
gcloud सीएलआई
अगर ज़रूरी हो, तो मौजूदा Cloud प्रोजेक्ट को वह प्रोजेक्ट सेट करें जिसे आपने बनाया है:
gcloud config set project PROJECT_IDPROJECT_ID की जगह, बनाए गए Cloud प्रोजेक्ट का प्रोजेक्ट आईडी डालें.
Meet REST API चालू करें:
gcloud services enable meet.googleapis.com
C++ क्लाइंट बनाना
C++ को लागू करने के लिए, Generate Ninja (GN) का इस्तेमाल किया जाता है. ज़्यादा जानकारी के लिए, WebRTC का दस्तावेज़ देखें.
Google पर मौजूद Git से पासवर्ड जनरेट करें और git को कॉन्फ़िगर करें.
कमांड-लाइन इंटरफ़ेस (सीएलआई) में,
<samples_location>को उस डायरेक्ट्री में बदलें जिसमें सैंपल मौजूद हैं. इसके बाद, यह निर्देश चलाएं. इससे:- आपकी वर्किंग डायरेक्ट्री, होम डायरेक्ट्री में बदल जाती है.
- आपकी होम डायरेक्ट्री में
srcनाम की डायरेक्ट्री बन जाती है. - आपकी वर्किंग डायरेक्ट्री,
srcमें बदल जाती है. - git से, https://chromium.googlesource.com/chromium/tools/depot_tools.git का क्लोन, src/ डायरेक्ट्री में बन जाता है.
~/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 को ऐक्सेस करने के बारे में ज़्यादा जानने के लिए, Using OAuth 2.0 का इस्तेमाल करके Google API को ऐक्सेस करना लेख पढ़ें.
टोकन जनरेट करने के लिए, OAuth 2.0 Playground का इस्तेमाल किया जा सकता है. Playground का इस्तेमाल करते समय, पक्का करें कि:
- आपने अपने Cloud प्रोजेक्ट से, क्लाइंट आईडी और सीक्रेट क्रेडेंशियल का इस्तेमाल किया हो.
- आपने सही स्कोप का अनुरोध किया हो.
- आपने किसी Google खाते में साइन इन किया हो और ऐक्सेस की अनुमति दी हो.
इसके बाद, Exchange authorization code for tokens बटन पर क्लिक करें और जनरेट किए गए ऐक्सेस टोकन को कॉपी करें.
मीटिंग शुरू करना
मीटिंग शुरू करें उस उपयोगकर्ता खाते का इस्तेमाल करके जिससे आपने OAuth टोकन जनरेट किया था. मीटिंग का कोड कॉपी करें. अब सैंपल चलाने के लिए, तैयार हैं.
सैंपल ऐप्लिकेशन
ये सैंपल, तय समय के लिए डेटा इकट्ठा करते हैं. डिफ़ॉल्ट रूप से, यह समय तीन सेकंड होता है. इसके बाद, इकट्ठा किए गए डेटा को फ़ाइलों में सेव कर देते हैं.
ऑडियो फ़ाइलें, 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/ होता है. |