तकनीकी ·

वीडियो ट्रांसकोडिंग कैसे काम करती है (और यह 24/7 स्ट्रीमिंग के लिए क्यों मायने रखती है)

वीडियो ट्रांसकोडिंग कैसे काम करती है (और यह 24/7 स्ट्रीमिंग के लिए क्यों मायने रखती है)

मुख्य बातें

  • ट्रांसकोडिंग एक वीडियो को एक जैसे रेज़ोल्यूशन, फ़्रेम रेट, और कोडेक में बदल देती है — यही वह चीज़ है जो अलग-अलग सोर्स से आई फ़ाइलों को भरोसे के साथ चलाती है।
  • एक 24/7 लूप असंगत वीडियो के प्रति खासतौर पर संवेदनशील होता है, क्योंकि क्लिप हमेशा के लिए एक के बाद एक चलते हैं और वहाँ कोई इंसान नहीं होता जो किसी गड़बड़ को नोटिस करे या ठीक करे।
  • हर वीडियो को एक बार, पहले से ही नॉर्मलाइज़ करना लाइव जाने के पल पर दोबारा एन्कोड करने से बचाता है — जो कि क्लिप बाउंड्री पर आमतौर पर अटकाव और क्रैश की वजह होता है।

अगर आपने फ़ोन, स्क्रीन रिकॉर्डर, और एडिटिंग ऐप से वीडियो एक ही प्रोजेक्ट में अपलोड किए हैं, तो आपने शायद नोटिस किया होगा कि वे हमेशा एक-दूसरे के साथ ठीक से नहीं चलते — अलग रेज़ोल्यूशन, अलग फ़्रेम रेट, कभी-कभी पूरी तरह अलग कोडेक। ट्रांसकोडिंग वह स्टेप है जो इसे ठीक करता है, और खासतौर पर एक 24/7 लाइव लूप के लिए, यह कोई वैकल्पिक सुविधा नहीं है। यह वही चीज़ है जो एक महीनों तक बिना किसी परेशानी के चलने वाली स्ट्रीम और एक खास क्लिप पर हर बार अटकने वाली स्ट्रीम के बीच खड़ी होती है।

ट्रांसकोडिंग का असल मतलब क्या है

ट्रांसकोडिंग एक वीडियो फ़ाइल को एक फ़ॉर्मेट से दूसरे में बदलने की प्रक्रिया है — आमतौर पर रेज़ोल्यूशन को नॉर्मलाइज़ करना (मान लीजिए, सब कुछ 1920x1080 में), फ़्रेम रेट (सब कुछ 30fps में), और कोडेक (आमतौर पर व्यापक कम्पैटिबिलिटी के लिए H.264) ताकि हर फ़ाइल आगे एक जैसा व्यवहार करे। यह सिर्फ़ "फ़ाइल टाइप बदलने" से अलग है: दो .mp4 फ़ाइलें एक ही फ़ाइल एक्सटेंशन शेयर करते हुए भी अंदर से पूरी तरह अलग कोडेक, बिटरेट, और फ़्रेम रेट इस्तेमाल कर सकती हैं।

ट्रांसकोडिंग के बिना, एक ही लगातार स्ट्रीम में 24fps की 4K फ़ाइल के ठीक बाद 60fps की 720p फ़ाइल चलाने से एक साफ़ दिखने वाला अटकाव, एक छोटा काला फ़्रेम, या बदतर हालात में एक एन्कोडर क्रैश हो सकता है — क्योंकि स्ट्रीम पुश करने वाले सॉफ़्टवेयर को बीच ब्रॉडकास्ट में अपनी आउटपुट सेटिंग्स दोबारा तय करनी पड़ती हैं।

एक अकेले वीडियो से ज़्यादा यह एक 24/7 लूप के लिए क्यों मायने रखता है

एक बार का अपलोड एक बार देखा जाता है, और कोई भी गड़बड़ एक अकेले बुरे व्यूइंग अनुभव के रूप में सामने आती है। एक 24/7 लूप वही क्लिप एक के बाद एक, हमेशा के लिए, जब तक स्ट्रीम चलती रहे तब तक चलाता है — जिसका मतलब है:

  • हर मिसमैच दोहराता है। दो खास क्लिप के बीच की ट्रांज़िशन पर एक अटकाव सिर्फ़ एक बार नहीं होता; यह हर बार होता है जब प्लेलिस्ट उस पॉइंट पर पहुँचती है, जब तक लूप चलता रहे।
  • इसे दोबारा शुरू करने के लिए कोई देख नहीं रहा होता। एक 24/7 स्ट्रीम की पूरी बुनियाद यही है कि यह बिना निगरानी के चले। एक क्रैश जिसे कोई इंसान एक निगरानी वाली स्ट्रीम पर सेकंडों में नोटिस करके ठीक कर देता, वह एक अनसुपरवाइज़्ड स्ट्रीम पर घंटों तक मरा पड़ा रह सकता है।
  • प्लेलिस्ट समय के साथ बढ़ती हैं। जैसे-जैसे आप ज़्यादा सोर्स से ज़्यादा वीडियो जोड़ते हैं, कम से कम एक क्लिप के मिसमैच्ड फ़ॉर्मेट में होने की संभावना बढ़ती जाती है।

