समस्या और समाधान

हिंदी सबटाइटल में डिब्बे क्यों आते हैं, और टूटी मात्राएँ कैसे ठीक करें

हिंदी सबटाइटल में डिब्बे (□□□) ज़्यादातर तब आते हैं जब प्लेयर जिस फ़ॉन्ट से सबटाइटल दिखा रहा है उसमें देवनागरी अक्षर ही नहीं होते। बाकी मामलों में वजह फ़ाइल का UTF-8 में न होना, पुराने Kruti Dev फ़ॉन्ट में लिखा टेक्स्ट, या प्लेयर का देवनागरी को ठीक से न जोड़ पाना होती है — और हर वजह का इलाज अलग है।

8 मिनट में पढ़ें · अपडेट

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

पहले लक्षण पहचानें: कौन-सी गड़बड़ी किस वजह से

"हिंदी ठीक नहीं दिख रही" एक लक्षण नहीं, कई हैं। स्क्रीन पर ठीक-ठीक क्या दिख रहा है, उसी से वजह का अंदाज़ा लगता है। नीचे की तालिका से अपनी स्थिति मिलाएँ, फिर उसी हिस्से पर जाएँ:

□□□ खाली डिब्बे
फ़ॉन्ट में देवनागरी नहीं है — फ़ाइल आम तौर पर ठीक है
हि जैसे अजीब अक्षर
फ़ाइल UTF-8 में है, पर प्लेयर उसे किसी और एन्कोडिंग में पढ़ रहा है
???? सवालिया निशान
फ़ाइल किसी समय ग़लत एन्कोडिंग में सेव हुई और हिंदी अक्षर हमेशा के लिए मिट गए
fgUnh जैसे अंग्रेज़ी अक्षर
टेक्स्ट Kruti Dev जैसे पुराने फ़ॉन्ट में टाइप हुआ है, यूनिकोड में नहीं
मात्राएँ अपनी जगह से हटी, हलंत दिखता
प्लेयर देवनागरी अक्षरों को जोड़ (शेप) नहीं पा रहा

एक तेज़ जाँच: SRT फ़ाइल को कंप्यूटर के Notepad या किसी आधुनिक टेक्स्ट एडिटर में खोलें। अगर वहाँ हिंदी साफ़ दिखती है, तो फ़ाइल ठीक है और समस्या प्लेयर या फ़ॉन्ट में है। अगर वहाँ भी गड़बड़ है, तो समस्या फ़ाइल में है।

वजह 1: प्लेयर के फ़ॉन्ट में देवनागरी नहीं है

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

इलाज:

  • प्लेयर की सबटाइटल सेटिंग में देवनागरी वाला फ़ॉन्ट चुनें। Windows में Nirmala UI और Mangal पहले से होते हैं; Android पर Noto Sans Devanagari आम है। VLC में यह विकल्प Preferences के Subtitles/OSD वाले हिस्से में मिलता है।
  • प्लेयर में फ़ॉन्ट बदलने का विकल्प न हो, तो ऐसा प्लेयर आज़माएँ जिसमें हो।
  • अगर वीडियो बहुत से लोगों को भेजना है और आप नहीं जानते कि वे किस डिवाइस पर देखेंगे, तो सबटाइटल को एडिटर में वीडियो पर छाप देना सबसे भरोसेमंद है — तब सबटाइटल तस्वीर का हिस्सा बन जाते हैं और फ़ॉन्ट की निर्भरता ख़त्म। तरीका मोबाइल में वीडियो पर SRT सबटाइटल लगाने वाले लेख में है।

वजह 2: फ़ाइल की एन्कोडिंग UTF-8 नहीं है या ग़लत पढ़ी जा रही है

कंप्यूटर हर अक्षर को संख्याओं के रूप में सहेजता है, और "एन्कोडिंग" वह नियम है जिससे संख्याएँ वापस अक्षर बनती हैं। हिंदी के लिए आज का मानक UTF-8 है। गड़बड़ी दो तरह से होती है:

पहली, फ़ाइल UTF-8 में है पर प्लेयर उसे पुराने पश्चिमी नियम (जैसे Windows-1252) से पढ़ता है। तब हर हिंदी अक्षर तीन अजीब चिह्नों में बदल जाता है:

एक ही शब्द, ग़लत पढ़ने पर

"हिंदी" को UTF-8 में सहेजकर Windows-1252 से पढ़ा जाए, तो वह "हिंदी" दिखता है। अच्छी बात यह है कि अक्षर मिटे नहीं हैं — सही एन्कोडिंग से खोलते ही "हिंदी" वापस आ जाएगा।

इसका इलाज प्लेयर में सबटाइटल एन्कोडिंग को UTF-8 पर सेट करना है। VLC जैसे प्लेयरों में यह "default encoding" के नाम से सबटाइटल सेटिंग में होता है।

