केस स्टडी
Media3 PreloadManager की मदद से, Instagram और Facebook पर वीडियो तुरंत चलाए जा सकते हैं. साथ ही, इससे लोगों की दिलचस्पी भी बढ़ती है
पढ़ने में 4 मिनट लगेंगे
सोशल मीडिया की दुनिया में, लोगों की दिलचस्पी बहुत तेज़ी से बढ़ती और कम होती है. Meta के ऐप्लिकेशन (Facebook और Instagram) दुनिया के सबसे बड़े सोशल प्लैटफ़ॉर्म में से हैं. इनका इस्तेमाल दुनिया भर में अरबों लोग करते हैं. Meta के लिए, वीडियो को बिना किसी रुकावट के उपलब्ध कराना सिर्फ़ एक सुविधा नहीं है, बल्कि यह लोगों के अनुभव का अहम हिस्सा है. कम अवधि के वीडियो, खास तौर पर Facebook Newsfeed और Instagram Reels, लोगों की दिलचस्पी बढ़ाने में अहम भूमिका निभाते हैं. इनसे क्रिएटिव तरीके से अपनी बात कहने और तेज़ी से कॉन्टेंट देखने में मदद मिलती है. साथ ही, दुनिया भर के लोग आपस में जुड़ पाते हैं और मनोरंजन कर पाते हैं.
इस ब्लॉग पोस्ट में, Meta ने अरबों लोगों के लिए वीडियो चलाने की सुविधा को कैसे बेहतर बनाया, इस बारे में बताया गया है. साथ ही, यह भी बताया गया है कि वीडियो को तुरंत चलाने की सुविधा कैसे उपलब्ध कराई गई.
कम अवधि के वीडियो में होने वाली देरी
कम अवधि के वीडियो की वजह से, लोगों के बीच तेज़ी से इंटरैक्शन होता है, क्योंकि लोग अपने फ़ीड को तेज़ी से स्क्रोल करते हैं. लगातार बदलते फ़ीड में वीडियो के बीच बिना किसी रुकावट के ट्रांज़िशन उपलब्ध कराने से, तुरंत वीडियो चलाने में कई तरह की समस्याएं आती हैं. इसलिए, हमें ऐसे समाधानों की ज़रूरत है जो डिस्क कैशिंग और स्टैंडर्ड रिएक्टिव प्लेबैक की रणनीतियों से बेहतर हों.
Media3 PreloadManager की मदद से, वीडियो को तुरंत चलाने की सुविधा उपलब्ध कराना
Jetpack Media3 ने PreloadManager लॉन्च किया है. इसकी मदद से, कम अवधि के वीडियो के इस्तेमाल में आए बदलावों और लंबी अवधि के वीडियो चलाने के पुराने आर्किटेक्चर की सीमाओं को दूर किया जा सकता है. इस कॉम्पोनेंट की मदद से, डेवलपर डिस्क कैशिंग से आगे बढ़ सकते हैं. साथ ही, लोगों के वीडियो चलाने से पहले, मीडिया को मेमोरी में तैयार रखने के लिए, उन्हें बेहतर कंट्रोल और कस्टमाइज़ेशन की सुविधा मिलती है. PreloadManager की मदद से, मीडिया चलाने के बारे में तकनीकी जानकारी पाने के लिए, ब्लॉग की यह सीरीज़ पढ़ें.
Meta ने वीडियो को तुरंत चलाने की सुविधा कैसे उपलब्ध कराई
मौजूदा समस्याएं
पहले, Meta वीडियो उपलब्ध कराने के लिए, वार्मअप (प्लेयर को तैयार करने के लिए) और प्रीफ़ेच (डिस्क पर कॉन्टेंट कैश करने के लिए) के तरीकों का इस्तेमाल करता था. इन तरीकों से नेटवर्क की परफ़ॉर्मेंस बेहतर हुई, लेकिन इनसे कई समस्याएं भी आईं. वार्मअप के लिए, एक के बाद एक कई प्लेयर इंस्टेंस बनाने पड़ते थे. इससे ज़्यादा मेमोरी का इस्तेमाल होता था और सिर्फ़ कुछ वीडियो को प्रीलोड किया जा सकता था. ज़्यादा संसाधनों की ज़रूरत होने की वजह से, आधुनिक और तेज़ी से स्क्रोल होने वाले सोशल फ़ीड पर वीडियो को तुरंत चलाने की सुविधा उपलब्ध कराने के लिए, बेहतर और ज़्यादा स्केलेबल समाधान की ज़रूरत थी.
Media3 PreloadManager को इंटिग्रेट करना
वीडियो को तुरंत चलाने की सुविधा उपलब्ध कराने के लिए, Meta की Media Foundation Client टीम ने Jetpack Media3 PreloadManager को Facebook और Instagram में इंटिग्रेट किया. उन्होंने अपने प्रीलोडिंग और प्लेबैक सिस्टम को एक साथ लाने के लिए, DefaultPreloadManager को चुना. इस इंटिग्रेशन के लिए, Meta के मौजूदा आर्किटेक्चर को फिर से बनाना पड़ा, ताकि PreloadManager और ExoPlayer इंस्टेंस के बीच संसाधनों को बेहतर तरीके से शेयर किया जा सके. इस रणनीतिक बदलाव से, आर्किटेक्चर में एक अहम फ़ायदा मिला: प्रीलोडिंग के टास्क को एक साथ चलाने और एक प्लेयर इंस्टेंस का इस्तेमाल करके कई वीडियो मैनेज करने की सुविधा. इससे प्रीलोडिंग की क्षमता में काफ़ी बढ़ोतरी हुई. साथ ही, पहले के तरीके में मेमोरी से जुड़ी जो समस्याएं आती थीं वे भी खत्म हो गईं.
ऑप्टिमाइज़ेशन और परफ़ॉर्मेंस ट्यूनिंग
इसके बाद, टीम ने Meta के अलग-अलग डिवाइस वाले ग्लोबल इकोसिस्टम में परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, कई बार टेस्टिंग की और बदलाव किए. शुरुआत में, ज़्यादा प्रीलोडिंग की वजह से कभी-कभी समस्याएं आईं. इनमें मेमोरी का ज़्यादा इस्तेमाल होना और स्क्रोल करने की परफ़ॉर्मेंस में कमी आना शामिल है. इन समस्याओं को हल करने के लिए, टीम ने मेमोरी के सटीक मेज़रमेंट का इस्तेमाल करके, डिवाइस फ़्रैगमेंटेशन को ध्यान में रखकर, और सिस्टम को खास यूज़र इंटरफ़ेस (यूआई) पैटर्न के हिसाब से बनाकर, लागू करने के तरीके को बेहतर बनाया.
खास यूज़र इंटरफ़ेस (यूआई) पैटर्न के हिसाब से, लागू करने के तरीके को बेहतर बनाना
Meta ने अलग-अलग प्रीलोडिंग रणनीतियां लागू कीं और हर ऐप्लिकेशन के खास यूज़र इंटरफ़ेस (यूआई) पैटर्न के हिसाब से, व्यवहार को बेहतर बनाया:
- Facebook Newsfeed: यूज़र इंटरफ़ेस (यूआई) में, फ़िलहाल दिखने वाले वीडियो को प्राथमिकता दी जाती है. मैनेजर सिर्फ़ मौजूदा वीडियो को प्रीलोड करता है, ताकि उपयोगकर्ता के स्क्रोल रोकने पर वह तुरंत चलने लगे. "सिर्फ़ मौजूदा वीडियो" पर फ़ोकस करने से, डेटा और मेमोरी का इस्तेमाल कम होता है. ऐसा इसलिए, क्योंकि लोग वीडियो के बीच कई स्टैटिक पोस्ट देख सकते हैं. फ़िलहाल, सिस्टम को सिर्फ़ दिखने वाले वीडियो को प्रीलोड करने के लिए डिज़ाइन किया गया है. हालांकि, इसे आने वाले (भविष्य के) वीडियो को भी प्रीलोड करने के लिए अडजस्ट किया जा सकता है.
- Instagram Reels: यह सिर्फ़ वीडियो वाला एनवायरमेंट है, जहां लोग वर्टिकल स्वाइप करते हैं. इस यूज़र इंटरफ़ेस (यूआई) के लिए, टीम ने "आस-पास के वीडियो को प्रीलोड करने" की रणनीति लागू की. PreloadManager, मौजूदा रील के तुरंत बाद आने वाले वीडियो को मेमोरी में तैयार रखता है. इस दोतरफ़ा तरीके से यह पक्का होता है कि उपयोगकर्ता ऊपर या नीचे की ओर स्वाइप करे, ट्रांज़िशन तुरंत और आसानी से हो. इससे, उपयोगकर्ता अनुभव की क्वालिटी (क्यूओई) में काफ़ी सुधार हुआ. इसमें, वीडियो चलाने की शुरुआत और पहले फ़्रेम के दिखने में लगने वाले समय में भी सुधार शामिल है.
अलग-अलग डिवाइस वाले ग्लोबल इकोसिस्टम के लिए स्केलिंग
अरबों डिवाइसों पर, बेहतर परफ़ॉर्मेंस वाले वीडियो स्टैक को स्केल करने के लिए, सिर्फ़ ज़्यादा प्रीलोडिंग की ज़रूरत नहीं होती. इसके लिए, इंटेलिजेंस की भी ज़रूरत होती है. Meta को मेमोरी पर दबाव और स्क्रोल लैग की शुरुआती समस्याओं का सामना करना पड़ा. खास तौर पर, मिड-टू-लो-एंड हार्डवेयर पर. इन समस्याओं को हल करने के लिए, उन्होंने Media3 के लागू करने के तरीके के हिसाब से, डिवाइस स्ट्रेस डिटेक्शन सिस्टम बनाया. अब ऐप्लिकेशन, इनपुट/आउटपुट और सीपीयू सिग्नल को रीयल-टाइम में मॉनिटर करते हैं. अगर किसी डिवाइस पर ज़्यादा लोड है, तो यूज़र इंटरफ़ेस (यूआई) की रिस्पॉन्सिवनेस को प्राथमिकता देने के लिए, प्रीलोडिंग रोक दी जाती है.
डिवाइस के हिसाब से ऑप्टिमाइज़ेशन करने से यह पक्का होता है कि वीडियो को तुरंत चलाने की सुविधा, सिस्टम की स्थिरता को प्रभावित न करे. इससे पुराने हार्डवेयर वाले लोग भी, बिना किसी रुकावट के आसानी से फ़ीड देख सकते हैं.
आर्किटेक्चरल फ़ायदे और कोड की क्वालिटी
लोगों को दिखने वाले मेट्रिक के अलावा, Media3 PreloadManager पर माइग्रेट करने से, आर्किटेक्चर के लिए लंबे समय तक फ़ायदे मिले. इंटिग्रेशन और ट्यूनिंग की प्रोसेस में, परफ़ॉर्मेंस को बैलेंस करने के लिए कई बार बदलाव करने पड़े. हालांकि, इससे जो कोडबेस मिला उसे बनाए रखना आसान है. टीम ने पाया कि PreloadManager एपीआई, मौजूदा Media3 इकोसिस्टम के साथ आसानी से इंटिग्रेट हो गया. इससे संसाधनों को बेहतर तरीके से शेयर किया जा सका. Meta के लिए, Media3 PreloadManager को अपनाना, वीडियो के इस्तेमाल के भविष्य में किया गया एक रणनीतिक निवेश था.
प्रीलोडिंग को अपनाकर और डिवाइस-इंटेलिजेंट गेट जोड़ने से, उन्होंने अपने ऐप्लिकेशन पर वीडियो देखने के कुल समय को बढ़ाया है. साथ ही, अपनी ग्लोबल कम्यूनिटी की दिलचस्पी को भी बेहतर बनाया है.
Instagram और Facebook पर इसका असर
प्रोऐक्टिव आर्किटेक्चर की वजह से, दोनों प्लैटफ़ॉर्म पर तुरंत और मेज़र किए जा सकने वाले सुधार हुए.
- Facebook पर वीडियो तुरंत चलने लगे, वीडियो रुकने की दर कम हुई, और खराब सेशन की संख्या में कमी आई (जैसे, फिर से बफ़र होना, वीडियो चलने में देरी होना, क्वालिटी कम होना वगैरह). इससे वीडियो देखने का कुल समय बढ़ गया.
- Instagram पर वीडियो तुरंत चलने लगे और वीडियो देखने का कुल समय बढ़ गया. वीडियो चलाने में होने वाली देरी को खत्म करने (उपयोगकर्ता की कार्रवाई से लेकर पहले फ़्रेम के दिखने तक का समय) से, लोगों की दिलचस्पी के मेट्रिक में सीधे तौर पर बढ़ोतरी हुई. बफ़रिंग कम होने की वजह से कम रुकावटें आईं. इसका मतलब है कि लोगों ने ज़्यादा कॉन्टेंट देखा. यह लोगों की दिलचस्पी के मेट्रिक से पता चलता है.
बड़े पैमाने पर इंजीनियरिंग से जुड़ी अहम जानकारी
मीडिया के इस्तेमाल की आदतें बदलने के साथ-साथ, तुरंत वीडियो चलाने की सुविधा की मांग बढ़ती रहेगी. प्रोऐक्टिव मेमोरी मैनेजमेंट लागू करने और बड़े पैमाने पर और अलग-अलग डिवाइसों के लिए ऑप्टिमाइज़ करने से, आपका ऐप्लिकेशन इन उम्मीदों को बेहतर तरीके से पूरा कर सकता है.
- इंटेलिजेंट प्रीलोडिंग को प्राथमिकता दें
प्रीलोडिंग की मदद से, वीडियो रुकने की समस्या और लोड होने में लगने वाले समय को कम करके, लोगों को बेहतर अनुभव देने पर फ़ोकस करें. सिर्फ़ डिस्क कैशिंग के बजाय, मेमोरी-लेवल प्रीलोडिंग का इस्तेमाल करने से यह पक्का होता है कि उपयोगकर्ता के इंटरैक्ट करने पर, कॉन्टेंट तुरंत उपलब्ध हो जाए.
- अपने ऐप्लिकेशन को यूज़र इंटरफ़ेस (यूआई) पैटर्न के हिसाब से लागू करें
अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के हिसाब से, प्रीलोडिंग के व्यवहार को कस्टमाइज़ करें. उदाहरण के लिए, मेमोरी बचाने के लिए Facebook जैसे मिक्स फ़ीड के लिए "सिर्फ़ मौजूदा वीडियो" पर फ़ोकस करें. वहीं, Instagram Reels जैसे वर्टिकल एनवायरमेंट के लिए, "आस-पास के वीडियो को प्रीलोड करने" की रणनीति का इस्तेमाल करें.
- लंबे समय तक कोड की क्वालिटी बनाए रखने के लिए, Media3 का इस्तेमाल करें
कस्टम कैशिंग समाधान के बजाय, Media3 एपीआई के साथ इंटिग्रेट करने से, प्लेयर और PreloadManager के बीच संसाधनों को बेहतर तरीके से शेयर किया जा सकता है. इससे, एक प्लेयर इंस्टेंस का इस्तेमाल करके कई वीडियो मैनेज किए जा सकते हैं. इससे, ऐसा कोडबेस मिलता है जो आने वाले समय में भी काम करेगा. साथ ही, इंजीनियरिंग टीमें इसे समय-समय पर बनाए रख सकती हैं और ऑप्टिमाइज़ कर सकती हैं. इसके अलावा, उन्हें नए फ़ीचर अपडेट का फ़ायदा भी मिलता है.
- डिवाइस के हिसाब से ऑप्टिमाइज़ेशन लागू करें
मिड-टू-लो-एंड मॉडल वाले डिवाइसों के साथ-साथ, अलग-अलग डिवाइसों पर टेस्टिंग करके, अपने मार्केट की पहुंच बढ़ाएं. सीपीयू, मेमोरी, और इनपुट/आउटपुट जैसे रीयल-टाइम सिग्नल का इस्तेमाल करके, सुविधाओं और संसाधनों के इस्तेमाल को डाइनैमिक तरीके से अडजस्ट करें.
ज़्यादा जानें
शुरू करने और ज़्यादा जानने के लिए,
- Media3 PreloadManager का दस्तावेज़ देखें.
- बेहतर तकनीकी जानकारी और लागू करने के तरीके के बारे में जानने के लिए, ब्लॉग की सीरीज़ पढ़ें.
- पहला हिस्सा: Media3 के साथ प्रीलोडिंग की सुविधा लॉन्च करना
- दूसरा हिस्सा: Media3 के PreloadManager के बारे में ज़्यादा जानकारी
अब आपको वीडियो को तुरंत चलाने की सुविधा के बारे में पता चल गया है. इसे आज़माएं!
पढ़ना जारी रखें
-
केस स्टडी
Karrot, कम्यूनिटी पर आधारित पीयर-टू-पीयर मार्केटप्लेस ऐप्लिकेशन है. इसकी मदद से, लोग पुष्टि किए गए अन्य उपयोगकर्ताओं के साथ आइटम खरीद, बेच, और ट्रेड कर सकते हैं. इस प्लैटफ़ॉर्म को 2015 में दक्षिण कोरिया में लॉन्च किया गया था. इसके बाद, यह ग्लोबल मार्केट में भी फैल गया है. इसके 4.3 करोड़ से ज़्यादा रजिस्टर किए गए उपयोगकर्ता हैं.
Thomas Ezan, Tracy Agyemang • पढ़ने में 2 मिनट लगेंगे
-
केस स्टडी
Monzo, यूके का एक डिजिटल बैंक है. इसके 1.5 करोड़ ग्राहक हैं और इनकी संख्या लगातार बढ़ रही है. ऐप्लिकेशन के स्केल होने के बाद, इंजीनियरिंग टीम ने ऐप्लिकेशन के स्टार्टअप टाइम को बेहतर बनाने के लिए एक अहम क्षेत्र के तौर पर पहचाना. हालांकि, उन्हें चिंता थी कि इसके लिए, उनके कोडबेस में बड़े बदलाव करने पड़ेंगे.
Ben Weiss • पढ़ने में 2 मिनट लगेंगे
-
केस स्टडी
TikTok, कम अवधि के वीडियो का एक ग्लोबल प्लैटफ़ॉर्म है. यह अपने बड़े उपयोगकर्ता आधार और नई सुविधाओं के लिए जाना जाता है.
Ben Trengrove, Ajesh Pai • पढ़ने में 2 मिनट लगेंगे
अप-टू-डेट रहें
Android डेवलपमेंट से जुड़ी नई जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.