TTML को VTT में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
यह रूपांतरण क्या बदलता है
3 चीज़ें छूटती हैं या फ़ैसला माँगती हैं
- स्टाइलिंग
बोल्ड और इटैलिक के अलावा सारी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन)
- स्थान
स्क्रीन पर स्थान (हर क्यू डिफ़ॉल्ट जगह पर लौट आता है)
- फ़ॉर्मैट-विशिष्ट सामग्री
वह सामग्री जो स्रोत फ़ॉर्मैट अपने क्यू के बाहर रखता है (क्यू से बाहर के ब्लॉक, हेडर टेक्स्ट, प्रति-क्यू सेटिंग, टिप्पणी की गई घटनाएँ) — लक्ष्य फ़ॉर्मैट में उसके लिए कोई जगह नहीं
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
यह पेज TTML (Timed Text) फ़ाइल को WebVTT (VTT) में बदलता है। TTML एक XML दस्तावेज़ है जिसका <head> नामित स्टाइल और region रखता है, और <p> तत्व cue बनते हैं। VTT में WEBVTT हेडर के बाद cues आती हैं, समय 00:00:04.000 की तरह बिंदु के साथ लिखा जाता है, और NOTE, STYLE व REGION ब्लॉक तथा align जैसी सेटिंग cue के बाहर रहते हैं।
जो नहीं बचता: बोल्ड और इटैलिक के अलावा बाकी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। TTML के रंग, आउटलाइन और मार्जिन VTT में नहीं जाते, हालाँकि बोल्ड और इटैलिक बच जाते हैं; TTML का {\pos(320,240)} VTT में कोई जगह नहीं पाता और हर cue डिफ़ॉल्ट स्थान पर लौटती है; XML prolog और <head> की <styling>, <layout> व <metadata> तालिकाएँ VTT में नहीं जाते, क्योंकि वहाँ उनके लिए कोई अनुभाग नहीं है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।
WebVTT (VTT) का आउटपुट .vtt फ़ाइल है और उसमें शुरुआत में WEBVTT हेडर होता है और समय में बिंदु आता है। चाहे एक फ़ाइल डालें या पूरी सीरीज़, सब कुछ एक-एक करके चलता है, बीच में रोका जा सकता है, और सारे नतीजे एक ZIP में मिलते हैं। कोई सर्वर नहीं, कोई अपलोड नहीं — सब कुछ आपके ब्राउज़र में।
उदाहरण
एक सामान्य TTML फ़ाइल, VTT में बदली गई
इनपुट
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
आउटपुट
WEBVTT
00:00:01.000 --> 00:00:03.500
Hello <i>there</i>.
00:00:03.500 --> 00:00:06.000
How are you?
Fine, thanks.
इस आउटपुट में छूटा: स्टाइलिंग, स्क्रीन स्थिति, फ़ॉर्मैट-विशिष्ट सामग्री। बाकी सब पंक्ति-दर-पंक्ति मेल खाता है।
TTML से VTT: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
आउटपुट
WEBVTT
00:00:01.500 --> 00:00:03.500
Loaded from an offset and a duration.
00:00:04.000 --> 00:00:06.500
A coarser clock spelling.
00:00:07.000 --> 00:00:08.480
Frames, at 25fps.
00:00:09.000 --> 00:00:11.000
<font color="#FF0000">Half-open</font> and Tom & Jerry.
असली TTML फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
TTML की समय-पंक्ति VTT में बदलते समय क्या बदलता है?
TTML इसे 00:00:04.000 लिखता है और VTT इसे 00:00:04.000 लिखता है; क्षण वही रहता है, सिर्फ़ विराम-चिह्न और इकाई बदलती है। कोई पूर्णांकन नहीं होता, क्योंकि VTT की घड़ी TTML से महीन या बराबर है।
TTML का XML prolog और <head> की <styling>, <layout> व <metadata> तालिकाएँ VTT में कहाँ जाता है?
TTML की वह सामग्री cue मॉडल के बाहर रहती है — <styling> में tts:color जैसे नामित नियम हैं, <layout> में tts:origin व tts:extent वाले region, और <p> उन्हें नाम से पुकारता है। VTT में उसके लिए कोई अनुभाग, स्तंभ या विशेषता नहीं है, इसलिए वह गिर जाती है और रिपोर्ट में अलग से गिनी जाती है; VTT का अपना हेडर उसे दोबारा नहीं बना सकता।
TTML से VTT में बदलने पर क्या खो जाता है?
इस दिशा में 3 तरह की जानकारी गिरती है: बोल्ड और इटैलिक के अलावा बाकी स्टाइलिंग (रंग, आउटलाइन, छाया, मार्जिन), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। मिसाल के लिए, TTML का {\pos(320,240)} और उसका रंग VTT में अपना स्थान नहीं पाते। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।
VTT में TTML के cues के आगे क्या लिखा जाता है?
TTML से बनी VTT फ़ाइल की पहली पंक्ति WEBVTT होती है, क्योंकि उसके बिना खिलाड़ी फ़ाइल नहीं खोलते। उसके बाद हर TTML cue का समय 00:00:04.000 जैसे बिंदु वाले रूप में और पाठ उसके नीचे लिखा जाता है; क्रमांक रखे जा सकते हैं पर अनिवार्य नहीं।
TTML की cues VTT में किस क्रम में आती हैं?
cues शुरुआती समय के क्रम में लिखी जाती हैं, इसलिए TTML में अगर कोई cue क्रम से बाहर थी तो VTT में वह अपनी सही जगह पर लौट आती है। एक cue के भीतर की पंक्तियाँ अलग नहीं होतीं, क्योंकि दोनों फ़ॉर्मैट हार्ड लाइन-ब्रेक रख सकते हैं।
VTT से TTML लौटने पर क्या नया छूट सकता है?
नहीं। VTT से TTML की उलटी दिशा में भी cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में TTML से VTT में जो छूटा — जैसे TTML का {\pos(320,240)} और उसका रंग VTT में अपना स्थान नहीं पाते — वह VTT में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।