मुख्य सामग्री पर जाएँ
SubtitleMatrix

JSON को SRT में बदलें

या सबटाइटल टेक्स्ट पेस्ट करें

यह रूपांतरण क्या बदलता है

3 चीज़ें छूटती हैं या फ़ैसला माँगती हैं

  • स्टाइलिंग

    सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया)

  • स्थान

    स्क्रीन पर स्थान (हर क्यू डिफ़ॉल्ट जगह पर लौट आता है)

  • कराओके

    कराओके टाइमिंग (प्रति-अक्षर हाइलाइट)

यह सूची इन दोनों फ़ॉर्मैट के क्षमता मैट्रिक्स से आती है, आपकी लोड की गई उस फ़ाइल से नहीं। कोई खास फ़ाइल ज़्यादा खो सकती है अगर वह ऐसी सुविधाएँ इस्तेमाल करती हो जिन्हें फ़ॉर्मैट अनुमति देता है पर मैट्रिक्स मॉडल नहीं करता।

यह पेज SubtitleMatrix JSON फ़ाइल को SubRip (SRT) में बदलता है। JSON में हर cue के समय 4000 जैसे पूर्णांक मिलीसेकंड हैं, और styles तालिका तथा tags सरणी सब कुछ संरचित रूप में रहता है। SRT में हर cue एक क्रमांक, 00:00:04,000 जैसी समय-पंक्ति और पाठ से बनती है।

जो नहीं बचता: सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट)। JSON के रंग, आउटलाइन, छाया और मार्जिन SRT में कोई स्तंभ नहीं पाते; JSON का {\pos(320,240)} SRT में कोई जगह नहीं पाता और हर cue डिफ़ॉल्ट स्थान पर लौटती है; कराओके की अक्षर-दर-अक्षर अवधि चली जाती है, इसलिए SRT पूरा cue एक साथ दिखाता है। ये चीज़ें चुपचाप नहीं गिरतीं — फ़ाइल डालने से पहले ही ऊपर की सूची में लिखी रहती हैं।

SubRip (SRT) का आउटपुट .srt फ़ाइल है और उसमें हर cue के आगे क्रमांक और 00:00:04,000 जैसी समय-पंक्ति होती है। चाहे एक फ़ाइल डालें या पूरी सीरीज़, सब कुछ एक-एक करके चलता है, बीच में रोका जा सकता है, और सारे नतीजे एक ZIP में मिलते हैं। कोई सर्वर नहीं, कोई अपलोड नहीं — सब कुछ आपके ब्राउज़र में।

उदाहरण

एक सामान्य JSON फ़ाइल, SRT में बदली गई

इनपुट

{
  "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
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 से SRT: वही रूपांतरण एक कठिन इनपुट पर

इनपुट

[
    { "start": 0, "end": 1000, "lines": ["First."] },
    { "start": 1000, "end": 2000, "text": "Second." },
    "not an object",
    { "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]

आउटपुट

1
00:00:00,000 --> 00:00:01,000
First.

2
00:00:01,000 --> 00:00:02,000
Second.

3
00:00:02,000 --> 00:00:03,000
Third.

असली JSON फ़ाइलों में BOM, मिश्रित पंक्ति-अंत, खाली क्षेत्र या बिगड़ा समय-कोड मिलता है। ऊपर की साफ़ मिसाल से मिलाकर देखिए कि पार्सर कितना माफ़ करता है और क्या रिपोर्ट करता है।

अक्सर पूछे जाने वाले सवाल

JSON की समय-पंक्ति SRT में बदलते समय क्या बदलता है?

JSON का 4000 मिलीसेकंड SRT में 00:00:04,000 बनता है; दोनों में क्षण एक ही रहता है। कोई पूर्णांकन नहीं होता, क्योंकि SRT की घड़ी JSON से महीन या बराबर है।

JSON के फ़ॉन्ट, रंग और आउटलाइन SRT में बचते हैं?

SRT का मॉडल सिर्फ़ समय और पाठ है, इसलिए JSON की स्टाइल-तालिका का कोई अर्थ वहाँ नहीं रहता। फ़ॉन्ट, आकार, रंग, आउटलाइन, छाया और मार्जिन सब गिर जाते हैं; JSON के इनलाइन {i1}/{1} जैसे ज़ोर भी SRT में अपने आप नहीं बनते।

JSON से SRT बनाने की असली कीमत क्या है?

इस दिशा में 3 तरह की जानकारी गिरती है: सारी स्टाइलिंग (बोल्ड, इटैलिक, रंग, आउटलाइन, छाया), स्क्रीन पर स्थिति (हर cue डिफ़ॉल्ट जगह पर लौटती है), कराओके समय (अक्षर-दर-अक्षर हाइलाइट)। मिसाल के लिए, JSON का {\pos(320,240)} और उसका रंग SRT में अपना स्थान नहीं पाते। यह सूची आपकी फ़ाइल डालने से पहले ही दिखती है, और फ़ाइल आने के बाद उसमें बताया जाता है कि उसमें से कितनी चीज़ें वाकई मौजूद थीं।

SRT में JSON की हर cue का ढाँचा क्या होता है?

SRT में हर JSON cue के आगे 1 से शुरू होने वाला क्रमांक, फिर 00:00:04,000 --> 00:00:07,000 जैसी समय-पंक्ति और उसके नीचे पाठ आता है। दो cues के बीच एक खाली पंक्ति रहती है।

JSON की cues SRT में किस क्रम में आती हैं?

cues शुरुआती समय के क्रम में लिखी जाती हैं, इसलिए JSON में अगर कोई cue क्रम से बाहर थी तो SRT में वह अपनी सही जगह पर लौट आती है। एक cue के भीतर की पंक्तियाँ अलग नहीं होतीं, क्योंकि दोनों फ़ॉर्मैट हार्ड लाइन-ब्रेक रख सकते हैं।

SRT से JSON लौटने पर क्या नया छूट सकता है?

हाँ, उलटी दिशा भी सुरक्षित है: SRT से JSON में जाने पर भी कुछ नहीं छूटता, क्योंकि दोनों एक ही जानकारी रखते हैं। फिर भी इस दिशा में जो पहले छूटा था वह वापस नहीं आता — गिरी हुई जानकारी किसी फ़ाइल में बची ही नहीं होती।

संबंधित टूल