Hopp til hovedinnhold
SubtitleMatrix

JSON til VTT

Eller lim inn underteksttekst

Hva denne konverteringen endrer

3 ting slippes eller trenger en avgjørelse

  • Formatering

    all formatering unntatt fet og kursiv (farge, kontur, skygge, marger)

  • Plassering

    plassering på skjermen (hver tekstblokk går tilbake til standardposisjonen)

  • Karaoke

    karaoketiming (utheving per stavelse)

Denne listen kommer fra egenskapsmatrisen for disse to formatene, ikke fra den bestemte filen du lastet inn. En bestemt fil kan miste mer hvis den bruker egenskaper formatet tillater, men matrisen ikke modellerer.

Denne siden konverterer JSON til VTT: slipp inn en fil eller lim inn teksten, og du får VTT-versjonen tilbake med tekstblokkene fra JSON i behold.

Det er en reell forskjell på JSON og VTT: farge, omriss, skygge og marger forsvinner, mens fet og kursiv overlever som innebygde tagger; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner.

Listen over filboksen er regnet ut fra hva JSON og VTT kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.

En hel sesong med JSON-filer går gjennom VTT-konverteringen i én kjøring: hver fil behandles for seg, du kan avbryte underveis, og resultatene lastes ned som én ZIP.

Fordi JSON-til-VTT-konverteringen kjører lokalt i nettleseren, forlater filen din aldri maskinen.

Eksempler

En typisk JSON-fil konvertert til VTT

Inndata

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

Resultat

WEBVTT

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.

Dette går tapt i utdataen: farge og marger, plassering og karaoke.

Samme JSON-til-VTT-konvertering med vanskelig inndata

Inndata

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

Resultat

WEBVTT

00:00:00.000 --> 00:00:01.000
First.

00:00:01.000 --> 00:00:02.000
Second.

00:00:02.000 --> 00:00:03.000
Third.

Slik ser skader på ekte filer ut — blandede linjeskift, løse mellomrom, tomme felt. Sammenlign med det ryddelige eksempelet over for å se hva JSON-parseren tilgir.

Ofte stilte spørsmål

Hva går tapt når JSON blir VTT?

Dette: farge, omriss, skygge og marger forsvinner, mens fet og kursiv overlever som innebygde tagger; plasseringen forsvinner, og hver tekstblokk faller tilbake til standardplassen; karaoketimingen per stavelse forsvinner. På kildesiden har JSON et JSON-skjema med tider i millisekunder og tagger per linje; på målsiden har VTT tekstblokker med start- og sluttid og grunnleggende innebygde tagger, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.

Hvordan skrives tidsstemplene om fra JSON til VTT?

En tid i JSON ser slik ut: `"start": 4126` — heltall millisekunder. I VTT skrives den som `00:00:04.126` — punktum foran millisekundene. Begge formatene bruker samme oppløsning, så ingen avrunding skjer. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.

Hva skjer med formateringen fra JSON i VTT?

Stiltabellen forsvinner: skrift, størrelse, marger, omriss og skygge fra JSON har ingen plass i VTT, som bare har grunnleggende formatering. Fet og kursiv skrives om til VTTs innebygde tagger og overlever; farge går tapt.

Hvordan ser en VTT-fil ut når den er laget fra JSON?

VTT er en `WEBVTT`-overskrift og tekstblokker skilt med tomme linjer, uten påkrevde nummer. Konverteringen fra JSON fyller den formen: hver tekstblokk blir én VTT-blokk, i samme rekkefølge, med JSON-ens tekst delt i de samme linjene.

Kan jeg konvertere VTT tilbake til JSON, og hva går tapt da?

Ja, og den veien har sin egen tap-liste: JSON har ingen plass til innholdet VTT oppbevarer utenfor tekstblokkene. Det er ikke den samme listen som JSON → VTT, fordi de to formatene beholder ulike ting.

Beholder VTT plasseringen som JSON beskriver?

Nei. JSON kan plassere en tekstblokk på skjermen, men VTT har ingen posisjonsmodell, så hver tekstblokk faller tilbake til spillerens standardplass; posisjonen står i tap-listen.

Hva gjør VTT med en tekstblokk fra JSON som har flere linjer?

Den beholder linjene. JSON og VTT uttrykker begge flere linjer per tekstblokk, og konverteringen skriver linjeskiftet ved å legge linjene under hverandre i samme blokk i stedet for å slå sammen teksten.

Forsvinner karaoketimingen i JSON når jeg konverterer til VTT?

Ja. JSON kan lagre per stavelse når en linje skal lyse opp, men VTT har ingen slik instruksjon; ordene blir stående, men timingen per stavelse er borte.

Hva skjer med kommentarer og metadata i JSON når filen blir VTT?

JSON har `version`, `title`, `fps` og `styles` på dokumentnivå, men de er en del av modellen, ikke private blokker. VTT har `NOTE`-, `STYLE`- og `REGION`-blokker samt innstillinger på tekstblokken som `align:` og `position:` — men det er VTT-konstruksjoner som ikke fantes i JSON, ikke noe som ble borte.

Relaterte verktøy