Naar de hoofdinhoud
SubtitleMatrix

SMI naar ASS

Of plak ondertiteltekst

Wat deze conversie verandert

2 dingen vervallen of vragen om een beslissing

  • Nauwkeurigheid

    tijdprecisie — de klok van de uitvoer is grover, dus elke tijdstempel wordt afgerond op de dichtstbijzijnde 10 ms

  • 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 SMI om naar ASS. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de ASS-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: ASS schrijft honderdsten van een seconde waar SMI milliseconden telt, en de kop van het SAMI-document heeft in ASS geen equivalent. De lijst hierboven komt uit wat beide formaten kunnen uitdrukken, niet uit jouw bestand.

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 SMI-bestand, omgezet naar ASS

Invoer

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Uitvoer

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,How are you?\NFine, thanks.

Verloren in deze uitvoer: precisie en formaateigen inhoud. Alles wat overblijft klopt regel voor regel.

Dezelfde omzetting op een weerbarstige invoer

Invoer

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

Uitvoer

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:02.50,0:00:09.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Tom &amp; Jerry

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

Veelgestelde vragen

Waarom verschuiven de tijden van SMI naar ASS?

Omdat ASS in honderdsten van een seconde rekent en SMI in milliseconden. Een SMI-moment op Start=4126 wordt in ASS 0:00:04.13 — vier milliseconden later. Dat is het enige wat aan de tijd verandert; de volgorde en de duur van elk blok blijven gelijk.

Wat gebeurt er met het <STYLE>-blok, <TITLE> en de Class=-attributen van SAMI in ASS?

Die hebben in ASS geen plek en vallen weg. De CSS-regels uit <STYLE> zijn geen ASS-stijlen, <TITLE> is geen [Script Info]-sleutel, en Class= hoort bij de HTML-achtige opbouw van SAMI. Wat je terugkrijgt is een ASS-bestand met een [V4+ Styles]-tabel met één Default-stijl en Dialogue:-regels die naar de standaardstijl verwijzen.

Hoe ziet de uitvoer eruit als SMI ASS wordt?

Als ASS: een [Script Info]-blok, een [V4+ Styles]-tabel met één Default-stijl en per blok een Dialogue:-regel met de velden Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect en Text. Elk SMI-blok wordt één Dialogue:-regel, in dezelfde volgorde.

Hoe komt een SMI-blok van twee regels in ASS uit?

Als één tekstveld met de harde regeleinde van ASS ertussen — in het bestand een backslash gevolgd door N. Een speler toont de twee regels weer onder elkaar.

Blijven SMI-blokken in dezelfde volgorde in ASS staan?

Ja, en ze worden onderweg op starttijd gesorteerd — vroegste eerst. Stond je SMI-bestand niet in volgorde, dan zet de ASS-uitvoer het recht; dat raakt de structuur, niet de inhoud, en het is bewust gedaan.

Kan ik de ASS weer naar SMI omzetten?

Ja, en die richting heeft haar eigen lijst: ASS naar SMI verliest stijl, positie, karaoke en de constructies die ASS buiten de cue kent. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.

Behoudt de ASS-uitvoer de tekencodering van het SMI-bestand?

Nee — de uitvoer is UTF-8, met Unix-regeleinden en zonder BOM, wat het SMI-bestand ook gebruikte. Een bestand in UTF-16 of in een Windows-codering met één byte wordt bij het inlezen gedecodeerd; wat eruit komt is altijd dezelfde UTF-8-ASS.

Gerelateerde hulpmiddelen