Naar de hoofdinhoud
SubtitleMatrix

SSA naar CSV

FormaatconversieSubStation Alpha (SSA)
Of plak ondertiteltekst

Wat deze conversie verandert

4 dingen vervallen of vragen om een beslissing

  • Opmaak

    alle opmaak (vet, cursief, kleur, contour, schaduw)

  • Positionering

    positionering op het scherm (elk blok keert terug naar de standaardpositie)

  • Karaoke

    karaoke-timing (markering per lettergreep)

  • Formaatspecifieke inhoud

    inhoud die het bronformaat buiten zijn blokken bewaart (blokken die geen ondertitel zijn, koptekst, instellingen per blok, uitgecommentarieerde gebeurtenissen) — het doelformaat heeft er geen plek voor

Deze lijst komt uit de capaciteitenmatrix voor deze twee formaten, niet uit het bestand dat je hebt geladen. Een specifiek bestand kan meer verliezen wanneer het kenmerken gebruikt die het formaat toestaat maar de matrix niet modelleert.

Deze pagina zet SSA om naar CSV. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de CSV-versie terug. De conversie draait volledig in je browser, dus er wordt niets geüpload en je hebt geen account nodig.

De twee formaten bewaren niet dezelfde dingen, en het verschil is niet cosmetisch: stijl, positie, karaoke en formaateigen constructies hebben in CSV geen plek. De lijst hierboven komt uit wat beide formaten kunnen uitdrukken, niet uit jouw bestand; het antwoord is dus hetzelfde voordat je iets laadt.

Eén bestand kan, een heel seizoen ook: de wachtrij werkt ze op volgorde af en de resultaten komen samen als één ZIP binnen.

Voorbeelden

Een typisch SSA-bestand, omgezet naar CSV

Invoer

[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

Uitvoer

start,end,text
00:00:01.000,00:00:04.000,Hello there.
00:00:05.000,00:00:08.000,<i>Italic</i> line.
00:00:09.000,00:00:12.000,"Two
lines"

Verloren in deze uitvoer: stijl, positie, karaoke en formaateigen constructies. Alles wat overblijft klopt regel voor regel.

Dezelfde omzetting op een weerbarstige invoer

Invoer

[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.

Uitvoer

start,end,text
00:00:01.000,00:00:04.000,<b>Bold</b> and <u>underlined</u>.
00:00:05.000,00:00:08.000,"A soft
break and a {\p1}mystery{\p0} code."

Zo ziet schade in echte bestanden eruit — gemengde regeleinden, losse spaties, lege velden. Vergelijk dit met het nette voorbeeld hierboven om te zien wat de parser vergeeft.

Veelgestelde vragen

Blijven vet en cursief bij SSA naar CSV bewaard?

De nadruk blijft, de stijltabel gaat. Opmaak die bij een stuk tekst hoort — vet, cursief, onderstreping, een kleur — komt als tag in de CSV-tekst te staan: <i>, <b>, <u> of een font-tag met een kleur. Dat is de enige soort stijl die een blokformaat nog kan dragen. Wat verdwijnt is alles wat het SSA-bestand globaal zei: het lettertype, de grootte, de contour, de schaduw en de marges.

Wat gebeurt er met de positie op het scherm van SSA naar CSV?

CSV kan niet zeggen waar een ondertitel wordt getekend. De codes \pos, \an en \move verdwijnen dus bij het verlaten van SSA, en elk blok valt terug op de standaardpositie die de speler kiest — bij de meeste spelers onderaan het beeld en gecentreerd.

Wat gebeurt er met karaoketiming van SSA naar CSV?

De timing gaat, de woorden blijven. Karaoke zit in de codes \k, \kf en \ko van een SSA-regel, die markeren wanneer elke lettergreep oplicht. CSV kan geen moment binnen een regel vastleggen, dus de markeringen gaan eraf en de lettergrepen komen als gewone CSV-tekst aan.

Wat gebeurt er met het blok [Script Info] en de rest van het script in CSV?

Alleen de Dialogue:-regels worden ondertitels. Het blok [Script Info] — inclusief de titel, want CSV heeft daar geen plek voor —, de stijltabel, alle Comment:-regels en wat er in [Fonts] of [Graphics] zit, vallen weg. Bij een SSA-bestand met handgeschreven stijl is dat het verlies dat het meest opvalt.

Hoe ziet de uitvoer eruit als SSA CSV wordt?

Als CSV: een kopregel met start,end,text en daarna één rij per blok. Elk SSA-blok wordt één CSV-blok, in dezelfde volgorde, met dezelfde tekst.

Zijn de SSA-tijden exact in het CSV-bestand?

Ja, tot op de milliseconde — fijner gaat geen van beide formaten. SSA schrijft een moment als 0:00:04.13, CSV schrijft hetzelfde moment als 00:00:04.130; er wordt niets afgerond of verschoven, en een blok dat 2,9 seconden in beeld stond, staat dat nog steeds.

Hoe komt een SSA-blok van twee regels in CSV uit?

Als twee regels binnen de ene tekstcel, tussen aanhalingstekens zoals CSV dat eist. Het paar blijft bij elkaar: de twee SSA-regels horen in de CSV-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.

Behouden SSA-blokken hun volgorde in de CSV-uitvoer?

Ja, en onderweg worden ze op starttijd gesorteerd — vroegste eerst, zoals elk formaat hier ze verwacht en zoals spelers ze lezen. Stond je SSA-bestand niet in volgorde, dan zet de CSV-uitvoer het weer goed; dat is een wijziging in de structuur van het bestand, niet in de inhoud, en ze is bewust.

Kan ik de CSV weer naar SSA omzetten?

Ja, en die richting heeft haar eigen lijst: CSV naar SSA verliest precisie, omdat SSA in honderdsten van een seconde rekent en CSV in milliseconden. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.

Behoudt de CSV-uitvoer de tekencodering van het SSA-bestand?

Nee — de uitvoer is UTF-8, met Unix-regeleinden en zonder BOM, wat het SSA-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd (het resultatenpaneel zegt het als dat gebeurt); wat eruit komt is altijd dezelfde UTF-8-CSV.

Gerelateerde hulpmiddelen