TTML को TXT में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
यह रूपांतरण क्या बदलता है
5 चीज़ें छूटती हैं या फ़ैसला माँगती हैं
- टाइमिंग
पूरी टाइमलाइन (आउटपुट फ़ॉर्मैट कोई टाइमिंग नहीं रखता)
- स्टाइलिंग
सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया)
- स्थान
स्क्रीन पर स्थान (हर क्यू डिफ़ॉल्ट जगह पर लौट आता है)
- लाइन ब्रेक
लाइन ब्रेक (कई पंक्तियों वाले क्यू एक पंक्ति में जोड़ दिए जाएँगे)
- फ़ॉर्मैट-विशिष्ट सामग्री
वह सामग्री जो स्रोत फ़ॉर्मैट अपने क्यू के बाहर रखता है (क्यू से बाहर के ब्लॉक, हेडर टेक्स्ट, प्रति-क्यू सेटिंग, टिप्पणी की गई घटनाएँ) — लक्ष्य फ़ॉर्मैट में उसके लिए कोई जगह नहीं
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
TTML (Timed Text) और Plain Text (TXT) दोनों सबटाइटल रखते हैं, पर उनका ढाँचा अलग है; यह पेज एक को दूसरे में बदलता है। TTML एक XML दस्तावेज़ है जिसका <head> नामित स्टाइल और region रखता है, और <p> तत्व cue बनते हैं।
जो नहीं बचता: पूरी समयरेखा (लक्ष्य कोई समय नहीं रखता), सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), पंक्ति विराम (बहु-पंक्ति cue एक पंक्ति में जुड़ जाती हैं), cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। समय-कोड पूरी तरह गायब हो जाते हैं, इसलिए TXT की एक पंक्ति को आपकी फ़ाइल का कोई क्षण याद नहीं रहता; TTML के रंग, आउटलाइन, छाया और मार्जिन TXT में कोई स्तंभ नहीं पाते; TTML का {\pos(320,240)} TXT में कोई जगह नहीं पाता और हर cue डिफ़ॉल्ट स्थान पर लौटती है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।
Plain Text (TXT) का नतीजा .txt फ़ाइल के रूप में मिलता है; हर cue एक सादी पंक्ति बनती है, बिना समय के। बैच में डाली गई हर फ़ाइल अलग से संसाधित होती है, बीच में रोकने पर बाकी नहीं चलतीं, और अंत में सब एक ZIP में मिलती हैं। फ़ाइल आपके ब्राउज़र से बाहर नहीं जाती।
उदाहरण
एक सामान्य TTML फ़ाइल, TXT में बदली गई
इनपुट
<?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>
आउटपुट
Hello there.
How are you?
Fine, thanks.
इस आउटपुट में छूटा: पूरी समयरेखा, स्टाइलिंग, स्क्रीन स्थिति, पंक्ति विराम, फ़ॉर्मैट-विशिष्ट सामग्री। बाकी सब पंक्ति-दर-पंक्ति मेल खाता है।
TTML से TXT: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
<?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>
आउटपुट
Loaded from an offset and a duration.
A coarser clock spelling.
Frames, at 25fps.
Half-open and Tom & Jerry.
असली TTML फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
TTML के 00:00:04,000 जैसे समय TXT में जाते समय कहाँ गायब होते हैं?
TTML हर cue के शुरू और अंत को 00:00:04.000 के रूप में रखता है, पर TXT में समय के लिए कोई जगह ही नहीं है। इसलिए पाठ की पंक्तियाँ क्रम में लिखी जाती हैं और हर समय-कोड छूट जाता है; क्रम बना रहता है, पर कौन-सी पंक्ति कब दिखेगी यह TXT से पता नहीं चलता।
TTML की cue के बाहर की सामग्री TXT फ़ाइल में बचती है?
TTML की वह सामग्री cue मॉडल के बाहर रहती है — <styling> में tts:color जैसे नामित नियम हैं, <layout> में tts:origin व tts:extent वाले region, और <p> उन्हें नाम से पुकारता है। TXT में उसके लिए कोई अनुभाग, स्तंभ या विशेषता नहीं है, इसलिए वह गिर जाती है और रिपोर्ट में अलग से गिनी जाती है; TXT का अपना हेडर उसे दोबारा नहीं बना सकता।
TTML और TXT के बीच कौन-सा अंतर सबसे ज़्यादा मायने रखता है?
इस दिशा में 5 तरह की जानकारी गिरती है: पूरी समयरेखा (लक्ष्य कोई समय नहीं रखता), सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), पंक्ति विराम (बहु-पंक्ति cue एक पंक्ति में जुड़ जाती हैं), cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट)। मिसाल के लिए, TTML का 00:00:04.000 किसी भी TXT पंक्ति के साथ नहीं रहता, इसलिए पाठ का क्रम तो बचता है पर समय नहीं। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।
TXT में TTML के cue और पंक्तियों का क्या नाता है?
TXT में हर TTML cue की पंक्तियाँ बिना समय के सादे पाठ बनती हैं। बहु-पंक्ति cue एक पंक्ति में जुड़ जाती है, क्योंकि TXT का मॉडल एक पंक्ति एक cue है।
दो पंक्तियों वाली TTML cue TXT में कैसे आएगी?
TTML एक cue के भीतर हार्ड लाइन-ब्रेक रख सकता है, पर TXT का मॉडल एक पंक्ति एक cue है। इसलिए दोनों पंक्तियाँ जोड़ दी जाती हैं और अलग पंक्ति का अंतर खत्म हो जाता है; पाठ का क्रम बना रहता है, पर दृश्य विराम नहीं।
TXT से TTML लौटने पर क्या नया छूट सकता है?
नहीं। TXT से TTML की उलटी दिशा में भी समयरेखा स्वयं बनाई जाती है (स्रोत में कोई समय नहीं) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में TTML से TXT में जो छूटा — जैसे TTML का 00:00:04.000 किसी भी TXT पंक्ति के साथ नहीं रहता, इसलिए पाठ का क्रम तो बचता है पर समय नहीं — वह TXT में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।