SSA naar SMI
Of plak ondertiteltekst
Wat deze conversie verandert
3 dingen vervallen of vragen om een beslissing
- Opmaak
alle opmaak behalve vet en cursief (kleur, contour, schaduw, marges)
- 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 SMI. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de SMI-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, karaoke en formaateigen constructies hebben in SMI 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 SMI
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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello there.
<SYNC Start=4000>
<P>
<SYNC Start=5000>
<P><i>Italic</i> line.
<SYNC Start=8000>
<P>
<SYNC Start=9000>
<P>Two<br>lines
<SYNC Start=12000>
<P>
</BODY>
</SAMI>
Verloren in deze uitvoer: stijl, 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
<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P><b>Bold</b> and <u>underlined</u>.
<SYNC Start=4000>
<P>
<SYNC Start=5000>
<P>A soft<br>break and a {\p1}mystery{\p0} code.
<SYNC Start=8000>
<P>
</BODY>
</SAMI>
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 SMI bewaard?
De nadruk komt mee als opmaak in de opbouw van de pagina, de stijltabel niet. Wat bij een stuk tekst hoort — vet, cursief, onderstreping, een kleur — wordt als tag in de SMI-tekst geschreven, binnen de <P>-regel van dat blok. Globaal gezette dingen als lettertype, grootte, contour, schaduw en marges verdwijnen.
Hoe wordt het beeld tussen twee SSA-blokken in SMI leeggemaakt?
Met een eigen <SYNC>-blok en een <P> erin, direct na het blok dat je wilt wissen. SAMI kent geen eindtijd: het volgende <SYNC> vervangt wat er staat, en een non-breaking space is de gebruikelijke manier om niets te tonen. Elk SSA-eind krijgt in de uitvoer zo zijn eigen wisblok.
Wat gebeurt er met karaoketiming van SSA naar SMI?
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. SMI kan geen moment binnen een regel vastleggen, dus de markeringen gaan eraf en de lettergrepen komen als gewone SMI-tekst aan.
Wat gebeurt er met het blok [Script Info] als het bestand SMI wordt?
Elke Dialogue:-regel wordt een <SYNC>-blok. De titel gaat verloren: de omzetting schrijft geen <TITLE> in de kop, ook al kent SAMI dat element wel. Ook de stijltabel, de overige sleutels uit [Script Info], alle Comment:-regels en wat in [Fonts] of [Graphics] zit vallen weg. SMI kent geen script, alleen blokken op een tijdlijn.
Hoe ziet de uitvoer eruit als SSA SMI wordt?
Als SMI: een <SAMI>-document met een kop en een reeks <SYNC>-blokken, elk met een <P>-regel die de tekst bevat. Elk SSA-blok wordt één SMI-blok, in dezelfde volgorde, met dezelfde tekst.
Zijn de SSA-tijden exact in het SMI-bestand?
Ja, tot op de milliseconde — fijner gaat geen van beide formaten. SSA schrijft een moment als 0:00:04.13, SMI schrijft hetzelfde moment als Start=4130 in milliseconden; 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 SMI uit?
Als twee regels binnen dezelfde <P>-regel, gescheiden door een <br>. Het paar blijft bij elkaar: de twee SSA-regels horen in de SMI-uitvoer nog steeds bij één ondertitel, en een speler toont ze samen.
Hoe weet een SMI-speler waar een blok eindigt?
Dat staat nergens: SMI kent geen eindtijd. Een blok blijft in beeld tot het volgende <SYNC>-blok begint, en na het laatste blok tekent de uitvoer een leeg blok dat de ondertitel wist. De duur van je SSA-blokken zit dus in de afstand tussen de opeenvolgende <SYNC>-momenten.
Kan ik de SMI weer naar SSA omzetten?
Ja, en die richting heeft haar eigen lijst: SMI naar SSA verliest precisie en formaateigen inhoud, want SSA rekent in honderdsten en kent de SAMI-kop niet. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.