संक्षेप (टीएल;डीआर)
- समस्या: अस्थिर कनेक्शन पर क्रिएटरों से विशाल फाइलें लेना, हर एक को जल्दी से दर्जनों प्रारूपों और गुणवत्ताओं में बदलना, और बिना रुके हर तरह के डिवाइस और नेटवर्क पर दर्शकों तक पहुंचाना, ऐसे पैमाने पर जहां बैंडविड्थ कारोबार का सबसे बड़ा खर्च है।
- डिजाइन: ऑब्जेक्ट स्टोरेज में टुकड़ों वाले दोबारा शुरू होने वाले अपलोड; घटनाओं से चलने वाला ट्रांसकोडिंग ग्राफ जो हर वीडियो को छोटे खंडों में काटकर कई वर्करों पर समानांतर में बिटरेट की सीढ़ी एन्कोड करता है; एचएलएस और डैश में पैकेजिंग; हस्ताक्षरित मैनिफेस्ट, इंटरनेट प्रदाताओं के भीतर या पास कैश वाले कई स्तरों के सीडीएन, और हर खंड का बिटरेट चुनने वाले प्लेयर से प्लेबैक।
- नतीजा: दस मिनट का ४के अपलोड घंटों नहीं, मिनटों में देखने लायक हो जाता है, ज्यादातर बाइट दर्शक से कुछ ही नेटवर्क कदम दूर कैश से परोसे जाते हैं, और गुणवत्ता रुकने के बजाय लगातार बदलती रहती है।
यूट्यूब बता चुका है कि हर मिनट ५०० घंटे से ज्यादा वीडियो अपलोड होते हैं, और २०१७ में ही कि लोग रोज एक अरब घंटे से ज्यादा देखते हैं। ये दो संख्याएं सिस्टम को परिभाषित करती हैं। लिखने वाला हिस्सा एक विशाल बैच प्रोसेसिंग पाइपलाइन है। पढ़ने वाला हिस्सा इंटरनेट की सबसे बड़ी सामग्री वितरण समस्याओं में से एक है। बीच के स्टोरेज के अलावा दोनों में लगभग कुछ भी साझा नहीं।
यह लेख दोनों हिस्से डिजाइन करता है।
जरूरतें और संख्याएं
कार्यात्मक: वीडियो अपलोड करना; उन्हें स्ट्रीम होने लायक प्रारूपों में बदलना; फोन, ब्राउजर और टीवी पर चलाना; नेटवर्क के हिसाब से गुणवत्ता बदलना; थंबनेल और जानकारी दिखाना।
गैर-कार्यात्मक: कनेक्शन टूटने पर भी अपलोड बचे रहें; नए वीडियो मिनटों में देखने लायक हों; प्लेबैक लगभग एक सेकंड में शुरू हो और शायद ही कभी अटके; दुनिया भर में उपलब्धता।
| मात्रा | मान | मतलब |
|---|---|---|
| अपलोड | हर मिनट लगभग ५०० घंटे | रोज लगभग ७.२ लाख घंटे का नया वीडियो |
| हर वीडियो के रूप | लगभग ६ रिजॉल्यूशन गुणा २ से ३ कोडेक | हर अपलोड किया घंटा कई घंटों के एन्कोड आउटपुट में बदलता है |
| एन्कोड स्टोरेज | पूरी सीढ़ी में हर घंटे के कई जीबी | रोज पेटाबाइट में नया स्टोरेज |
| देखने का समय | रोज एक अरब घंटे से ज्यादा (२०१७ का आंकड़ा) | लगभग २.५ मेगाबिट प्रति सेकंड औसत पर रोज लगभग एक एक्साबाइट बाहर जाता डेटा |
आखिरी पंक्ति बताती है कि खर्च और आर्किटेक्चर पर ट्रांसकोडर नहीं, सीडीएन हावी क्यों है। बेहतर एन्कोडिंग से १०% बिटरेट बचाना आपके सबसे बड़े बिल का १०% बचाना है।
अपलोड और प्रोसेसिंग पाइपलाइन

