JSON til SSA
Eller lim inn underteksttekst
Hva denne konverteringen endrer
1 ting slippes eller trenger en avgjørelse
- Presisjon
tidspresisjon — resultatets klokke er grovere, så hvert tidsstempel rundes av til nærmeste 10 ms
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.
Slipp inn en JSON-fil på denne siden, og du får den tilbake som SSA, med tidsstemplene skrevet om og teksten i behold.
Forskjellen mellom JSON og SSA er ikke kosmetisk: den siste desimalen forsvinner, fordi klokken i SSA runder hvert tidsstempel til nærmeste 10 ms.
Listen over filboksen er regnet ut fra hva JSON og SSA kan uttrykke, ikke fra filen din, så svaret er det samme før du laster opp noe.
Du kan kjøre én JSON-fil eller en hel sesong til SSA i samme kjøring: filene behandles én om gangen, kjøringen kan avbrytes underveis, og alt kommer ned som én ZIP.
Konverteringen fra JSON til SSA skjer i nettleseren din, så ingenting lastes opp.
Eksempler
En typisk JSON-fil konvertert til SSA
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
[Script Info]
Title: Fixture: typical
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,,,,0,0,,,,,,,,,
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,{\pos(100,200)}Hello world.\NSecond line.
Dialogue: 0,0:00:02.50,0:00:04.00,Default,,0,0,0,,Plain line.\N{\i1}Styled{\i0} line.
Dialogue: 0,0:00:04.50,0:00:06.00,Default,,0,0,0,,Roger: I am here.
Dette går tapt i utdataen: tidspresisjon.
Samme JSON-til-SSA-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
[Script Info]
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,First.
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,Second.
Dialogue: 0,0:00:02.00,0:00:03.00,Default,,0,0,0,,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 SSA?
Dette: den siste desimalen forsvinner, fordi klokken i SSA runder hvert tidsstempel til nærmeste 10 ms. På kildesiden har JSON et JSON-skjema med tider i millisekunder og tagger per linje; på målsiden har SSA en full stiltabell, plassering, karaoke og hundredelers tider, og derfor kommer de nevnte tingene ikke med. Teksten og rekkefølgen kommer over.
Hvordan skrives tidsstemplene om fra JSON til SSA?
En tid i JSON ser slik ut: `"start": 4126` — heltall millisekunder. I SSA skrives den som `0:00:04.13` — hundredeler. Klokken i SSA er grovere enn i JSON, så hvert tidsstempel rundes til nærmeste 10 ms. Rekkefølgen er den samme, og ingen tekstblokk flyttes mer enn avrundingen tilsier.
Hva skjer med formateringen fra JSON i SSA?
Den kommer over: JSON og SSA har begge full formatering, så taggene skrives om uten at fet, kursiv eller farge forsvinner.
Hvordan ser en SSA-fil ut når den er laget fra JSON?
SSA er `[Script Info]`, en stiltabell i `[V4 Styles]` og `[Events]` med en `Marked`-kolonne. Konverteringen fra JSON fyller den formen: hver tekstblokk blir én SSA-blokk, i samme rekkefølge, med JSON-ens tekst delt i de samme linjene.
Kan jeg konvertere SSA tilbake til JSON, og hva går tapt da?
Ja, og den veien har sin egen tap-liste: JSON har ingen plass til innholdet SSA oppbevarer utenfor tekstblokkene. Det er ikke den samme listen som JSON → SSA, fordi de to formatene beholder ulike ting.
Beholder SSA plasseringen som JSON beskriver?
Ja, i den formen SSA har: SSA kan plassere tekstblokker, så JSON-ens posisjon skrives om dit i stedet for å kastes.