दूसरी, ज़्यादा गंभीर स्थिति: किसी ने फ़ाइल को खोलकर ऐसी एन्कोडिंग में सेव कर दिया जिसमें हिंदी अक्षर होते ही नहीं (जैसे पुराने Notepad का "ANSI")। तब हर हिंदी अक्षर "?" बन जाता है, और यह बदलाव वापस नहीं होता। इस फ़ाइल को सुधारा नहीं जा सकता; मूल फ़ाइल दोबारा लेनी होगी या सबटाइटल दोबारा बनाने होंगे।

सही तरीके से सेव करना:

  1. Windows Notepad में "File" > "Save as" खोलें।
  2. नीचे "Encoding" में "UTF-8" या "UTF-8 with BOM" चुनें, "ANSI" कभी नहीं।
  3. फ़ाइल का नाम .srt पर ख़त्म हो, .srt.txt पर नहीं — "Save as type" में "All files" चुनें।
  4. Mac के TextEdit में पहले "Format" मेनू से फ़ाइल को plain text बनाएँ, और सेव करते समय एन्कोडिंग "Unicode (UTF-8)" रखें।

वजह 3: टेक्स्ट Kruti Dev जैसे पुराने फ़ॉन्ट में लिखा गया है

सरकारी दफ़्तरों, अदालतों और प्रिंटिंग की दुकानों में आज भी बहुत सा हिंदी टेक्स्ट Kruti Dev जैसे पुराने फ़ॉन्ट में टाइप होता है। इन फ़ॉन्ट में असल में अंग्रेज़ी अक्षर ही सहेजे जाते हैं; फ़ॉन्ट उन्हें देवनागरी जैसी आकृति में दिखाता है। जिस कंप्यूटर में Kruti Dev लगा है, वहाँ "fgUnh" हिंदी जैसा दिखता है; बाकी हर जगह — वीडियो प्लेयर, YouTube, फ़ोन — वह "fgUnh" ही रहता है।

अगर किसी ने सबटाइटल का टेक्स्ट Word में Kruti Dev में टाइप करके SRT में चिपकाया, तो यही होगा। प्लेयर में फ़ॉन्ट बदलने से यह ठीक नहीं होगा, क्योंकि फ़ाइल में हिंदी है ही नहीं। इलाज है टेक्स्ट को Kruti Dev से यूनिकोड में बदलना (इसके लिए कन्वर्टर टूल मिलते हैं) और फिर हर लाइन जाँचना, क्योंकि कन्वर्ज़न में मात्राएँ और आधे अक्षर अक्सर गड़बड़ाते हैं। दोनों व्यवस्थाओं का पूरा फ़र्क और आम कन्वर्ज़न गलतियाँ Kruti Dev और यूनिकोड हिंदी वाले लेख में हैं।

वजह 4: प्लेयर देवनागरी के अक्षर जोड़ नहीं पा रहा

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

जो प्लेयर या डिवाइस यह काम ठीक से नहीं करते, उनमें अक्षर तो दिखते हैं पर बिखरे हुए:

  • छोटी इ की मात्रा अक्षर के बाद, दाईं ओर दिखना — "कि" का "क ि" जैसा बन जाना।
  • आधे अक्षर की जगह पूरा अक्षर और नीचे हलंत (क्‌या जैसा)।
  • संयुक्त अक्षर (क्ष, त्र, श्र) टूटकर अलग-अलग।

इलाज: प्लेयर या ऐप को नए संस्करण में अपडेट करें, या दूसरा प्लेयर आज़माएँ। पुराने टीवी और सस्ते मीडिया प्लेयर में अक्सर यह क्षमता होती ही नहीं, तब सबटाइटल को वीडियो पर छापना ही रास्ता है — पर ध्यान रहे कि छापने वाला एडिटर ख़ुद देवनागरी ठीक जोड़ता हो, वरना टूटी मात्राएँ हमेशा के लिए वीडियो में छप जाएँगी।

स्मार्ट टीवी, पेन ड्राइव और पुराने प्लेयर

परिवार को टीवी पर हिंदी सबटाइटल वाली फ़िल्म या शादी का वीडियो दिखाना हो, तो ऊपर की चारों समस्याएँ एक साथ आ सकती हैं। कुछ व्यावहारिक सुझाव:

  • वीडियो और SRT का नाम बिल्कुल एक रखें (shaadi.mp4 और shaadi.srt) और दोनों को पेन ड्राइव के एक ही फ़ोल्डर में रखें। कई टीवी तभी सबटाइटल पहचानते हैं।
  • टीवी के सबटाइटल मेनू में "Encoding" या "Character set" जैसा विकल्प हो, तो उसे UTF-8 या Unicode पर रखें।
  • टीवी में डिब्बे ही दिखें, तो उसका फ़ॉन्ट देवनागरी नहीं जानता। Android TV हो तो उसमें VLC जैसा प्लेयर लगाकर देखें; वरना छपे हुए सबटाइटल वाला वीडियो बनाएँ।
  • पुराने DVD/मीडिया प्लेयर में हिंदी सबटाइटल की उम्मीद कम रखें।

अंग्रेज़ी में इस समस्या पर एक सामान्य गाइड सबटाइटल में अजीब अक्षर (अंग्रेज़ी में) भी है, और फ़ाइल बिल्कुल न चले तो SRT फ़ाइल काम न करे (अंग्रेज़ी में) वाली गाइड देखें।

