Instagram और Facebook, Media3 PreloadManager की मदद से वीडियो को तुरंत चलाने की सुविधा देते हैं और यूज़र ऐक्टिविटी बढ़ाते हैं
पढ़ने में 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, मौजूदा रील के तुरंत बाद चलने वाली रील को मेमोरी में सेव रखता है. दोनों दिशाओं में काम करने वाले इस तरीके से यह पक्का किया जाता है कि उपयोगकर्ता चाहे ऊपर की ओर स्वाइप करे या नीचे की ओर, ट्रांज़िशन तुरंत और आसानी से हो. इससे, उपयोगकर्ता अनुभव (QoE) में काफ़ी सुधार हुआ. साथ ही, वीडियो चलाने में लगने वाले समय और पहले फ़्रेम को रेंडर करने में लगने वाले समय में भी सुधार हुआ.
दुनिया भर में अलग-अलग तरह के डिवाइसों के लिए, ऐप्लिकेशन को स्केल करना
अरबों डिवाइसों पर, बेहतर परफ़ॉर्म करने वाले वीडियो स्टैक को स्केल करने के लिए, सिर्फ़ एग्रेसिव प्रीलोडिंग की ज़रूरत नहीं होती. इसके लिए, इंटेलिजेंस की ज़रूरत होती है. Meta को मेमोरी प्रेशर और स्क्रोल लैग से जुड़ी शुरुआती समस्याओं का सामना करना पड़ा. खास तौर पर, मिड-टू-लो-एंड हार्डवेयर पर. इस समस्या को हल करने के लिए, उन्होंने Media3 को लागू करके डिवाइस स्ट्रेस डिटेक्शन सिस्टम बनाया. अब ये ऐप्लिकेशन, I/O और सीपीयू के सिग्नल को रीयल-टाइम में मॉनिटर करते हैं. अगर किसी डिवाइस पर बहुत ज़्यादा लोड है, तो यूज़र इंटरफ़ेस (यूआई) के रिस्पॉन्स को प्राथमिकता देने के लिए, प्रीलोडिंग को रोक दिया जाता है.
डिवाइस के हिसाब से किए गए इस ऑप्टिमाइज़ेशन से यह पक्का होता है कि वीडियो तुरंत चलाने की सुविधा से सिस्टम की स्थिरता पर कोई असर न पड़े. इससे पुराने हार्डवेयर का इस्तेमाल करने वाले लोग भी बिना किसी रुकावट के वीडियो देख पाएंगे.
आर्किटेक्चर से जुड़ी उपलब्धियां और कोड की क्वालिटी
उपयोगकर्ता को दिखने वाली मेट्रिक के अलावा, Media3 PreloadManager पर माइग्रेट करने से, आर्किटेक्चर से जुड़े फ़ायदे लंबे समय तक मिलते हैं. इंटिग्रेशन और ट्यूनिंग की प्रोसेस में, परफ़ॉर्मेंस को बेहतर बनाने के लिए कई बार बदलाव करने पड़े. हालांकि, इससे तैयार हुआ कोडबेस ज़्यादा आसानी से मैनेज किया जा सकता है. टीम को पता चला कि PreloadManager एपीआई, मौजूदा Media3 के साथ आसानी से इंटिग्रेट हो जाता है. इससे, संसाधनों को बेहतर तरीके से शेयर किया जा सकता है. Meta के लिए, Media3 PreloadManager को अपनाना, वीडियो देखने के अनुभव को बेहतर बनाने की दिशा में एक रणनीतिक निवेश था.
प्रीलोडिंग की सुविधा का इस्तेमाल करके और डिवाइस के हिसाब से स्मार्ट गेट जोड़कर, उन्होंने अपने ऐप्लिकेशन पर कुल वॉच टाइम को बढ़ाया. साथ ही, दुनिया भर के दर्शकों की दिलचस्पी को बेहतर बनाया.
Instagram और Facebook पर इसका असर
प्रोऐक्टिव आर्किटेक्चर की वजह से, दोनों प्लैटफ़ॉर्म पर तुरंत और मेज़र किए जा सकने वाले सुधार हुए.
- Facebook पर, वीडियो तेज़ी से चलने लगे, वीडियो रुकने की दर कम हो गई, और खराब सेशन की संख्या में कमी आई. जैसे, वीडियो के बफ़र होने में लगने वाला समय कम हो गया, वीडियो के चलने में लगने वाला समय कम हो गया, और वीडियो की क्वालिटी बेहतर हो गई. इससे वीडियो देखने का कुल समय बढ़ गया.
- Instagram पर, वीडियो तेज़ी से चलने लगे और उन्हें देखने के कुल समय में बढ़ोतरी हुई. उपयोगकर्ता की कार्रवाई और पहले फ़्रेम के दिखने के बीच के समय को कम करने से, यूज़र ऐक्टिविटी की मेट्रिक में सीधे तौर पर बढ़ोतरी हुई. बफ़रिंग कम होने की वजह से, कम रुकावटें आईं. इसका मतलब है कि उपयोगकर्ताओं ने ज़्यादा कॉन्टेंट देखा. यह यूज़र ऐक्टिविटी वाली मेट्रिक से पता चलता है.
बड़े पैमाने पर इंजीनियरिंग से जुड़ी अहम जानकारी
मीडिया इस्तेमाल करने की आदतें बदल रही हैं. इसलिए, इंस्टैंट एक्सपीरियंस की मांग बढ़ती रहेगी. मेमोरी को पहले से मैनेज करने की सुविधा लागू करने के साथ-साथ, अलग-अलग डिवाइसों के हिसाब से ऐप्लिकेशन को ऑप्टिमाइज़ करने से, यह पक्का किया जा सकता है कि आपका ऐप्लिकेशन इन उम्मीदों को पूरा कर सके.
- इंटेलिजेंट प्रीलोडिंग को प्राथमिकता देना
प्रीलोडिंग की मदद से, वीडियो के रुकने और लोड होने में लगने वाले समय को कम करें. इससे, दर्शकों को भरोसेमंद अनुभव मिलेगा. डिस्क कैश मेमोरी के बजाय, मेमोरी-लेवल प्रीलोडिंग का इस्तेमाल करने से यह पक्का होता है कि जैसे ही कोई उपयोगकर्ता कॉन्टेंट से इंटरैक्ट करे, वह तुरंत उपलब्ध हो जाए.
- यूज़र इंटरफ़ेस (यूआई) के पैटर्न के हिसाब से, लागू करने की प्रोसेस को अलाइन करना
अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) के हिसाब से, प्रीलोडिंग के तरीके को पसंद के मुताबिक बनाएं. उदाहरण के लिए, मेमोरी बचाने के लिए Facebook जैसे मिक्स फ़ीड के लिए, "सिर्फ़ मौजूदा" फ़ोकस का इस्तेमाल करें. साथ ही, Instagram Reels जैसे वर्टिकल एनवायरमेंट के लिए, "आस-पास के आइटम पहले से लोड करें" रणनीति का इस्तेमाल करें.
- लंबे समय तक कोड को बेहतर बनाए रखने के लिए Media3 का इस्तेमाल करना
कस्टम कैशिंग समाधान के बजाय Media3 एपीआई के साथ इंटिग्रेट करने से, प्लेयर और PreloadManager के बीच बेहतर तरीके से संसाधन शेयर किए जा सकते हैं. इससे, एक ही प्लेयर इंस्टेंस से कई वीडियो मैनेज किए जा सकते हैं. इससे, आने वाले समय में काम करने वाला कोडबेस तैयार होता है. इंजीनियरिंग टीमें इसे समय के साथ आसानी से बनाए रख सकती हैं और ऑप्टिमाइज़ कर सकती हैं. साथ ही, नई सुविधाओं से जुड़े अपडेट का फ़ायदा भी पा सकती हैं.
- डिवाइस के हिसाब से ऑप्टिमाइज़ेशन लागू करना
मिड-टू-लो-एंड मॉडल वाले डिवाइसों के साथ-साथ अन्य डिवाइसों पर भी टेस्टिंग करके, अपने ऐप्लिकेशन की पहुंच बढ़ाएं. सीपीयू, मेमोरी, और I/O जैसे रीयल-टाइम सिग्नल का इस्तेमाल करके, सुविधाओं और संसाधनों के इस्तेमाल को डाइनैमिक तरीके से अडैप्ट करें.
ज़्यादा जानें
शुरू करने और ज़्यादा जानने के लिए, पर जाएं
- Media3 के PreloadManager से जुड़ा दस्तावेज़ पढ़ें.
- ऐडवांस तकनीकी और लागू करने से जुड़ी ज़्यादा जानकारी के लिए, ब्लॉग सीरीज़ पढ़ें.
- प्रीलोडिंग की सुविधा को काम करते हुए देखने के लिए, सैंपल के तौर पर मिला ऐप्लिकेशन देखें.
अब आपको तुरंत चलने वाले वीडियो के बारे में पता चल गया है. इन्हें आज़माकर देखें!
-
केस स्टडीKarrot, आस-पास के इलाके के लोगों के लिए बनाया गया एक ऐसा मार्केटप्लेस ऐप्लिकेशन है जहां लोग आपस में सामान खरीदते, बेचते, और बदलते हैं. इस ऐप्लिकेशन पर, पुष्टि किए गए लोग ही सामान खरीद, बेच, और बदल सकते हैं. इस प्लैटफ़ॉर्म को 2015 में दक्षिण कोरिया में लॉन्च किया गया था. इसके बाद, यह दुनिया भर के बाज़ारों में फैल गया. इस पर 4.3 करोड़ से ज़्यादा लोग रजिस्टर कर चुके हैं.
Thomas Ezan, Tracy Agyemang • दो मिनट में पढ़ें -
केस स्टडीMonzo, यूनाइटेड किंगडम का एक डिजिटल बैंक है. इसके 1.5 करोड़ ग्राहक हैं और इनकी संख्या लगातार बढ़ रही है. ऐप्लिकेशन के बढ़ने के साथ-साथ, इंजीनियरिंग टीम ने ऐप्लिकेशन के शुरू होने में लगने वाले समय को सुधार के लिए एक अहम क्षेत्र के तौर पर पहचाना. हालांकि, टीम को चिंता थी कि इसके लिए, उन्हें अपने कोडबेस में काफ़ी बदलाव करने होंगे.
Ben Weiss, Tracy Agyemang • दो मिनट में पढ़ें -
केस स्टडीवियरेबल डिवाइस के लिए Android ऐप्लिकेशन बनाने का मतलब है कि स्क्रीन बंद होने पर असली काम शुरू होता है.
Breana Tate, Tracy Agyemang • पढ़ने में 4 मिनट लगेंगे
Android डेवलपमेंट से जुड़ी नई अहम जानकारी, हर हफ़्ते अपने इनबॉक्स में पाएं.