SRT को TTML में बदलें
या सबटाइटल टेक्स्ट पेस्ट करें
यह रूपांतरण क्या बदलता है
इस दिशा में कुछ नहीं छूटता — स्रोत फ़ॉर्मैट की हर सुविधा के लिए लक्ष्य फ़ॉर्मैट में कहीं जगह है।
यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।
SubRip (SRT) और TTML (Timed Text) दोनों सबटाइटल रखते हैं, पर उनका ढाँचा अलग है; यह पेज एक को दूसरे में बदलता है। SRT में हर cue एक क्रमांक, 00:00:04,000 जैसी समय-पंक्ति और पाठ से बनती है।
यहाँ कुछ नहीं छूटता: TTML पूरी स्टाइलिंग और region-आधारित स्थिति रखता है, जो SRT की हर जानकारी को समेट लेता है। SRT इसे 00:00:04,000 लिखता है और TTML इसे 00:00:04.000 लिखता है; क्षण वही रहता है, सिर्फ़ विराम-चिह्न और इकाई बदलती है।
TTML (Timed Text) का नतीजा .ttml फ़ाइल के रूप में मिलता है; XML ढाँचा, <head> की <styling>/<layout> तालिकाएँ और <p> cue बनती हैं। बैच में डाली गई हर फ़ाइल अलग से संसाधित होती है, बीच में रोकने पर बाकी नहीं चलतीं, और अंत में सब एक ZIP में मिलती हैं। फ़ाइल आपके ब्राउज़र से बाहर नहीं जाती।
उदाहरण
एक सामान्य SRT फ़ाइल, TTML में बदली गई
इनपुट
1
00:00:01,000 --> 00:00:03,500
Hello there.
2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.
3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.
आउटपुट
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.500">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p> </body>
</tt>
यहाँ कुछ नहीं छूटता: दोनों ओर की पंक्तियाँ एक-एक करके मिलाइए।
SRT से TTML: वही रूपांतरण एक कठिन इनपुट पर
इनपुट
1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.
2
00:00:03,500 --> 00:00:06,000
3
00:00:08,000 --> 00:00:09,000
Last one.
आउटपुट
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.500"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p> </body>
</tt>
असली SRT फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।
अक्सर पूछे जाने वाले सवाल
SRT से TTML तक समय कैसे पहुँचता है?
SRT इसे 00:00:04,000 लिखता है और TTML इसे 00:00:04.000 लिखता है; क्षण वही रहता है, सिर्फ़ विराम-चिह्न और इकाई बदलती है। कोई पूर्णांकन नहीं होता, क्योंकि TTML की घड़ी SRT से महीन या बराबर है।
क्या SRT के cue क्रमांक TTML में बचते हैं?
SRT में हर cue के आगे एक क्रमांक होता है; TTML में वह क्रमांक उतना ही महत्वपूर्ण नहीं रहता। जहाँ लक्ष्य cue पहचानकर्ता रखता है वहाँ संख्या चली जाती है, और जहाँ नहीं रखता वहाँ सिर्फ़ समय-पंक्ति के बाद पाठ रहता है। क्रम वैसे भी शुरुआती समय से तय होता है।
SRT से TTML में जाने पर कौन-सी जानकारी बचती है?
कुछ नहीं छूटता, क्योंकि TTML SRT की हर जानकारी रख सकता है: cue का समय, पाठ, पंक्ति विराम और क्रम। SRT इसे 00:00:04,000 लिखता है और TTML इसे 00:00:04.000 लिखता है; क्षण वही रहता है, सिर्फ़ विराम-चिह्न और इकाई बदलती है। यह क्षमता-स्तर का निष्कर्ष है; अगर आपकी SRT फ़ाइल में पार्स करते समय कोई खराब ब्लॉक पहले ही छूटा था, तो वह अलग रिपोर्ट में दिखेगा।
SRT से TTML बनाने पर <head> में क्या आता है?
TTML में हर SRT cue एक <p> तत्व बनती है, और <head> में <styling> व <layout> तालिकाएँ बनाई जाती हैं। समय 00:00:04.000 रूप में जाता है और SRT की पंक्तियाँ <p> के भीतर <span> बनकर रहती हैं।
SRT के हार्ड लाइन-ब्रेक TTML में बचते हैं?
दोनों फ़ॉर्मैट एक cue के भीतर हार्ड लाइन-ब्रेक रख सकते हैं, इसलिए SRT की दो पंक्तियाँ TTML में भी एक ही cue की दो पंक्तियाँ रहती हैं और एक साथ दिखती हैं। कुछ भी जोड़ा या तोड़ा नहीं जाता; बदलता सिर्फ़ समय का लिखावटी रूप है।
अगर बाद में TTML को SRT में बदलना हो तो क्या ध्यान रखें?
नहीं। TTML से SRT की उलटी दिशा में भी सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), cue मॉडल के बाहर रखी स्रोत की सामग्री (गैर-cue ब्लॉक, हेडर पाठ, प्रति-cue सेटिंग, टिप्पणी-किए इवेंट) जैसी जानकारी गिरती है, क्योंकि दोनों फ़ॉर्मैट अलग-अलग चीज़ें रखते हैं और उलटी दिशा की अपनी कमियाँ हैं। और इस दिशा में SRT से TTML में जो छूटा — जैसे source की कुछ जानकारी TTML में जगह नहीं पाती — वह TTML में कहीं दर्ज नहीं है, इसलिए किसी भी उलटे रूपांतरण से उसे दोबारा नहीं बनाया जा सकता।