mydubly की SRT फ़ाइलें: क्या जानना ज़रूरी है

अगर आपकी SRT mydubly के सबटाइटल जनरेटर (अंग्रेज़ी में) से बनी है ("Download subtitles" बटन से मिली subtitles.srt), तो कुछ बातें पहले से तय हैं। फ़ाइल UTF-8 में होती है और उसकी शुरुआत में BOM नाम का एक छोटा अदृश्य चिह्न होता है, जो Windows के प्रोग्रामों को बताता है कि यह UTF-8 है। हिंदी टेक्स्ट यूनिकोड देवनागरी में होता है, Kruti Dev में नहीं। इसलिए ऊपर की वजह 2 और वजह 3 इस फ़ाइल पर तब तक लागू नहीं होतीं, जब तक कोई उसे खोलकर ग़लत एन्कोडिंग में दोबारा सेव न कर दे।

यानी अगर mydubly से मिली हिंदी SRT में डिब्बे दिख रहे हैं, तो लगभग हमेशा वजह 1 या वजह 4 है — प्लेयर का फ़ॉन्ट या उसका देवनागरी जोड़ना। mydubly इन्हें आपकी तरफ़ से ठीक नहीं कर सकता, क्योंकि यह आपके प्लेयर की सेटिंग है। दो और बातें:

  • बहुत कम मामलों में कोई पुराना टूल BOM को नहीं समझता और पहली सबटाइटल लाइन छोड़ देता है या उसके आगे अजीब चिह्न दिखाता है। तब फ़ाइल को Notepad में खोलकर "UTF-8" (बिना BOM) में सेव कर लें।
  • mydubly में सबटाइटल का फ़ॉन्ट या स्टाइल चुनने का विकल्प नहीं है, और यह सबटाइटल को वीडियो पर छापता भी नहीं; SRT सिर्फ़ टेक्स्ट और समय रखती है, दिखावट प्लेयर तय करता है।
हिंदी SRT बनाने का खर्च

सबटाइटल हर मिनट 1 क्रेडिट पर बनते हैं, न्यूनतम 5 क्रेडिट प्रति फ़ाइल। दस मिनट के वीडियो की हिंदी SRT 10 क्रेडिट ($0.01) में बनती है, और साइन-अप पर मिलने वाले 100 मुफ़्त क्रेडिट 100 मिनट तक के वीडियो के लिए काफ़ी हैं।

SRT फ़ाइल की बनावट और उसकी हर लाइन का मतलब SRT फ़ाइल क्या है में समझाया गया है।

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

VLC में हिंदी सबटाइटल डिब्बों में क्यों दिखते हैं?

अक्सर VLC की सबटाइटल सेटिंग में चुना फ़ॉन्ट देवनागरी नहीं जानता। Preferences के Subtitles/OSD हिस्से में Nirmala UI या कोई दूसरा देवनागरी फ़ॉन्ट चुनें और VLC दोबारा चलाएँ। अगर अजीब अंग्रेज़ी चिह्न दिख रहे हों, तो वहीं एन्कोडिंग UTF-8 करें।

फ़ाइल में ???? आ गए हैं, क्या इन्हें वापस हिंदी बनाया जा सकता है?

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

BOM क्या है और क्या इसे हटाना चाहिए?

BOM फ़ाइल की शुरुआत का एक अदृश्य चिह्न है जो बताता है कि फ़ाइल UTF-8 में है। ज़्यादातर प्लेयर और YouTube इसे बिना दिक्कत पढ़ते हैं, और Windows के कुछ प्रोग्रामों के लिए यह मददगार है। कोई पुराना टूल पहली लाइन छोड़ दे, तभी इसे हटाने की ज़रूरत है।

मेरे कंप्यूटर पर सबटाइटल ठीक हैं पर टीवी पर डिब्बे क्यों?

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

Word में Kruti Dev में लिखा टेक्स्ट SRT में चिपकाया, अब अंग्रेज़ी अक्षर दिख रहे हैं — क्या करूँ?

Kruti Dev टेक्स्ट असल में अंग्रेज़ी अक्षरों में सहेजा होता है, इसलिए प्लेयर में वही दिखते हैं। टेक्स्ट को किसी Kruti Dev से यूनिकोड कन्वर्टर से बदलें, फिर मात्राएँ और आधे अक्षर जाँचें, और SRT को UTF-8 में सेव करें।

क्या mydubly से बनी SRT फ़ाइल में यह समस्या आती है?

mydubly की SRT फ़ाइल UTF-8 (BOM के साथ) में और यूनिकोड देवनागरी में होती है, इसलिए एन्कोडिंग या Kruti Dev वाली समस्या उसमें अपने-आप नहीं होती। डिब्बे दिखें तो वजह लगभग हमेशा प्लेयर का फ़ॉन्ट या उसका देवनागरी जोड़ना है, जो प्लेयर की सेटिंग से ठीक होती है।