Steaming डेटा ट्रांसमिशन की वह विधि है जिसका उपयोग तब किया जाता है जब कोई internet पर video देखता है। यह एक वीडियो फ़ाइल को एक बार में, अक्सर दूरस्थ संग्रहण स्थान से वितरित करने का एक तरीका है। इंटरनेट पर एक बार में file के कुछ सेकंड transmit करने से, क्लाइंट डिवाइस को चलाने के लिए शुरू करने से पहले पूरे वीडियो को download करने की आवश्यकता नहीं होती है।
live streaming तब होती है जब स्ट्रीम किए गए वीडियो को पहले रिकॉर्ड किए और store किए बिना, वास्तविक समय में इंटरनेट पर भेजा जाता है। आज, टीवी प्रसारण, वीडियो गेम स्ट्रीम और social media वीडियो सभी को लाइव-स्ट्रीम किया जा सकता है।
नियमित स्ट्रीमिंग और लाइव स्ट्रीमिंग के बीच अंतर के बारे में सोचें क्योंकि एक अभिनेता एक याद किए गए एकालाप को पढ़ने और एक भाषण को सुधारने के बीच का अंतर है। पूर्व में, सामग्री पहले से बनाई जाती है, store की जाती है, और फिर दर्शकों को रिले की जाती है। बाद में, दर्शकों को सामग्री उसी क्षण प्राप्त होती है जब अभिनेता इसे बनाता है – ठीक उसी तरह जैसे लाइव स्ट्रीमिंग में।
लाइव स्ट्रीमिंग शब्द आमतौर पर लाइव स्ट्रीम को प्रसारित करने के लिए संदर्भित करता है: एक-से-कई कनेक्शन जो एक साथ कई users के लिए बाहर जाते हैं। Skype, facetime और गूगल हैंगआउट मीट जैसी वीडियोकांफ्रेंसिंग प्रौद्योगिकियां एक-से-कई लाइव स्ट्रीम प्रसारण द्वारा उपयोग किए जाने वाले प्रोटोकॉल के बजाय रीयल-टाइम संचार (RTC) Protocol पर काम करती हैं।
तकनीकी स्तर पर लाइव स्ट्रीमिंग कैसे काम करती है?
लाइव स्ट्रीम में पर्दे के पीछे होने वाले मुख्य चरण ये हैं:
- Compression
- Encoding
- Segmentation
- Content delivery network (CDN) distribution
- CDN caching
- Decoding
- Video playback
विडियो रिकॉर्ड
लाइव स्ट्रीमिंग raw video data से शुरू होती है: कैमरे द्वारा capture की गई दृश्य जानकारी। कंप्यूटिंग डिवाइस के भीतर जिससे कैमरा जुड़ा हुआ है, इस दृश्य जानकारी को digital data के रूप में दर्शाया जाता है – दूसरे शब्दों में, 1s और 0s सबसे गहरे स्तर पर।
Compression और Encoding
अगला, खंडित वीडियो data compression और encode किया गया है। अनावश्यक दृश्य जानकारी को हटाकर डेटा को compress किया जाता है। उदाहरण के लिए, यदि वीडियो का पहला फ्रेम किसी व्यक्ति को grey background के विरुद्ध बात करते हुए प्रदर्शित करता है, तो grey background को समान background वाले किसी भी अनुवर्ती फ़्रेम के लिए render करने की आवश्यकता नहीं है।
वीडियो कंप्रेशन को लिविंग रूम में नए फर्नीचर के टुकड़े को जोड़ने जैसा समझें। हर बार एक नई कुर्सी या साइड टेबल जोड़ने पर पूरी तरह से नया फर्नीचर खरीदना जरूरी नहीं है। इसके बजाय कमरे के layout को लगभग समान रखना और एक समय में केवल एक टुकड़े को बदलना संभव है, कभी-कभी आवश्यकतानुसार बड़ी व्यवस्था करना। इसी तरह, वीडियो स्ट्रीम के प्रत्येक फ्रेम को कुल मिलाकर प्रस्तुत करने की आवश्यकता नहीं है – केवल वे भाग जो फ्रेम से फ्रेम में बदलते हैं, जैसे कि किसी व्यक्ति के मुंह की गति।
“encoding” डेटा को एक नए format में परिवर्तित करने की प्रक्रिया को संदर्भित करता है। लाइव स्ट्रीमिंग वीडियो डेटा एक व्याख्यात्मक डिजिटल प्रारूप में एन्कोड किया गया है जिसे विभिन्न प्रकार के डिवाइस पहचानते हैं। सामान्य वीडियो एन्कोडिंग मानकों में शामिल हैं:
- H.264
- H.265
- VP9
- AV1
विभाजन (Segmentation)
वीडियो में बहुत सारी डिजिटल जानकारी शामिल होती है, यही कारण है कि एक छोटी PDF या एक image को download करने की तुलना में video file को डाउनलोड करने में अधिक समय लगता है। क्योंकि एक बार में सभी वीडियो डेटा को internet पर भेजना व्यावहारिक नहीं होगा, स्ट्रीमिंग वीडियो को कुछ सेकंड की लंबाई में छोटे खंडों में विभाजित किया जाता है।
CDN वितरण और caching
एक बार लाइव स्ट्रीम को खंडित, compressed और encode किया जाता है (जिनमें से सभी में केवल कुछ सेकंड लगते हैं), इसे उन दर्जनों या लाखों दर्शकों के लिए उपलब्ध कराने की आवश्यकता है जो इसे देखना चाहते हैं। विभिन्न स्थानों में एकाधिक दर्शकों को स्ट्रीम की सेवा करते समय न्यूनतम विलंबता के साथ उच्च गुणवत्ता बनाए रखने के लिए, एक cdn को इसे वितरित किया जाता है ।
CDN सर्वरों का एक वितरित नेटवर्क है जो मूल सर्वर की ओर से सामग्री को कैश और परोसता है। सीडीएन का उपयोग करने से तेजी से प्रदर्शन होता है, क्योंकि उपयोगकर्ता अनुरोधों को अब मूल सर्वर तक नहीं जाना पड़ता है, बल्कि इसके बजाय नजदीकी सीडीएन सर्वर द्वारा नियंत्रित किया जा सकता है। अनुरोधों को संभालना और इस तरह से सामग्री वितरित करना भी मूल सर्वर के कार्यभार को कम करता है। अंत में, सीडीएन दुनिया भर के उपयोगकर्ताओं को कुशलता से सामग्री की सेवा करना संभव बनाता है क्योंकि उनके सर्वर एक भौगोलिक क्षेत्र में क्लस्टर होने के बजाय पूरी दुनिया में स्थित हैं।
एक सीडीएन लाइव स्ट्रीम के प्रत्येक सेगमेंट को अस्थायी रूप से सहेजेगा – कैश करेगा, इसलिए अधिकांश दर्शकों को मूल सर्वर के बजाय सीडीएन कैश से लाइव स्ट्रीम मिलेगी। यह वास्तव में लाइव स्ट्रीम को वास्तविक समय के करीब बनाता है, भले ही कैश्ड डेटा कुछ सेकंड पीछे हो, क्योंकि यह मूल सर्वर से और उसके लिए राउंड-ट्रिप समय (RTT) में कटौती करता है।
डिकोडिंग और वीडियो प्लेबैक
सीडीएन उन सभी उपयोगकर्ताओं को लाइव स्ट्रीम भेजता है जो स्ट्रीम देख रहे हैं। प्रत्येक उपयोगकर्ता का उपकरण खंडित वीडियो डेटा प्राप्त करता है, डिकोड करता है और विघटित करता है। अंत में, उपयोगकर्ता के डिवाइस पर एक मीडिया प्लेयर – या तो एक समर्पित ऐप या ब्राउज़र के भीतर एक वीडियो प्लेयर – डेटा को दृश्य जानकारी के रूप में व्याख्या करता है, और वीडियो चलता है।
एक उदाहरण
मान लीजिए ऐलिस अपने स्मार्टफोन पर एक लाइव स्ट्रीम शुरू करती है और बॉब, जो देश के दूसरी तरफ रहता है, ऐलिस के कुछ दर्जन और दोस्तों के साथ अपने स्मार्टफोन पर लाइव स्ट्रीम में ट्यून करता है। ऐलिस स्मार्टफोन के कैमरे को अपने आप चालू करके लाइव स्ट्रीम शुरू करती है और कहती है, “नमस्ते, दुनिया!” वीडियो के उस “नमस्ते, दुनिया” खंड के लिए देश के दूसरी तरफ बॉब तक पहुंचने के लिए, अन्य सभी लोगों के साथ स्ट्रीम देखने के लिए क्या करना होगा?
सबसे पहले, ऐलिस का स्मार्टफोन वीडियो के उस छोटे से हिस्से को एन्कोड और कंप्रेस करेगा। अगर ऐलिस अपनी रसोई में लाइव स्ट्रीम फिल्मा रही है, तो उसकी रसोई की दीवार वीडियो के पहले फ्रेम के रूप में रिकॉर्ड की जाती है, और बाद के फ्रेम इसे छोड़ देंगे क्योंकि पृष्ठभूमि नहीं बदलेगी।
अब ऐलिस जिस ऐप का उपयोग कर रही है, वह उसके “हैलो, वर्ल्ड” के एन्कोडेड, कंप्रेस्ड वर्जन को ऐप के सीडीएन को भेज देगी। सौभाग्य से बॉब के लिए, सीडीएन सर्वरों में से एक उसके घर से कुछ ही मील दूर है, इसलिए लाइव स्ट्रीम के पहले खंड के लिए उसके स्मार्टफोन के अनुरोध का लगभग तुरंत जवाब दिया जाता है। अन्य लाइव स्ट्रीम दर्शकों को उनकी भौगोलिक स्थिति के आधार पर बॉब की तुलना में कम या ज्यादा विलंबता का अनुभव हो सकता है।
बॉब का फोन वीडियो सेगमेंट को डीकोड करता है और संपीड़ित डेटा को फिर से बनाता है, ताकि ऐलिस की रसोई की दीवार हर फ्रेम में दिखाई दे। और अंत में, देश के दूसरी ओर अपनी रसोई में ऐलिस के “हैलो, वर्ल्ड” कहने के कुछ ही सेकंड बाद, बॉब के स्मार्टफोन पर उसका चेहरा दिखाई देता है और बॉब उसका अभिवादन देखता और सुनता है।
सीडीएन लाइव स्ट्रीमिंग के लिए क्यों महत्वपूर्ण है?
Bandwidth: नेटवर्क पर किसी दिए गए बिंदु में एक बार में केवल इतना डेटा पास हो सकता है; इस माप को “बैंडविड्थ” के रूप में जाना जाता है। यदि डेटा की एक धारा नेटवर्क पर एक बिंदु तक पहुँच जाती है जहाँ डेटा की मात्रा क्षमता से अधिक हो जाती है, तो इसे “चोक पॉइंट” कहा जाता है क्योंकि डेटा वितरण बंद हो जाता है और धीमा हो जाता है। एक चोक पॉइंट उसी तरह होता है जिस तरह से ट्रैफ़िक में मंदी हो सकती है जब बहुत सारी कारें सिंगल-लेन सड़क का उपयोग करने का प्रयास करती हैं।
यदि किसी स्ट्रीम के सभी दर्शकों को उसके मूल स्थान से स्ट्रीम डेटा मिल रहा है, तो मूल सर्वर और उसके आसपास के नेटवर्क का बुनियादी ढांचा एक चोक पॉइंट बन जाता है और स्ट्रीम धीमा हो जाता है। लेकिन अगर स्ट्रीम डिलीवरी का मुख्य बोझ सीडीएन में ले जाया जाता है, तो चोक पॉइंट समाप्त हो जाता है।
Global Content delivery: क्योंकि सीडीएन दुनिया भर में वितरित किए जाते हैं, वे वैश्विक दर्शकों के लिए सामग्री वितरित करने में सक्षम हैं। न्यू यॉर्क में एक मूल सर्वर मिलान में दर्शकों को प्रभावी ढंग से सामग्री प्रदान नहीं कर सकता है, और यह विशेष रूप से वीडियो जैसी भारी सामग्री के मामले में है। हालांकि, एक सीडीएन अपने नेटवर्क पर किसी भी बिंदु से सामग्री को अग्रेषित और सेवा कर सकता है, ताकि मिलान में एक व्यक्ति न्यूयॉर्क से लाइव स्ट्रीम देख रहा हो, मिलान में एक सर्वर से स्ट्रीम प्राप्त कर सकता है, बजाय इसके कि वह नए से सभी तरह से लोड हो जाए यॉर्क।
Latency and RTT reduction: सीडीएन के साथ विश्व स्तर पर सामग्री वितरित करने से आरटीटी (राउंड-ट्रिप समय) में कटौती करके लाइव स्ट्रीम दर्शकों के लिए विलंबता कम हो जाती है। अनुरोध-प्रतिक्रिया राउंड ट्रिप दूरी और समय के संदर्भ में कम है, क्योंकि लाइव स्ट्रीम के लिए दर्शक के अनुरोध को अब स्ट्रीम के मूल स्रोत तक नहीं जाना है, और स्ट्रीमिंग डेटा को अब से यात्रा नहीं करनी है मूल, या तो। यह देरी को कम करता है और लाइव स्ट्रीम को “लाइव” के करीब रखने में मदद करता है।
Workload : डेटा के लिए उपयोगकर्ता के अनुरोधों का जवाब देने के लिए सर्वर को कुछ गणना शक्ति खर्च होती है। वीडियो डेटा के लिए कई उपयोगकर्ता अनुरोधों का जवाब देने से एकल सर्वर प्रभावित हो सकता है। एक सीडीएन दर्जनों या सैकड़ों सर्वरों का उपयोग करता है जो मूल सर्वर से अधिक कार्यभार ले सकते हैं और इसे चालू और चालू रख सकते हैं।
Caching: एक सीडीएन लाइव स्ट्रीम के प्रत्येक वीडियो सेगमेंट को कैश करता है। सीडीएन तब मूल सर्वर से डेटा प्राप्त करने के बजाय कैश से सेगमेंट वितरित कर सकता है।
कैश से लाइव स्ट्रीम पेश करना एक विरोधाभास जैसा लगता है: अगर स्ट्रीम लाइव है, तो इसे कैसे सहेजना और कुछ सेकंड बाद इसे डिलीवर करना तेज़ हो सकता है? हालांकि यह सच है कि कैश्ड लाइव स्ट्रीम रीयल-टाइम से पिछड़ जाएगी, यह अभी भी मूल सर्वर तक जाने की तुलना में तेज़ है। राउंड ट्रिप में इतना समय लगेगा कि धारा और भी पीछे गिर जाएगी। सीडीएन कैशिंग के साथ, उपयोगकर्ता न्यूनतम अंतराल का अनुभव करते हैं।