Konvertera SSA till JSON
Eller klistra in undertexttext
Vad den här konverteringen ändrar
1 sak tappas eller kräver ett beslut
- Formatspecifikt innehåll
innehåll som källformatet behåller utanför sina textblock (block som inte är textblock, rubriktext, inställningar per textblock, utkommenterade händelser) – målformatet har ingen plats för det
Den här listan kommer från kapacitetsmatrisen för de här två formaten, inte från den specifika fil du laddade. En viss fil kan förlora mer om den använder funktioner som formatet tillåter men matrisen inte modellerar.
Den här sidan konverterar en SSA-fil till JSON. SSA skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. Ett SSA-textblock är en Dialogue-rad med Marked, start, slut, stil, marginaler och text. Ett JSON-textblock är ett objekt med start, end och text, samlade i en cues-lista. SSA räknar i hundradels sekunder, medan JSON har finare upplösning och tar emot värdet utan ytterligare avrundning.
Det som inte följer med: formatdata. Innehåll utanför textblocken har ingen plats i målformatet. SSA sparar hundradelar: en tid som 0:00:04.13 betyder 4130 ms när filen läses, och det är den tiden som skrivs vidare. Någon ytterligare avrundning sker inte, men källan har redan tappat millisekunderna. JSON skriver bara ett id när källans textblock har ett; ASS, SSA och SBV har inget löpnummer i modellen, så utdatafilen får inga id-fält. Rapporten ovanför filrutan listar förlusterna innan du väljer en fil, och räknar dem per fil när filen är inläst.
En fil eller en hel säsong: kön bearbetar filerna i tur och ordning, du kan avbryta mitt i och resultaten laddas ner tillsammans som en ZIP. Hela konverteringen sker i webbläsaren – filen lämnar aldrig datorn.
Exempel
En typisk SSA-fil konverterad till JSON
Indata
[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal
[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: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines
Resultat
{
"version": 1,
"title": "Example SSA",
"styles": {
"Default": {
"name": "Default",
"Name": "Default",
"Fontname": "Arial",
"Fontsize": "20",
"PrimaryColour": "&H00FFFFFF",
"SecondaryColour": "&H000000FF",
"TertiaryColour": "&H00000000",
"BackColour": "&H00000000",
"Bold": "0",
"Italic": "0",
"BorderStyle": "1",
"Outline": "2",
"Shadow": "2",
"Alignment": "2",
"MarginL": "10",
"MarginR": "10",
"MarginV": "10",
"AlphaLevel": "0",
"Encoding": "1",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#ffffff",
"bold": false,
"italic": false
}
},
"cues": [
{
"start": 1000,
"end": 4000,
"lines": [
"Hello there."
],
"style": "Default"
},
{
"start": 5000,
"end": 8000,
"lines": [
{
"text": "Italic line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
],
"style": "Default"
},
{
"start": 9000,
"end": 12000,
"lines": [
"Two",
"lines"
],
"style": "Default"
}
]
}
Förlorat i utdatafilen: formatdata. Jämför de två sidorna rad för rad.
Samma konvertering på en stökig fil
Indata
[Script Info]
Title: Dirty SSA
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
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.Resultat
{
"version": 1,
"title": "Dirty SSA",
"styles": {
"Default": {
"name": "Default",
"Name": "Default",
"Fontname": "Arial",
"Fontsize": "20",
"PrimaryColour": "&H00FFFFFF",
"SecondaryColour": "&H000000FF",
"TertiaryColour": "&H00000000",
"BackColour": "&H00000000",
"Bold": "0",
"Italic": "0",
"BorderStyle": "1",
"Outline": "2",
"Shadow": "2",
"Alignment": "2",
"MarginL": "10",
"MarginR": "10",
"MarginV": "10",
"AlphaLevel": "0",
"Encoding": "1",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#ffffff",
"bold": false,
"italic": false
}
},
"cues": [
{
"start": 1000,
"end": 4000,
"lines": [
{
"text": "Bold and underlined.",
"tags": [
{
"kind": "bold",
"start": 0,
"end": 4
},
{
"kind": "underline",
"start": 9,
"end": 19
}
]
}
],
"style": "Default"
},
{
"start": 5000,
"end": 8000,
"lines": [
"A soft",
"break and a {\\p1}mystery{\\p0} code."
],
"style": "Default"
}
]
}
Så här ser skadade filer ut i verkligheten – blandade radbrytningar, lösa blanksteg och tomma fält. Jämför med det prydliga exemplet ovan för att se vad tolken förlåter.
Vanliga frågor
Hur skiljer sig tidskoderna i SSA och JSON?
SSA skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. JSON skriver tiden som ett heltal millisekunder, till exempel "start": 4126. SSA räknar i hundradels sekunder, medan JSON har finare upplösning och tar emot värdet utan ytterligare avrundning.
Vad förloras när en SSA-fil blir JSON?
När SSA blir JSON går formatdata förlorade. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och tiderna följer med.
Klarar JSON av formatering och placering som SSA har?
SSA har en stiltabell i [V4 Styles] med typsnitt, storlek, färger, kontur och marginaler, plus överstyrningskoder per textblock. SSA placerar text med \pos och \an, och behåller \an-parametern i textblockets extrafält. SSA sparar karaoketider per stavelse med \k-koder. JSON bevarar hela modellen: stilar, placering, karaoke och strukturerade taggar. JSON sparar positionen som x, y och en justering. JSON sparar karaoketider som strukturerade taggar.
Vad händer med radbrytningar och antalet textblock när SSA konverteras till JSON?
SSA till JSON: Ett SSA-textblock är en Dialogue-rad med Marked, start, slut, stil, marginaler och text. Ett SSA-textblock behåller hårda radbrytningar (\N och \n). JSON behåller hårda radbrytningar som en lista av rader.
Laddas min SSA-fil upp när jag konverterar den till JSON?
Nej. Både inläsningen av SSA-filen och skrivningen av JSON-filen sker i webbläsaren; ingen del av texten, tiderna eller taggarna skickas i en förfrågan. Du kan lägga in en hel säsong, avbryta mitt i och ladda ner resultaten som en ZIP.