JSON को VTT में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
यह रूपांतरण क्या बदलता है
3 चीज़ें छूटती हैं या फ़ैसला माँगती हैं
- स्टाइलिंग
बोल्ड और इटैलिक के अलावा सारी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन)
- स्थान
स्क्रीन पर स्थान (हर क्यू डिफ़ॉल्ट जगह पर लौट आता है)
- कराओके
कराओके टाइमिंग (प्रति-अक्षर हाइलाइट)
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
यह पेज SubtitleMatrix JSON फ़ाइल को WebVTT (VTT) में बदलता है। JSON में हर cue के समय 4000 जैसे पूर्णांक मिलीसेकंड हैं, और styles तालिका तथा tags सरणी सब कुछ संरचित रूप में रहता है। VTT में WEBVTT हेडर के बाद cues आती हैं, समय 00:00:04.000 की तरह बिंदु के साथ लिखा जाता है, और NOTE, STYLE व REGION ब्लॉक तथा align जैसी सेटिंग cue के बाहर रहते हैं।
जो नहीं बचता: बोल्ड और इटैलिक के अलावा बाकी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट)। JSON के रंग, आउटलाइन और मार्जिन VTT में नहीं जाते, हालाँकि बोल्ड और इटैलिक बच जाते हैं; JSON का {\pos(320,240)} VTT में कोई जगह नहीं पाता और हर cue डिफ़ॉल्ट स्थान पर लौटती है; कराओके की अक्षर-दर-अक्षर अवधि चली जाती है, इसलिए VTT पूरा cue एक साथ दिखाता है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।
WebVTT (VTT) का आउटपुट .vtt फ़ाइल है और उसमें शुरुआत में WEBVTT हेडर होता है और समय में बिंदु आता है। चाहे एक फ़ाइल डालें या पूरी सीरीज़, सब कुछ एक-एक करके चलता है, बीच में रोका जा सकता है, और सारे नतीजे एक ZIP में मिलते हैं। कोई सर्वर नहीं, कोई अपलोड नहीं — सब कुछ आपके ब्राउज़र में।
उदाहरण
एक सामान्य JSON फ़ाइल, VTT में बदली गई
इनपुट
{
"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"
}
]
}
आउटपुट
WEBVTT
1
00:00:00.000 --> 00:00:02.000
Hello world.
Second line.
2
00:00:02.500 --> 00:00:04.000
Plain line.
<i>Styled</i> line.
3
00:00:04.500 --> 00:00:06.000
Roger: I am here.
इस आउटपुट में छूटा: स्टाइलिंग, स्क्रीन स्थिति, कराओके। बाकी सब पंक्ति-दर-पंक्ति मेल खाता है।
JSON से VTT: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
आउटपुट
WEBVTT
00:00:00.000 --> 00:00:01.000
First.
00:00:01.000 --> 00:00:02.000
Second.
00:00:02.000 --> 00:00:03.000
Third.
असली JSON फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
VTT की घड़ी JSON की तुलना में कितनी सूक्ष्म है?
JSON का 4000 मिलीसेकंड VTT में 00:00:04.000 बनता है; दोनों में क्षण एक ही रहता है। कोई पूर्णांकन नहीं होता, क्योंकि VTT की घड़ी JSON से महीन या बराबर है।
JSON के रंग, आउटलाइन और मार्जिन VTT में क्या बनते हैं?
VTT सिर्फ़ बोल्ड, इटैलिक, अंडरलाइन और रंग जैसी इनलाइन स्टाइलिंग रखता है, इसलिए JSON का बोल्ड-इटैलिक बच जाता है। फ़ॉन्ट, आकार, आउटलाइन, छाया और मार्जिन नहीं आते — VTT में उनके लिए कोई स्तंभ नहीं है।
JSON और VTT के बीच कौन-सा अंतर सबसे ज़्यादा मायने रखता है?
इस दिशा में 3 तरह की जानकारी गिरती है: बोल्ड और इटैलिक के अलावा बाकी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट)। मिसाल के लिए, JSON का {\pos(320,240)} और उसका रंग VTT में अपना स्थान नहीं पाते। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।
JSON से VTT बनाने पर WEBVTT हेडर कौन जोड़ता है?
JSON से बनी VTT फ़ाइल की पहली पंक्ति WEBVTT होती है, क्योंकि उसके बिना खिलाड़ी फ़ाइल नहीं खोलते। उसके बाद हर JSON cue का समय 00:00:04.000 जैसे बिंदु वाले रूप में और पाठ उसके नीचे लिखा जाता है; क्रमांक रखे जा सकते हैं पर अनिवार्य नहीं।
JSON की cues VTT में किस क्रम में आती हैं?
cues शुरुआती समय के क्रम में लिखी जाती हैं, इसलिए JSON में अगर कोई cue क्रम से बाहर थी तो VTT में वह अपनी सही जगह पर लौट आती है। एक cue के भीतर की पंक्तियाँ अलग नहीं होतीं, क्योंकि दोनों फ़ॉर्मैट हार्ड लाइन-ब्रेक रख सकते हैं।
अगर बाद में VTT को JSON में बदलना हो तो क्या ध्यान रखें?
नहीं। VTT से JSON की उलटी दिशा में भी cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में JSON से VTT में जो छूटा — जैसे JSON का {\pos(320,240)} और उसका रंग VTT में अपना स्थान नहीं पाते — वह VTT में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।