Hopp til hovedinnhold
SubtitleMatrix

JSON-undertekstformat

Hva dette formatet kan uttrykke

Tekstformatering
Skrifter, farge, kontur, skygge
Plassering på skjermen
Ja
Karaoketiming
Ja
Linjeskift inne i en tekstblokk
Ja
Tidslinje
Start- og sluttid for hver tekstblokk
Tidsoppløsning
1 ms
Tid lagret som bildenummer
Nei
Tekst fra høyre til venstre
Ja

Eksempler

En typisk JSON-fil, og hva som leses ut av den

Fil

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

Hva den inneholder

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

Høyre side er ikke en konvertert fil — det er det denne siden leser ut av venstre side, og det hver konvertering av filen starter fra.

En vanskelig JSON-fil, og hva som fortsatt leses ut av den

Fil

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

Hva den inneholder

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)

Ekte filer kommer med BOM, Windows-linjeskift, en løs linje før en tidslinje eller en tidslinje som ikke kan leses i det hele tatt. Ingenting kaster: det som ikke kan forstås, rapporteres i stedet for å forsvinne i stillhet.

Konverter SubtitleMatrix JSON til et annet format

Hver av disse kjører helt i nettleseren din. Etikettene sier hva den retningen koster, før du åpner den.

Konvertering inn til dette formatet

SubtitleMatrix JSON er et av undertekstformatene denne siden håndterer, og denne siden er oppslagsverket: hva formatet kan lagre, hva det ikke kan, og én side for hvert format du kan konvertere det til.

Tabellen over er hele JSON-listen — det finnes ingen skjult funksjonsliste. Når en rad sier nei, er det nøyaktig det som går tapt ved å konvertere til JSON, og hver konverteringsside nedenfor sier det før du åpner en fil.

Hver JSON-konvertering nedenfor kjøres lokalt i nettleseren, uten opplasting og uten konto — også for materiale du ikke kan sende til en fremmed server.

Ofte stilte spørsmål

Hva er en JSON-fil?

En JSON-fil er et objekt med `version` og en `cues`-tabell, der hver tekstblokk har `id`, `start`, `end` og `lines`. Start og slutt som heltall millisekunder. Det er dette nettstedets eget utvekslingsformat, der alt en side har lest, kan lagres uten avrunding.

Lagrer JSON formatering?

JSON har full formatering: hver linje kan være et objekt med tekst og en `tags`-tabell. Det er en egenskap ved JSON som følger med når formatet konverteres videre.

Lagrer hver JSON-tekstblokk både start- og sluttid?

JSON lagrer begge: start og slutt som heltall millisekunder. Et tidspunkt skrives som `"start": 4126` — heltall millisekunder, så det er ingen tvil om hvor en tekstblokk begynner og slutter.

Hvilke formater kan jeg konvertere JSON til uten tap?

Ingen av dem: hver retning ut av JSON mister noe, og hver konverteringsside navngir sin egen liste. Velg målformat etter hvilken liste du kan leve med.

Kan jeg åpne en JSON-fil i en teksteditor?

Ja. En JSON-fil er et objekt med `version` og en `cues`-tabell, der hver tekstblokk har `id`, `start`, `end` og `lines`, så filen kan leses og rettes uten spesialverktøy. Det som er lettest å bomme på, er tidsstemplet: `"start": 4126` — heltall millisekunder.