इसे संभालने के दो तरीके: अपलोड पर, या Go Live पर

ऐसे दो पॉइंट हैं जहाँ ट्रांसकोडिंग हो सकती है, और यह फ़र्क़ मायने रखता है:

  1. अपलोड पर, एक बार। हर वीडियो को लाइब्रेरी में जोड़े जाने के उसी पल एक तय टार्गेट फ़ॉर्मेट में नॉर्मलाइज़ किया जाता है — रेज़ोल्यूशन, फ़्रेम रेट, और कोडेक इसके किसी प्लेलिस्ट में कतार में लगने से पहले ही तय हो जाते हैं। ट्रांसकोडिंग की लागत एक बार, पहले से चुकाई जाती है, और फिर कभी नहीं।
  2. Go Live पर, हर बार। स्ट्रीम हर बार जब आप ब्रॉडकास्ट शुरू करते हैं, पूरी प्लेलिस्ट को तुरंत दोबारा एन्कोड करती है। यह काम करता है, लेकिन इसका मतलब है हर बार लाइव जाने पर ट्रांसकोडिंग की लागत चुकाना — और ट्रांसकोडिंग फ़ेलियर का जोखिम उठाना — और यह उसी प्लेलिस्ट के अंदर क्लिप के बीच मिसमैच रोकने में कुछ नहीं करता।

Loopcast पहला तरीका इस्तेमाल करता है: हर वीडियो को अपलोड होने के तुरंत बाद बैकग्राउंड में एक बार नॉर्मलाइज़ किया जाता है, तो जब तक यह एक लाइव लूप में आता है, रिले सिर्फ़ पहले से सुसंगत क्लिप को जोड़ रहा होता है, न कि उन्हें तुरंत दोबारा एन्कोड कर रहा होता है। यही वजह है कि किसी वीडियो के ट्रिम पॉइंट एडिट करने पर सिर्फ़ एक तेज़ री-नॉर्मलाइज़ ट्रिगर होता है, पूरी स्ट्रीम पर असर नहीं पड़ता — सिर्फ़ वही एक क्लिप जो बदला है, उसे नया काम चाहिए।

यह असल में कैसा दिखता है

आप आमतौर पर ट्रांसकोडिंग होते हुए नहीं देखते — यह वीडियो अपलोड करने के बाद बैकग्राउंड में चलती है, और वीडियो प्लेलिस्ट में जोड़े जाने लायक तैयार होने से पहले एक छोटी "प्रोसेसिंग" स्थिति दिखाता है। व्यावहारिक सीख कोई सेटिंग नहीं है जिसे आपको कॉन्फ़िगर करना है; यह एक वजह है कि आप किसी लॉन्च से पहले वीडियो अपलोड कर लें, बजाय इसके कि उनके तुरंत स्ट्रीम-रेडी होने की उम्मीद करें, और यह भी एक वजह है कि जो सर्विस एक बार, पहले से ट्रांसकोड करती है, वह लंबे, बिना निगरानी वाले रन में उस सर्विस से बेहतर टिकती है जो ऐसा नहीं करती।

अक्सर पूछे जाने वाले सवाल

क्या ट्रांसकोडिंग वीडियो की क्वालिटी घटाती है?

एक अच्छी तरह कॉन्फ़िगर की गई ट्रांसकोड इतनी ऊँची बिटरेट और रेज़ोल्यूशन को टार्गेट करती है कि क्वालिटी का नुकसान दर्शकों को दिखे नहीं, ख़ासकर इसलिए क्योंकि YouTube खुद आपके अपलोड या स्ट्रीम किए गए हर कंटेंट को फिर से कम्प्रेस करता है। यहाँ ट्रांसकोडिंग का लक्ष्य सुसंगति है, कम्प्रेशन खुद अपने लिए नहीं।

नया अपलोड किया गया वीडियो तुरंत तैयार दिखने के बजाय "प्रोसेसिंग" क्यों दिखाता है?

यही ट्रांसकोडिंग स्टेप चल रहा होता है — वीडियो को बैकग्राउंड में एक सुसंगत फ़ॉर्मेट में नॉर्मलाइज़ किया जा रहा होता है। इसके पूरा होते ही, वीडियो प्लेलिस्ट में जोड़े जाने के लिए उपलब्ध हो जाता है।

अगर मेरे दो वीडियो पहले से एक ही रेज़ोल्यूशन और फ़्रेम रेट के हैं, तो भी क्या उन्हें ट्रांसकोडिंग चाहिए?

आमतौर पर हाँ, कम से कम पहली बार — रेज़ोल्यूशन और फ़्रेम रेट का मेल ज़रूरी है पर पर्याप्त नहीं; कोडेक सेटिंग्स, कीफ़्रेम इंटरवल, और ऑडियो फ़ॉर्मेट अब भी ऐसे तरीकों से अलग हो सकते हैं जो सिर्फ़ फ़ाइल प्रॉपर्टीज़ से साफ़ नज़र नहीं आते, इसलिए हर अपलोड को एक ही तरीके से नॉर्मलाइज़ करना विज़ुअल मेल को पूरा मेल मान लेने पर निर्भर रहने से बचाता है।