- क्रिएटर। ट्रेन में फोन से या स्टूडियो के कनेक्शन से अपलोड करता है। फाइल कई गीगाबाइट की हो सकती है।
- अपलोड एपीआई (दोबारा शुरू होने वाला)। अपलोड को सत्र आईडी के साथ टुकड़ों (मान लीजिए ८ से १६ एमबी) में बांटता है, ताकि टूटा कनेक्शन शुरू से नहीं, आखिरी पुष्टि वाले टुकड़े से फिर शुरू हो। ग्राहक अक्सर पहले से हस्ताक्षरित यूआरएल से सीधे ऑब्जेक्ट स्टोरेज में अपलोड करते हैं; एपीआई सिर्फ सत्र संभालता है।
- कच्चे अपलोड (ऑब्जेक्ट स्टोर)। मूल फाइल रखी जाती है। हर कुछ साल में बेहतर एन्कोडर आते हैं, और लोकप्रिय वीडियो को मूल से दोबारा एन्कोड करना ही वह तरीका है जिससे मंच बाद में बिटरेट घटाते हैं।
- वीडियो अपलोड हुआ घटना। अपलोड को प्रोसेसिंग से अलग करती है। अपलोड में उछाल अनुरोध विफल करने के बजाय काम कतार में डालता है।
- ट्रांसकोड ग्राफ संचालक। प्रोसेसिंग कामों का एक दिशा वाला, चक्र रहित ग्राफ है: जांचना, काटना, हर खंड को हर रूप में एन्कोड करना, जोड़ना, पैकेज करना, थंबनेल, सुरक्षा जांच। संचालक हर काम की स्थिति रखता है और विफल कामों को अलग-अलग दोबारा चलाता है।
- टुकड़ों में काटना। वीडियो को मुख्य फ्रेम पर कुछ सेकंड के खंडों में काटना ही रफ्तार की कुंजी है। हर खंड अलग से एन्कोड होता है, इसलिए १० मिनट का वीडियो सैकड़ों छोटे समानांतर कामों में बदल जाता है।
- एन्कोडर बेड़ा (सीढ़ी गुणा कोडेक)। हर रूप बनाता है, आमतौर पर अनुकूलता के लिए एच.२६४ और दक्षता के लिए वीपी९ या एवी१। एन्कोडिंग इतना सीपीयू खाती है कि गूगल ने यूट्यूब के लिए अपनी वीडियो ट्रांसकोडिंग चिप (२०२१ में बताई गई आर्गोस वीसीयू) बनाई।
- पैकेजर (एचएलएस / डैश)। एन्कोड खंडों को उन प्रारूपों में लपेटता है जिनकी प्लेयर उम्मीद करते हैं और हर रूप की सूची वाले मैनिफेस्ट लिखता है। सीएमएएफ एचएलएस और डैश को एक ही मीडिया खंड साझा करने देता है, जिससे पैकेज आउटपुट का स्टोरेज आधा हो जाता है।
- एन्कोड खंड और मैनिफेस्ट। पढ़ने वाले हिस्से का सच्चा स्रोत, आमतौर पर सीडीएन के पीछे ऑब्जेक्ट स्टोरेज में।
- थंबनेल और सुरक्षा जांच। समानांतर में चलते हैं: थंबनेल निकालना, कॉपीराइट मिलान और नीति वाले क्लासिफायर। कोई वीडियो अपलोड करने वाले के लिए चलने लायक हो सकता है जबकि सार्वजनिक सूची के लिए अभी समीक्षा में हो।
- वीडियो जानकारी डेटाबेस। शीर्षक, मालिक, स्थिति, उपलब्ध रूप और प्रोसेसिंग की स्थिति।
हरा नोट इसका फल है: काटना एन्कोडिंग समय को "वीडियो की लंबाई के अनुपात" से बदलकर "वीडियो की लंबाई भाग बेड़े का आकार" बना देता है।
बिटरेट की एक सीढ़ी (उदाहरण, एच.२६४):
| रूप | रिजॉल्यूशन | आम बिटरेट |
|---|---|---|
| २४०पी | ४२६ गुणा २४० | लगभग ०.४ मेगाबिट प्रति सेकंड |
| ३६०पी | ६४० गुणा ३६० | लगभग ०.८ मेगाबिट प्रति सेकंड |
| ४८०पी | ८५४ गुणा ४८० | लगभग १.४ मेगाबिट प्रति सेकंड |
| ७२०पी | १२८० गुणा ७२० | लगभग २.८ मेगाबिट प्रति सेकंड |
| १०८०पी | १९२० गुणा १०८० | लगभग ५ मेगाबिट प्रति सेकंड |
| २१६०पी (४के) | ३८४० गुणा २१६० | लगभग १५ से २० मेगाबिट प्रति सेकंड |
आधुनिक मंच एक तय सीढ़ी इस्तेमाल नहीं करते। नेटफ्लिक्स ने २०१५ में हर शीर्षक के हिसाब से एन्कोडिंग को लोकप्रिय बनाया: सपाट रंगों वाले कार्टून को उसी दिखने वाली गुणवत्ता के लिए दानेदार एक्शन फिल्म से कहीं कम बिट चाहिए, इसलिए हर शीर्षक की अपनी सीढ़ी होती है।
प्लेबैक और सीडीएन

