हिन्दी

वीडियो और उपशीर्षक · उपशीर्षक टूलकिट

क्यों एक उपशीर्षक फ़ाइल VLC में चलती है लेकिन HTML5 ट्रैक तत्व में विफल हो जाती है

· यह काम किस प्रकार करता है

उपशीर्षक webvtt ब्राउज़र-प्रसंस्करण

एक उपशीर्षक फ़ाइल दो पार्सरों तक पहुँचती है, उदार फ़ाइल प्रत्येक संकेत दिखाती है और सख्त फ़ाइल उन अंतरालों को दिखाती है जहाँ संकेत छोड़े गए थे
मूल ToolAcre वेक्टर चित्रण

डेस्कटॉप प्लेयर क्षमाशील हैं; ब्राउज़र का ट्रैक तत्व नहीं है. यह पोस्ट बताती है कि HTML5 कैप्शन पार्सर एक WebVTT फ़ाइल को कैसे पढ़ता है, यह चुपचाप होने वाली त्रुटियों को कैसे हटाता है और एक फ़ाइल कैसे तैयार की जाती है जिसे दोनों स्वीकार करते हैं।

वही फ़ाइल VLC में काम करती है और वेब पेज पर कुछ भी नहीं दिखाती है - दो पार्सर, सहनशीलता के दो स्तर

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

दोनों में अंतर कोई बग नहीं है। यह अलग-अलग दायित्वों के साथ दो डिज़ाइन हैं, और व्यावहारिक परिणाम यह है कि डेस्कटॉप प्लेयर इस बात का एक खराब परीक्षण है कि कोई फ़ाइल वेब पर काम करेगी या नहीं।

ट्रैक तत्व कैप्शन फ़ाइल को कैसे लोड करता है - अनुरोध, MIME प्रकार, क्रॉस-ऑरिजिन ट्रैक के लिए CORS और WEBVTT हेडर चेक

ट्रैक तत्व कैप्शन फ़ाइल को एक सामान्य संसाधन के रूप में लाता है, जिसका अर्थ है कि यह किसी अन्य अनुरोध के समान नियमों के अधीन है। इसे WebVTT मीडिया प्रकार के साथ प्रस्तुत किया जाना चाहिए, और सादे पाठ के रूप में प्रस्तुत फ़ाइल को उसकी सामग्री की परवाह किए बिना अस्वीकार कर दिया जाता है। किसी अन्य मूल पर होस्ट किए गए ट्रैक को वीडियो तत्व पर क्रॉस-ओरिजिन हेडर और क्रॉसओरिजिन विशेषता की आवश्यकता होती है, और उनके बिना किसी भी पार्सिंग होने से पहले फ़ेच विफल हो जाता है।

इसके बाद हेडर चेक आता है। एक WebVTT फ़ाइल को WEBVTT हस्ताक्षर से शुरू होना चाहिए, वैकल्पिक रूप से एक बाइट ऑर्डर चिह्न से पहले, और इसके बिना एक फ़ाइल WebVTT फ़ाइल नहीं है। यह सबसे आम कारण है कि SRT फ़ाइल का नाम बदलकर VTT एक्सटेंशन कर दिया जाता है, जिससे कुछ भी प्रदर्शित नहीं होता है: नाम बदलने से एक्सटेंशन बदल जाता है, न कि पहली पंक्ति।

क्यू-बाय-क्यू पार्सिंग - ब्राउज़र एक विकृत टाइमकोड या अप्रत्याशित लाइन के साथ क्या करता है, और विफलता चुप क्यों है

उस बिंदु के बाद पार्सिंग संकेत दर संकेत होती है, और विफलता मोड ही इसे भ्रमित करता है। जिस ब्लॉक को पार्सर पढ़ नहीं सकता उसे हटा दिया जाता है और पार्सिंग जारी रहती है। कोई अपवाद नहीं है, कोई कंसोल त्रुटि नहीं है और कोई दृश्य संकेत नहीं है; संकेत कभी प्रकट ही नहीं होता। नौ सौ में से चार विकृत टाइमकोड वाली फ़ाइल लगभग पूरी तरह से चलती है, मौन के चार क्षणों के साथ जो प्रारूप दोष के बजाय लापता अनुवाद की तरह दिखता है।

यही कारण है कि लक्षण आमतौर पर रुक-रुक कर रिपोर्ट किया जाता है। इसमें कुछ भी रुक-रुक कर नहीं है. वही संकेत हर बार विफल हो जाते हैं, लेकिन क्योंकि आसपास के संकेत काम करते हैं, फ़ाइल मोटे तौर पर कार्यात्मक दिखती है और दोष पार्स के बजाय सामग्री को जिम्मेदार ठहराया जाता है।

डेस्कटॉप खिलाड़ियों की उदारता - क्यों VLC और अन्य लोग उन फ़ाइलों को स्वीकार करते हैं जो तकनीकी रूप से अमान्य हैं

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

