विषय - सूची[छिपाना][प्रदर्शन]
यदि आपने कोई समय ऑनलाइन बिताया है तो इस बात की बहुत अच्छी संभावना है कि आपने कुछ स्ट्रीम किया है।
स्ट्रीमिंग इंटरनेट के सबसे प्रसिद्ध ऐप्स के लिए सबसे आम उपयोगों में से एक है, चाहे वह YouTube, Spotify, Netflix, या सौ अन्य के माध्यम से हो।
हालाँकि, यह देखते हुए कि स्ट्रीमिंग कितनी सामान्य है, इसे स्वीकार करना आसान है। उदाहरण के लिए: स्ट्रीमिंग क्या है, बिल्कुल?
कोई भी मीडिया सामग्री, चाहे वह लाइव हो या रिकॉर्ड की गई हो, जो इंटरनेट पर कंप्यूटर और मोबाइल उपकरणों पर भेजी जाती है और वास्तविक समय में वापस चलाई जाती है, स्ट्रीमिंग कहलाती है।
सामान्य प्रकार की स्ट्रीमिंग सामग्री में पॉडकास्ट, वेबकास्ट, मोशन पिक्चर्स, टेलीविज़न शो और संगीत वीडियो शामिल हैं।
मीडिया आइटम जैसे संगीत, वीडियो और अन्य प्रकार की योजना बनाई जाती है और लगातार डेटा पैकेट में स्थानांतरित की जाती है ताकि उन्हें तुरंत स्ट्रीम किया जा सके।
एक उपयुक्त डिवाइस, स्ट्रीमिंग सेवा या ऐप तक पहुंच, और एक तेज़, भरोसेमंद हाई-स्पीड इंटरनेट कनेक्शन आपको स्ट्रीम करने की आवश्यकता है।
नोट: हम अपने उदाहरण के रूप में एक वीडियो स्ट्रीमिंग सेवा का उपयोग करेंगे।
यह पोस्ट वीडियो स्ट्रीमिंग एप्लिकेशन विकसित करते समय स्ट्रीमिंग सेवा के सिस्टम डिज़ाइन और प्रमुख कारकों को ध्यान में रखेगा।
सिस्टम आवश्यकताएँ
दुनिया में सबसे लोकप्रिय वीडियो स्ट्रीमिंग सेवाओं में यूट्यूब और नेटफ्लिक्स हैं। उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, उनकी वास्तुकला में कई तत्व शामिल हैं।
इस तरह की सेवा में लोकप्रिय फिल्में, चालान-प्रक्रिया, एआई-आधारित अनुशंसा प्रणाली और बाद की कार्यक्षमता को देखना शामिल है, लेकिन हम आवश्यक तत्वों पर ध्यान केंद्रित करेंगे।
मूल गुण
हमने अपनी अवधारणा में निम्नलिखित क्षमताओं को शामिल किया है वीडियो स्ट्रीमिंग सर्विस:
- सामग्री के निर्माता वीडियो पोस्ट कर सकते हैं।
- दर्शक वीडियो (मोबाइल, टीवी, आदि) देखने के लिए कई उपकरणों का उपयोग कर सकते हैं।
- वीडियो पर, उपयोगकर्ता टिप्पणी, पसंद या नापसंद कर सकते हैं।
- वीडियो के शीर्षक का उपयोग उन्हें खोजने के लिए किया जा सकता है।
- उपयोगकर्ताओं को ये आंकड़े दिखाने के लिए, सिस्टम दृश्य, पसंद और नापसंद को संग्रहीत कर सकता है।
सिस्टम उद्देश्य
- कोई बफरिंग नहीं होनी चाहिए ताकि दर्शक रीयल-टाइम में वीडियो देख सकें।
- वीडियो के लिए स्टोरेज भरोसेमंद होना चाहिए। आपके द्वारा अपलोड किए गए वीडियो को आपको खोना नहीं चाहिए।
- उपयोगकर्ताओं में वृद्धि के साथ, सिस्टम को स्केलेबल होना चाहिए।
- कम विलंबता और उच्च उपलब्धता प्रणाली की विशेषताएं होनी चाहिए। इस स्थिति में, संगति उतनी महत्वपूर्ण नहीं है क्योंकि उपयोगकर्ता के लिए नई सबमिट की गई मूवी देखने से पहले कुछ समय प्रतीक्षा करना ठीक है।
एक एकल सर्वर डेटा की मात्रा को संभाल नहीं सकता क्योंकि सिस्टम को नियमित रूप से मजबूत यातायात का प्रबंधन करना चाहिए। सिस्टम की सेवा के लिए सर्वरों के एक समूह का उपयोग किया जाएगा।
क्लाइंट के लिए कोई ध्यान देने योग्य गति प्रभाव नहीं होना चाहिए, भले ही एक सर्वर क्रैश हो जाए।
उच्च स्तरीय वास्तुकला
एक वीडियो स्ट्रीमिंग प्रोग्राम तीन अलग-अलग प्रकार के अनुरोधों में से एक को स्वीकार कर सकता है:
- अपलोड करें (लिखें)
- खोजें (पढ़ें)
- देखें (पढ़ें)
चूंकि रीड क्वेश्चन (खोज और दृश्य) अक्सर लिखने के अनुरोधों (अपलोड) की तुलना में कई गुना अधिक होते हैं, उनमें से प्रत्येक को सर्वर के एक अलग क्लस्टर द्वारा नियंत्रित किया जाता है।
चूंकि कार्यक्रम पढ़ने के लिए गहन है, इसलिए आपको अपलोड की तुलना में पठन अनुरोधों को संभालने के लिए अधिक सर्वर स्थापित करने की आवश्यकता होगी।
क्लाइंट द्वारा किए गए प्रत्येक अनुरोध को द्वारा उचित माइक्रोसर्विस के लिए रूट किया जाता है भार संतुलन जब यह प्राप्त होता है।
सेवा अपलोड करें
अपलोड सेवा, जो वीडियो को संसाधित करती है, इसे ओपन कनेक्ट सर्वर पर अपलोड करती है और इसे सभी उपयोगकर्ताओं के लिए सुलभ बनाती है, एक अपलोड अनुरोध को पूरा करती है।
खोज सेवा
लोड बैलेंसर सर्च माइक्रोसर्विस को सर्च रिक्वेस्ट भेजता है, जो फिर इसे नेटफ्लिक्स के इलास्टिक सर्च में भेजता है। क्लाइंट को इलास्टिक सर्च का जवाब मिलता है।
लोचदार खोज, एक अविश्वसनीय रूप से स्केलेबल पूर्ण-पाठ ओपन-सोर्स सर्च इंजन, नेटफ्लिक्स द्वारा लाखों वीडियो खोजने के लिए उपयोग किया जाता है।
ग्राहक सेवा संचालन का विश्लेषण करने के लिए नेटफ्लिक्स द्वारा लोचदार खोज का उपयोग किया जाता है।
सेवा देखें
अधिकांश दृश्य अनुरोध लोड बैलेंसर या नेटफ्लिक्स के सर्वर पर नहीं भेजे जाएंगे। इसके बजाय, उपयोगकर्ता स्थानीय आईएसपी से जुड़ेंगे और सीधे निकटतम ओपन कनेक्ट सर्वर से फीड किए जाएंगे।
हालांकि, यदि अनुरोधित वीडियो पहुंच योग्य नहीं है, तो इसे लोड बैलेंसर और व्यू माइक्रोसर्विस को भेजा जाएगा।
फिर वीडियो को मेटाडेटा डेटाबेस में खोजा जाता है, मेटाडेटा में निर्दिष्ट पथ से पुनर्प्राप्त किया जाता है, और क्लाइंट को प्रेषित किया जाता है।
बेशक, इस तकनीक में विलंबता शामिल है, यही वजह है कि व्यावहारिक रूप से सभी दृश्य अनुरोध ओपन कनेक्ट के माध्यम से प्रदान किए जाते हैं।
वीडियो अपलोड करें
YouTube का मुख्य उद्देश्य मूवी या वीडियो अपलोड करना है। वीडियो स्ट्रीमिंग सेवा को अपने उपभोक्ताओं के लिए वीडियो सुलभ बनाने से पहले कई बाधाओं को दूर करना होगा।
टुकड़ों में रखना
सबमिट किए गए प्रत्येक वीडियो को एक बड़ी फ़ाइल के रूप में रखने के बजाय कई छोटी फ़ाइलों में विभाजित किया जाएगा।
यह आवश्यक है क्योंकि सामग्री निर्माता विशाल वीडियो प्रस्तुत करने में सक्षम हैं। एक बड़ी फ़ाइल को संसाधित या स्ट्रीम करने में कुछ समय लग सकता है।
यदि इसे सहेज कर उन्हें टुकड़ों में उपलब्ध कराया जाता है, तो इसे चलाने के लिए दर्शक को पूरा वीडियो डाउनलोड करने की आवश्यकता नहीं होगी।
यह सुनिश्चित करने के लिए कि विखंडू के बीच थोड़ी विलंबता है और उपयोगकर्ता के पास एक सहज देखने का अनुभव है, ग्राहक पहले सर्वर से पहले चंक का अनुरोध करेगा और फिर उस चंक के चलने के दौरान निम्नलिखित चंक का अनुरोध करेगा।
प्रसंस्करण कतार
प्रत्येक वीडियो में कई भाग होते हैं, और नेटफ्लिक्स उनका विश्लेषण करने के लिए एक साथ कई श्रमिकों का उपयोग करेगा, इस प्रकार एक प्रसंस्करण कतार की आवश्यकता होती है। उन्हें कतार में जोड़ने से यह आसान हो जाता है।
कार्य श्रमिकों (या एन्कोडर, जिसे हम आगे कवर करेंगे) द्वारा एकत्र किया जाएगा, विभिन्न स्वरूपों में एन्कोड किया जाएगा, और फिर वितरित फ़ाइल संग्रहण में संग्रहीत किया जाएगा।
वीडियो एन्कोडिंग
वीडियो के हिस्सों को कई प्रारूपों में परिवर्तित करना और सहेजना महत्वपूर्ण है ताकि दर्शक उस तकनीक और इंटरनेट कनेक्शन का उपयोग करके उन तक पहुंच सकें जो उनके लिए सबसे अच्छा काम करता है।
वीडियो को दर्शक लैपटॉप, फोन, टीवी या अन्य गैजेट्स पर देख सकते हैं। विभिन्न उपकरणों के लिए इष्टतम प्रारूप एक दूसरे से भिन्न होते हैं।
इसी तरह, विभिन्न दर्शक इंटरनेट का उपयोग करने के लिए विभिन्न बैंडविथ का उपयोग कर सकते हैं।
कुछ दर्शक अपने इंटरनेट कनेक्शन या बैंडविड्थ की गति के आधार पर उच्च-रिज़ॉल्यूशन वाली फिल्मों को आसानी से स्ट्रीम करने में सक्षम हो सकते हैं, जबकि कम बैंडविड्थ वाले लोग कम गुणवत्ता वाले वीडियो को अधिक आसानी से स्ट्रीम करने में सक्षम होंगे।
ओपन कनेक्ट
जब आप Netflix.com का अनुरोध करने के लिए अपने ब्राउज़र का उपयोग करते हैं, तो आपके ISP (इंटरनेट सेवा प्रदाता) को वास्तव में आपके कंप्यूटर और नेटफ्लिक्स सर्वर के बीच संबंध स्थापित करने के लिए कहा जाता है।
आपका ISP आपकी ओर से Netflix IP पते से संपर्क करता है और आपको परिणाम लौटाता है। टोक्यो जैसे दूरस्थ राष्ट्र में दर्शकों को अमेरिका में इन सर्वरों की एकाग्रता के कारण सिग्नल प्रसारित करने और प्राप्त करने में महत्वपूर्ण देरी का अनुभव होगा।
वीडियो के साथ, देरी बहुत अधिक चिंता का विषय है क्योंकि दर्शकों को बहुत अधिक डेटा प्रसारित किया जाना चाहिए, और यदि ऐसा है, तो स्ट्रीमिंग में देरी होगी और उपयोगकर्ता के अनुभव को नुकसान होगा।
नेटफ्लिक्स समस्या को ठीक करने के लिए एक चतुर तकनीक का उपयोग करता है। इसे ओपन कनेक्ट (OC) के नाम से जाना जाता है। ओपन कनेक्ट वह सीडीएन है जिसका उपयोग नेटफ्लिक्स (कंटेंट डिलीवरी नेटवर्क) करता है।
ऑनलाइन जानकारी को कैश करने और उपयोगकर्ता और सामग्री के बीच भौतिक दूरी को कम करके उपभोक्ताओं को तेजी से वितरित करने के लिए, सीडीएन स्प्रेड सर्वर और संबंधित डेटा केंद्रों का एक नेटवर्क है।
भार संतुलन
A एकल आवेदन सर्वर हर सेकेंड आने वाले अनुरोधों की मात्रा (अपलोड करने, खोजने और देखने के अनुरोधों सहित) को संभालने में असमर्थ है।
कई सर्वरों में कार्यभार को प्रभावी ढंग से वितरित करने के लिए एक लोड बैलेंसर होना चाहिए क्योंकि इसमें कई सर्वर शामिल हैं।
नेटफ्लिक्स सर्वरों के बीच लोड वितरित करने के लिए निरंतर हैशिंग का उपयोग करता है क्योंकि यह सर्वर विफलताओं को संभाल सकता है और अतिरिक्त सर्वरों की स्थापना को आसानी से समायोजित कर सकता है।
चूंकि प्रत्येक वीडियो की लोकप्रियता अलग-अलग होती है, इसलिए इन फिल्मों को होस्ट करने वाले वास्तविक सर्वर एक असमान भार का अनुभव कर सकते हैं। गतिशील HTTP पुनर्निर्देशन का उपयोग करना, जो एक व्यस्त सर्वर को एक खुले सर्वर पर एक नए अनुरोध को मोड़ने की अनुमति देता है, हम इस समस्या को ठीक कर सकते हैं।
वीडियो स्ट्रीमिंग एप्लिकेशन विकसित करते समय विचार
अपना आला खोजें और विकसित करें
मनोरंजन से लेकर शिक्षा से लेकर फिटनेस तक कई तरह की सामग्री उपलब्ध होने के साथ, एक विशेष विशेषता के साथ एक विभेदक का निर्माण करना महत्वपूर्ण है। आप वृत्तचित्रों या स्वतंत्र फिल्मों के लिए एक मंच बना सकते हैं।
एप्लिकेशन का मुद्रीकरण
पारंपरिक मुद्रीकरण पैटर्न को बाधित करने से नवाचार और विकास हो सकता है। योजनाओं को हमेशा लक्षित दर्शकों के अनुरूप बनाया जाना चाहिए।
क्योंकि पदधारियों ने पहले ही बाजार पर एकाधिकार कर लिया है, आप विज्ञापनों या उत्पाद प्लेसमेंट के साथ मुफ्त सदस्यता का मुद्रीकरण करने का प्रयास कर सकते हैं।
इसके साथ ही, यदि आप एक वैश्विक स्ट्रीमिंग सेवा मंच का निर्माण करना चाहते हैं, तो आपको बहु-मुद्रा आवश्यकताओं पर विचार करना चाहिए।
बेहतर अनुभव
धीमी इंटरनेट या प्रतिबंधित पहुंच वाले उपयोगकर्ताओं जैसी चरम परिस्थितियों के लिए कार्यक्रम के प्रदर्शन को बढ़ाया जाना चाहिए।
स्ट्रीमिंग वीडियो
नेटफ्लिक्स न केवल सामग्री प्रसारित करता है, बल्कि उपयोगकर्ताओं को सेवा से जोड़े रखने के लिए उपयोगकर्ता-इंजीनियरिंग तकनीकों और व्यक्तिगत सुझावों का भी उपयोग करता है।
डेटा एनालिटिक्स और उपयोगकर्ता अनुकूलन पर जोर देने के साथ नेटफ्लिक्स के समान एक स्ट्रीमिंग सेवा स्थापित करने की योजना है।
ऐप की कई भूमिकाओं का प्रबंधन
नेटफ्लिक्स ऐप में, उपयोगकर्ता दृश्य कई उपयोगकर्ता भूमिकाओं में से एक है। विभिन्न प्रकार के उपयोगकर्ताओं और उनकी पहुंच के लिए नियोजन आवश्यक है, जिसमें व्यवस्थापक, वीडियो स्वामी, भागीदार, मॉडरेटर आदि शामिल हैं।
निष्कर्ष
अंत में, नेटफ्लिक्स, यूट्यूब और अन्य ऑनबोर्ड वीडियो जैसी वीडियो स्ट्रीमिंग सेवाएं उनका ट्रैक बनाए रखती हैं और उन्हें लाखों उपभोक्ताओं को दिखाती हैं।
हालांकि इनमें से प्रत्येक एप्लिकेशन में कुछ अतिरिक्त विशेषताएं हो सकती हैं जो उन्हें अलग करती हैं, मौलिक कार्यक्षमता समान एल्गोरिदम पर आधारित होती है।
मैंने आपको स्ट्रीमिंग सेवा सिस्टम आर्किटेक्चर का एक सामान्य अवलोकन देने की पूरी कोशिश की, लेकिन पृष्ठभूमि में और भी बहुत कुछ चल रहा है।
मैं वास्तव में आशा करता हूं कि आप इस ज्ञान को मूल्यवान पाएंगे और इसका उपयोग करेंगे।
एक जवाब लिखें