१. पहले मैनिफेस्ट। प्लेयर प्लेबैक एपीआई को बुलाता है, जो अनुमतियां और क्षेत्र के नियम जांचकर मैनिफेस्ट का कम समय वाला हस्ताक्षरित यूआरएल लौटाता है। २. किनारे से खंड। प्लेयर सबसे नजदीकी किनारे वाले कैश से एक-एक करके खंड मांगता है। लोकप्रिय वीडियो लगभग हमेशा वहां होते हैं। ३. स्तरों में चूक। चूकने पर किनारा क्षेत्रीय बीच वाले कैश से पूछता है, जो स्टोरेज के आगे बैठी मूल ढाल से पूछता है। हर स्तर कई चूकों को ऊपर एक अनुरोध में समेट देता है, इसलिए मूल तक ट्रैफिक का बेहद छोटा हिस्सा पहुंचता है। ४. बदलता बिटरेट। हर खंड के बाद प्लेयर रफ्तार का अपना अनुमान सुधारता है, बफर देखता है और अगले खंड का रूप चुनता है। छोटी सुरंग वीडियो जमाने के बजाय कुछ सेकंड के लिए ४८०पी पर ले आती है।
इंटरनेट प्रदाताओं के भीतर कैश। सबसे बड़े मंच अपने कैश सर्वर सीधे इंटरनेट प्रदाताओं के नेटवर्क के भीतर रखते हैं: नेटफ्लिक्स के ओपन कनेक्ट उपकरण और गूगल का ग्लोबल कैश जाने-माने उदाहरण हैं। तब बाइट इंटरनेट के महंगे हिस्से से कभी नहीं गुजरते। प्रदाता का ट्रांजिट खर्च बचता है, मंच का बाहर जाने वाला खर्च बचता है, और दर्शक को कम देरी मिलती है।
हरा नोट संचालन का लक्ष्य तय करता है: किनारे वाले स्तर को भारी बहुमत बाइट परोसने चाहिए।
पैसा कहां जाता है
| खर्च | किससे बढ़ता है | उपाय |
|---|---|---|
| वितरण (सीडीएन से बाहर जाता डेटा) | देखने का समय गुणा बिटरेट | बेहतर कोडेक (एवी१), हर शीर्षक की सीढ़ी, प्रदाताओं के भीतर कैश |
| एन्कोडिंग का कंप्यूट | अपलोड घंटे गुणा रूप | लंबी पूंछ को बाद में एन्कोड करें; ज्यादा कंप्यूट सिर्फ लोकप्रिय वीडियो पर |
| स्टोरेज | रूप गुणा रखने की अवधि | कम देखे जाने वाले ऊंचे रूप हटाएं; मूल ठंडे स्टोरेज में रखें |
| मॉडरेशन | अपलोड की मात्रा | पहले स्वचालित क्लासिफायर, जहां जरूरी हो वहां इंसानी समीक्षा |
यहां लंबी पूंछ मायने रखती है। ज्यादातर अपलोड वीडियो कम देखे जाते हैं। आम रणनीति है अपलोड पर न्यूनतम सीढ़ी एन्कोड करना और प्रीमियम रूप (४के, एवी१) तभी बनाना जब वीडियो लोकप्रिय साबित हो, क्योंकि एन्कोडिंग का खर्च तभी वसूल होता है जब वितरण की बचत साथ आए।
विफलताएं
| विफलता | अपेक्षित व्यवहार |
|---|---|
| ८०% पर अपलोड कनेक्शन टूटे | आखिरी पुष्टि वाले टुकड़े से फिर शुरू |
| एक एन्कोडिंग काम विफल | संचालक सिर्फ वही खंड दोबारा चलाता है; बाकी ग्राफ चलता रहता है |
| उछाल के दौरान एन्कोडर पर बोझ | कतार बढ़ती है; छोटे और लोकप्रिय अपलोड को प्राथमिकता; पहले निचले रूप प्रकाशित |
| किनारे का एक कैश नोड गिरे | ट्रैफिक पड़ोसियों पर जाता है; बीच वाला स्तर अतिरिक्त चूकें सोखता है |
| वायरल वीडियो, ठंडे कैश | हर स्तर पर अनुरोध समेटना मूल पर भगदड़ रोकता है |
| दर्शक का नेटवर्क बिगड़े | बदलता बिटरेट अटकने के बजाय गुणवत्ता घटाता है |
उत्पादन जांच सूची
- सीधे स्टोरेज तक हस्ताक्षरित यूआरएल के साथ टुकड़ों वाले दोबारा शुरू होने वाले अपलोड
- भविष्य में दोबारा एन्कोडिंग के लिए मूल फाइलें सुरक्षित
- हर काम की दोबारा कोशिश और दोहराव से सुरक्षित आउटपुट वाला घटना आधारित ग्राफ
- समानांतर एन्कोडिंग के लिए मुख्य फ्रेम पर कटाव
- हर शीर्षक या सामग्री के हिसाब से सीढ़ी; लोकप्रिय सामग्री के लिए आधुनिक कोडेक
- साझा सीएमएएफ खंडों से एचएलएस और डैश
- हस्ताक्षरित, कम समय वाले मैनिफेस्ट यूआरएल; अनुमति और क्षेत्र की जांच
- अनुरोध समेटने और मूल ढाल वाला कई स्तरों का सीडीएन
- प्लेयर मेट्रिक्स: शुरुआत का समय, अटकने का अनुपात, औसत बिटरेट, गुणवत्ता बदलाव
- खर्च डैशबोर्ड: स्तर के हिसाब से बाहर जाता डेटा, रूप के हिसाब से एन्कोड घंटे, उम्र के हिसाब से स्टोरेज
जो बचा रह गया
इन मंचों का हर वीडियो दर्जनों प्रतियों में मौजूद है, अलग आकार और गुणवत्ता में, हजारों मशीनों पर बिखरा हुआ, जिनमें से ज्यादातर किसी और के इंटरनेट प्रदाता की इमारतों में हैं।
दर्शक को इनमें से कुछ नहीं दिखता। उसे एक वीडियो दिखता है जो शुरू हो जाता है, और एक गुणवत्ता का निशान जो ट्रेन के सुरंग में घुसने पर १०८०पी से ७२०पी पर टिमटिमाता है और निकलने पर लौट आता है। वह टिमटिमाहट ही पूरा सिस्टम काम करता हुआ है।
स्रोत
- यूट्यूब आधिकारिक ब्लॉग: मंच के आंकड़े (हर मिनट अपलोड घंटे)
- नेटफ्लिक्स टेक ब्लॉग: हर शीर्षक के हिसाब से एन्कोड अनुकूलन
- नेटफ्लिक्स ओपन कनेक्ट का परिचय
- रंगनाथन और साथी, गोदाम पैमाने पर वीडियो त्वरण (एएसपीएलओएस २०२१)
- आरएफसी ८२१६: एचटीटीपी लाइव स्ट्रीमिंग
- एलायंस फॉर ओपन मीडिया: एवी१
- इसी श्रृंखला में: गूगल ड्राइव डिजाइन करें, शून्य से लाखों उपयोगकर्ताओं तक, मोटा अनुमान लगाना
