JSON को MicroDVD में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
विकल्प
टाइमिंग किस फ़्रेम रेट में गिनी गई है। फ़ॉर्मैट पेजों पर यही MicroDVD को चाहिए, क्योंकि वह टाइमिंग फ़्रेम संख्याओं में रखता है। फ़्रेम रेट पेजों पर यह वह रेट है जिसके हिसाब से फ़ाइल की टाइमिंग की गई थी — वह संस्करण जिसके लिए सबटाइटल बने थे — और पेज का दूसरा बॉक्स उस वीडियो का रेट लेता है जिसके साथ आप इन्हें इस्तेमाल करेंगे। 23.976, 24, 25, 29.97, 30, 50, 59.94 और 60 आम हैं। गलत होने पर पूरी टाइमलाइन खिसक जाती है, और फ़्रेम रेट पेजों पर वह एक अनुपात से खिसकती है, तय मात्रा से नहीं।
यह रूपांतरण क्या बदलता है
4 चीज़ें छूटती हैं या फ़ैसला माँगती हैं
- स्टाइलिंग
सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया)
- स्थान
स्क्रीन पर स्थान (हर क्यू डिफ़ॉल्ट जगह पर लौट आता है)
- कराओके
कराओके टाइमिंग (प्रति-अक्षर हाइलाइट)
- फ़्रेम रेट
यह फ़ॉर्मैट समय फ़्रेम संख्याओं में रखता है — टाइमिंग आपके दिए फ़्रेम रेट पर निर्भर है
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
SubtitleMatrix JSON और MicroDVD दोनों सबटाइटल रखते हैं, पर उनका ढाँचा अलग है; यह पेज एक को दूसरे में बदलता है। JSON में हर cue के समय 4000 जैसे पूर्णांक मिलीसेकंड हैं, और styles तालिका तथा tags सरणी सब कुछ संरचित रूप में रहता है।
जो नहीं बचता: सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट), फ़्रेम रेट (लक्ष्य समय को फ़्रेम संख्या में रखता है)। हर समय फ़्रेम संख्या में है, इसलिए सही फ़्रेम रेट के बिना पूरी समयरेखा खिसक जाती है; JSON के रंग, आउटलाइन, छाया और मार्जिन MicroDVD में कोई स्तंभ नहीं पाते; JSON का {\pos(320,240)} MicroDVD में कोई जगह नहीं पाता और हर cue डिफ़ॉल्ट स्थान पर लौटती है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।
MicroDVD का नतीजा .sub फ़ाइल के रूप में मिलता है; समय {फ़्रेम}{फ़्रेम} में लिखा जाता है और फ़्रेम रेट चाहिए। बैच में डाली गई हर फ़ाइल अलग से संसाधित होती है, बीच में रोकने पर बाकी नहीं चलतीं, और अंत में सब एक ZIP में मिलती हैं। फ़ाइल आपके ब्राउज़र से बाहर नहीं जाती।
उदाहरण
एक सामान्य JSON फ़ाइल, MicroDVD में बदली गई
इनपुट
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
आउटपुट
{1}{1}25
{0}{50}Hello world.|Second line.
{63}{100}Plain line.|Styled line.
{113}{150}Roger: I am here.
इस आउटपुट में छूटा: स्टाइलिंग, स्क्रीन स्थिति, कराओके, फ़्रेम रेट। बाकी सब पंक्ति-दर-पंक्ति मेल खाता है।
JSON से MicroDVD: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
आउटपुट
{1}{1}25
{0}{25}First.
{25}{50}Second.
{50}{75}Third.
असली JSON फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
JSON से MicroDVD बनाने के लिए फ़्रेम रेट क्यों ज़रूरी है?
JSON क्षण को 4000 में रखता है, जबकि MicroDVD उसे {फ़्रेम}{फ़्रेम} में रखता है। इसलिए सेकंड को फ़्रेम रेट से गुणा किया जाता है: 25 fps पर 4 सेकंड {100} बनता है। रेट गलत हो तो हर समय उसी अनुपात में खिसक जाता है, इसलिए फ़ील्ड में वीडियो का असली रेट डालें।
JSON की स्टाइल-तालिका MicroDVD में कहाँ जाती है?
MicroDVD का मॉडल सिर्फ़ समय और पाठ है, इसलिए JSON की स्टाइल-तालिका का कोई अर्थ वहाँ नहीं रहता। फ़ॉन्ट, आकार, रंग, आउटलाइन, छाया और मार्जिन सब गिर जाते हैं; JSON के इनलाइन {i1}/{1} जैसे ज़ोर भी MicroDVD में अपने आप नहीं बनते।
JSON से MicroDVD बनाने की असली कीमत क्या है?
इस दिशा में 4 तरह की जानकारी गिरती है: सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट), फ़्रेम रेट (लक्ष्य समय को फ़्रेम संख्या में रखता है)। मिसाल के लिए, फ़्रेम संख्या और सेकंड के बीच का पुल फ़्रेम रेट है, इसलिए गलत रेट पर MicroDVD की पूरी समयरेखा खिसक जाती है। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।
JSON से MicroDVD बनाने पर फ़्रेम संख्या कैसे निकलती है?
MicroDVD में हर JSON cue {फ़्रेम}{फ़्रेम} और उसके बाद पाठ बनती है। फ़्रेम आपके दिए फ़्रेम रेट से निकलते हैं, और cue के भीतर की पंक्ति-अंत | से लिखी जाती है।
MicroDVD में JSON की दो पंक्तियाँ किस चिह्न से अलग होती हैं?
MicroDVD पंक्ति-विराम को | से लिखता है, इसलिए JSON की दो पंक्तियाँ एक ही cue के भीतर | से जुड़कर आती हैं। अलग cue नहीं बनती, इसलिए दोनों पंक्तियों का समय वही रहता है; और चूँकि MicroDVD फ़्रेम-आधारित है, पूरी cue का समय फ़्रेम रेट पर निर्भर रहता है।
अगर बाद में MicroDVD को JSON में बदलना हो तो क्या ध्यान रखें?
नहीं। MicroDVD से JSON की उलटी दिशा में भी फ़्रेम रेट (स्रोत का हर समय फ़्रेम संख्या में है) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में JSON से MicroDVD में जो छूटा — जैसे फ़्रेम संख्या और सेकंड के बीच का पुल फ़्रेम रेट है, इसलिए गलत रेट पर MicroDVD की पूरी समयरेखा खिसक जाती है — वह MicroDVD में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।