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