Siirry pääsisältöön
SubtitleMatrix

JSON-tekstitysmuoto

Mitä tämä muoto voi ilmaista

Tekstin tyyli
Fontit, väri, ääriviiva, varjo
Sijoittelu ruudulla
Kyllä
Karaokeajoitus
Kyllä
Rivinvaihdot alaotsikon sisällä
Kyllä
Aikajana
Alku- ja loppuaika jokaiselle alaotsikolle
Ajoituksen tarkkuus
1 ms
Ajoitus tallennetaan ruutunumeroina
Ei
Oikealta vasemmalle -teksti
Kyllä

Esimerkit

Tyypillinen JSON-tiedosto ja mitä siitä luetaan

Tiedosto

{
  "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"
    }
  ]
}

Mitä se sisältää

3 cues, 5 lines of text

  0 ms → 2000 ms
    Hello world.
    Second line.
    [Default; position 100,200 (center)]
  2500 ms → 4000 ms
    Plain line.
    Styled line.   [italic ×1]
  4500 ms → 6000 ms
    Roger: I am here.
    [speaker Roger]

Outside the cues:
  styles     Default
  other keys version, title, fps, generator — carried through untouched

Oikeanpuoleinen sarake ei ole muunnettu tiedosto vaan se, mitä tämä sivu lukee vasemmalta puolelta ja mistä jokainen JSON-muunnos alkaa.

Hankala JSON-tiedosto ja mitä siitä yhä luetaan

Tiedosto

{
    "cues": [
        { "start": "0:00:01,5", "end": "0:00:03,0", "text": "Unpadded timecode." },
        { "start": 4000.5, "end": 5000, "lines": ["Fractional start.", { "text": "Second.", "tags": [] }] },
        { "start": 9000, "end": 8000, "lines": ["End before start."] },
        { "start": "nope", "end": 12000, "lines": ["No readable start."] },
        { "start": 13000, "lines": ["No end at all."] }
    ],
    "generator": "subtitlematrix boundary",
    "styles": {},
    "title": "Fixture: boundary"
}

Mitä se sisältää

3 cues, 4 lines of text

  1500 ms → 3000 ms
    Unpadded timecode.
  4001 ms → 5000 ms
    Fractional start.
    Second.
  9000 ms → 9001 ms
    End before start.

Outside the cues:
  other keys generator, title — carried through untouched

Reported while reading — repaired or skipped, never silently:
  2 × entries with no readable start and end time (they are not cues, so they were skipped)
  1 × cue times that were not whole milliseconds (they were rounded to the nearest millisecond)
  1 × cues whose end time was not after their start time (they were given a 1ms duration)

Näin JSON-tiedosto käyttäytyy, kun se on rikki: ylimääräisiä rivejä, outoja kenttiä ja aikoja, joita ei voi lukea. Mikään ei kaada lukua – korjaukset ja ohitukset näkyvät oikealla puolella.

Muunna SubtitleMatrix JSON toiseen muotoon

Jokainen näistä toimii kokonaan selaimessasi. Nimikkeet kertovat, mitä tuo suunta maksaa, ennen kuin avaat sen.

Muuntaminen tähän muotoon

Tämän sivun JSON on avoin tekstitysmalli, joka tallentaa koko tekstityksen rakenteen: ajoitukset, rivit, tyylit ja tagit. Se on ainoa mukana oleva muoto, johon mahtuu kaikki, mitä muut formaatit osaavat kertoa. Tämä sivu on JSON-muodon kuvaus: mitä se tallentaa, mitä se ei tallenna ja mihin sen voi muuntaa. Alla oleva taulukko kertoo JSON-muodon ominaisuudet – jokainen rivi on asia, joka joko säilyy tai katoaa, kun tiedosto muunnetaan toiseen muotoon.

JSON tallentaa täyden tyylittelyn: fontit, koot, värit, ääriviivat ja marginaalit. JSON tallentaa sijoittelun ruudulle. JSON tukee karaoken tavukohtaista ajoitusta. JSON tallentaa jokaiselle alaotsikolle alku- ja loppuajan millisekunnin tarkkuudella. JSON tukee monirivisiä alaotsikoita.

Tältä sivulta löydät jokaisen suunnan, johon JSON-tiedoston voi muuntaa. Jokainen JSON-muunnos tapahtuu selaimessa: mitään ei lähetetä palvelimelle eikä tiliä tarvita. Koko JSON-kausi mahtuu samaan eräajoon, ajon voi keskeyttää ja tulokset latautuvat yhtenä ZIP-tiedostona.

Usein kysytyt kysymykset

Mikä on JSON-tiedosto ja mitä siihen mahtuu?

Tämän sivun JSON on avoin tekstitysmalli, joka tallentaa koko tekstityksen rakenteen: ajoitukset, rivit, tyylit ja tagit. Se on ainoa mukana oleva muoto, johon mahtuu kaikki, mitä muut formaatit osaavat kertoa. Tiedosto voi sisältää useita rivejä alaotsikkoa kohden.

Tallentaako JSON tyylejä ja sijoittelua?

JSON tallentaa täyden tyylittelyn: fontit, koot, värit, ääriviivat ja marginaalit. JSON tallentaa sijoittelun ruudulle. JSON tukee karaoken tavukohtaista ajoitusta. Rivinsisäinen muotoilu tallennetaan näin: merkkirajoina tallennetut tagit.

Onko jokaisella JSON-tiedoston alaotsikolla alku- ja loppuaika?

Kyllä. JSON kirjoittaa ajan muodossa {"start": 1000, "end": 3500}, eli kokonaislukuina millisekunteina, ja sekä alku että loppu ovat tiedostossa.

Mihin muotoihin JSON-tiedoston voi muuntaa ilman menetyksiä?

Ei mihinkään: jokaisessa suunnassa JSON-tiedostosta jää jotain pois, koska JSON tallentaa enemmän kuin muut formaatit. Jokainen muunnossivu kertoo oman menetyksensä ennen tiedoston valintaa.

Mitä JSON tallentaa alaotsikoiden ulkopuolella?

JSON tallentaa alaotsikoiden lisäksi dokumenttitason kentät version, title, fps ja styles. Ne eivät ole alaotsikoita vaan koko dokumenttia koskevaa tietoa: styles siirtyy vain sellaiseen muotoon, joka tuntee tyylitaulun, ja title sekä fps vain jos kohdeformaatti kirjoittaa ne.

Miten JSON eroaa lähimmästä sukulaisestaan?

JSON tallentaa kaiken, mitä SRT:ssä on, ja lisäksi tyylit, sijainnit, tagit ja dokumenttitason kentät. SRT puolestaan tallentaa vain numeron, ajan ja tekstin, joten JSON:sta SRT:hen muuntaminen pudottaa juuri ne kerrokset, joita SRT:ssä ei ole.

Miten tämä sivu lukee JSON-tiedostoa, kun tiedosto on rikki?

JSON luetaan kokonaisuutena: jos tiedosto ei ole kelvollista JSONia, sitä ei yritetä tulkita väkisin. Tuntemattomat kentät säilytetään sellaisenaan, jotta oma lisätietosi ei katoa edestakaisella matkalla.