टूलकिट पार्सर इनपुट पर समान उदार परंपरा में बैठता है, वैकल्पिक घंटों को स्वीकार करता है, या तो विभाजक और फ़ाइलें जिनके ब्लॉक अनियमित हैं। अंतर यह है कि यह बाद में क्या करता है: यह प्रत्येक गलती को एक स्थित समस्या के रूप में दर्ज करता है, और यह स्वीकार की गई अनियमितता को संरक्षित करने के बजाय एक विहित आकार को वापस लिखता है।

व्यावहारिक उदाहरण: तीन सामान्य दोषों वाली एक फ़ाइल - ब्राउज़र में इसका परीक्षण करना और देखना कि कौन से संकेत गायब हो जाते हैं

तीन दोषों वाली एक फ़ाइल लें: इसमें WEBVTT हेडर का अभाव है, एक क्यू में पचहत्तर का सेकंड फ़ील्ड है, और एक क्यू शुरू होने से पहले ही समाप्त हो जाता है। डेस्कटॉप प्लेयर में फ़ाइल चलती है, असंभव सेकंड की मरम्मत की जाती है या चुपचाप छोड़ दी जाती है और उलटा क्यू चमकता है या गिरा दिया जाता है। दर्शक उपशीर्षक देखता है.

ट्रैक तत्व में गायब हेडर इसे तुरंत समाप्त कर देता है; एक भी संकेत प्रदर्शित नहीं होता, क्योंकि फ़ाइल को कभी भी WebVTT के रूप में स्वीकार नहीं किया गया था। हेडर जोड़ें और चित्र बदल जाता है: अधिकांश संकेत दिखाई देते हैं, पचहत्तर सेकंड वाले क्यू को पार्सिंग के दौरान हटा दिया जाता है, और उलटे क्यू को पार्स किया जाता है लेकिन कभी नहीं दिखाया जाता है क्योंकि इसमें प्रदर्शित करने की कोई अवधि नहीं होती है। आपके द्वारा पेज लोड करने से पहले सत्यापन नाम, असंभव टाइमकोड और उसके शुरू होने से पहले समाप्त होने वाले क्यू की रिपोर्ट करना, प्रत्येक संख्या के अनुसार।

इसमें क्या शामिल नहीं है - :: क्UK साथ स्टाइलिंग, पोजिशनिंग सेटिंग्स और लाइव कैप्शन

इसमें यह शामिल है कि संकेत लोड होते हैं या नहीं, यह नहीं कि वे कैसे दिखते हैं। क्यू छद्म-तत्व के माध्यम से स्टाइलिंग, टाइमकोड लाइन पर स्थिति और संरेखण सेटिंग्स, क्षेत्र परिभाषाएं और ऊर्ध्वाधर पाठ सभी अलग-अलग चिंताएं हैं जो केवल फ़ाइल पार्स होने के बाद ही मायने रखती हैं। एक फ़ाइल जो कुछ भी प्रदर्शित नहीं करती वह स्टाइलिंग समस्या नहीं है, और स्टाइलिंग उसे बचा नहीं सकती।

लाइव और स्ट्रीमिंग कैप्शन भी इसके बाहर हैं। अनुकूली धाराओं के साथ वितरित खंडित कैप्शन ट्रैक का अपना डिलीवरी मॉडल होता है, और ट्रैक तत्व द्वारा लोड की गई एक स्थिर फ़ाइल प्लेयर तक पहुंचने का तरीका नहीं होती है।

टेकअवे: सख्त पार्सर के लिए तैयारी करें - कैसे उपशीर्षक टूलकिट का रूपांतरण और क्लीन-अप एक फ़ाइल तैयार करता है जिसे ट्रैक तत्व स्वीकार करता है

सबसे क्षमाशील पार्सर के बजाय सबसे सख्त पार्सर के लिए तैयारी करें, क्योंकि सख्त पार्सर वह है जिसका उपयोग आपके दर्शक करते हैं। WebVTT में ठीक से कन्वर्ट करें ताकि हस्ताक्षर पंक्ति मान लेने के बजाय लिखी जाए, इसे सही मीडिया प्रकार के साथ परोसें, और यदि फ़ाइल किसी अन्य होस्ट पर रहती है तो क्रॉस-ओरिजिन हेडर जोड़ें।

रूपांतरण चलाएँ और शिपिंग से पहले रिपोर्ट की गई समस्याओं को पढ़ें। कन्वर्टर प्रारूप के लिए आवश्यक विभाजक के साथ कैनोनिकल टाइमस्टैम्प लिखता है, संकेतों को लगातार पुन: क्रमांकित करता है और उन दोषों की रिपोर्ट करता है जिन्हें उसे सहन करना पड़ता है, जो उन संकेतों की सूची है जो ब्राउज़र में चुपचाप गायब हो जाते। फिर पेज को पुनः लोड करें और कैप्शन दिखाई देने पर भरोसा करने के बजाय स्रोत के विरुद्ध क्यू गिनती की तुलना करें।