Gå till huvudinnehållet
SubtitleMatrix

JSON-undertextformat

Vad det här formatet kan uttrycka

Textformatering
Typsnitt, färg, kontur, skugga
Positionering på skärmen
Ja
Karaoketider
Ja
Radbrytningar inuti ett textblock
Ja
Tidslinje
Start- och sluttid för varje textblock
Tidsupplösning
1 ms
Tider lagrade som bildnummer
Nej
Höger-till-vänster-text
Ja

Exempel

En typisk JSON-fil och vad som läses ut ur 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"
    }
  ]
}

Vad den innehåller

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

Den högra sidan är inte en konverterad fil – det är vad den här sidan läser ut ur den vänstra, och vad varje konvertering av filen utgår från.

En stökig JSON-fil och vad som fortfarande läses ut

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

Vad den innehåller

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)

Riktiga filer kommer med BOM, Windows-radbrytningar, en lös rad före en tidskod eller en tidskod som inte går att läsa. Inget kastar ett fel: det som inte förstås rapporteras i stället för att tappas tyst.

Konvertera SubtitleMatrix JSON till ett annat format

Var och en av dessa körs helt i din webbläsare. Etiketterna säger vad den riktningen kostar innan du öppnar den.

Konvertera in i det här formatet

Här är referenssidan för SubtitleMatrix JSON: vad formatet kan lagra, vad det inte kan lagra och en sida för varje format du kan konvertera det till. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista.

Tabellen ovan är hela listan – det finns ingen dold funktionslista. När en rad säger nej är det precis vad som går förlorat när du konverterar till JSON; åt andra hållet namnger varje konverteringssida nedan sin egen förlustlista. Ingen riktning är förlustfri: varje målformat saknar något som det här formatet kan uttrycka.

Alla konverteringar körs i webbläsaren. Inget laddas upp och inget konto behövs, vilket spelar roll för material under NDA, patientjournaler eller ett sändningsembargo.

Vanliga frågor

Vad är en JSON-fil?

JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista.

Vilka stilar kan en JSON-fil lagra?

JSON bevarar hela modellen: stilar, placering, karaoke och strukturerade taggar. JSON sparar karaoketider som strukturerade taggar.

Sparar JSON både start- och sluttid?

Ja. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Tidsangivelsen har 1 ms upplösning och är exakt inom den upplösningen.

Vilka format kan jag konvertera JSON till utan förlust?

För JSON är ingen riktning förlustfri: varje målformat saknar något som det här formatet kan uttrycka, och varje konverteringssida namnger sin egen lista.

Vad finns utanför textblocken i en JSON-fil?

JSON har ingen egen privat del; det som finns utanför textblocken är det källformatet hade. Det som inte får plats i målformatet rapporteras som formatdata i stället för att tappas tyst.