Gå til hovedindholdet
SubtitleMatrix

JSON-undertekstformat

Hvad dette format kan udtrykke

Tekstformatering
Skrifter, farve, kontur, skygge
Placering på skærmen
Ja
Karaoke-timing
Ja
Linjeskift inde i en tekstblok
Ja
Tidslinje
Start- og sluttid for hver tekstblok
Tidsopløsning
1 ms
Tider gemt som billednumre
Nej
Højre-til-venstre-tekst
Ja

Eksempler

En typisk JSON-fil, og hvad der læses ud af 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"
    }
  ]
}

Hvad den indeholder

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øjre side er ikke en konverteret fil – det er, hvad dette site læser ud af venstre side, og udgangspunktet for enhver konvertering af filen.

En beskidt JSON-fil, og hvad der stadig læses ud af 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"
}

Hvad den indeholder

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)

Virkelige filer kommer med BOM, Windows-linjeskift, en løs linje før tidskoden eller en tidskode, der slet ikke kan læses. Intet kaster en fejl: det, der ikke kan forstås, rapporteres i stedet for at forsvinde.

Konverter SubtitleMatrix JSON til et andet format

Hver af disse kører helt i din browser. Etiketterne siger, hvad den retning koster, før du åbner den.

Konvertering til dette format

SubtitleMatrix JSON er et af de tolv undertekstformater, som dette site håndterer. Denne side er opslagsværket for JSON: hvad formatet kan gemme, hvad det ikke kan, og en side for hvert format, du kan konvertere det til.

Tabellen ovenfor er den fulde liste for JSON – der findes ingen skjult funktionsliste. Når en række siger nej, er det præcis det, der går tabt ved at konvertere til JSON, og hver konverteringsside siger det, før du åbner en fil. Dokumentet har en version, en liste under nøglen cues og valgfri styles; hver tekstblok har start, slut, linjer og eventuelt position.

Alle konverteringer fra JSON kører i browseren. Intet uploades, og der kræves ingen konto, når du konverterer JSON-filer, hvilket betyder noget for materiale under en fortrolighedsaftale, en patientjournal eller et udsendelsesstop.

Ofte stillede spørgsmål

Hvad er en JSON-fil?

SubtitleMatrix JSON er dette sites eget format og en spejling af den interne model. Dokumentet har en version, en liste under nøglen cues og valgfri styles; hver tekstblok har start og slut i hele millisekunder samt linjer med strukturerede tags.

Hvilken formatering gemmer JSON?

JSON gemmer formatering som strukturerede tags med art, start, slut og værdi. Fed, kursiv, understregning, farve og karaoke er felter, ikke tegn i teksten.

Kan JSON gemme placering og karaoke?

JSON gemmer position som x, y og align og kan rumme karaoke. Ukendte nøgler på dokument- og tekstblokniveau bevares, så et felt, vi ikke kender, ikke forsvinder.

Hvilke formater kan JSON konverteres til uden tab?

Ingen ifølge kapacitetstabellen. Hver retning fra JSON taber mindst én ting – typisk tidslinjen, formateringen eller formatets særindhold. Hver konverteringsside navngiver sit eget tab.

Hvordan håndterer læseren en beskadiget JSON-fil?

JSON accepterer både objektformen, arrayformen, subtitle.js-AST og tekstgenveje; output skrives med to mellemrum, LF og sorteret efter starttid. Det er den læsning, du får for JSON.

Hvilke JSON-former accepterer læseren?

Objektformen med version og nøglen cues, den rå arrayform, subtitle.js-AST med type og data samt tekstgenvejen, hvor en tekstblok har en text-streng i stedet for linjer. Udgangen er altid den samme kanoniske form. Det er reglerne for JSON.