Gå till huvudinnehållet
SubtitleMatrix

Konvertera SMI till ASS

Eller klistra in undertexttext

Vad den här konverteringen ändrar

2 saker tappas eller kräver ett beslut

  • Precision

    tidsprecision – utdatans klocka är grövre, så varje tidsstämpel avrundas till närmaste 10 ms

  • 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 SMI-fil till ASS. SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. ASS skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. Ett SMI-textblock är en <SYNC Start=…>-rad följd av en <P>-rad; nästa <SYNC> tar över skärmen. Ett ASS-textblock är en Dialogue-rad med lager, start, slut, stil, marginaler och text. ASS räknar i hundradels sekunder, alltså grövre än SMI; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.

Det som inte följer med: tidsprecisionen och formatdata. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. 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 SMI-fil konverterad till ASS

Indata

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

Resultat

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

Förlorat i utdatafilen: tidsprecisionen och formatdata. Jämför de två sidorna rad för rad.

Samma konvertering på en stökig fil

Indata

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

Resultat

[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

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 SMI och ASS?

SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. ASS skriver en tidpunkt som 0:00:04.13, alltså i hundradels sekunder. ASS räknar i hundradels sekunder, alltså grövre än SMI; varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms.

Vad förloras när en SMI-fil blir ASS?

När SMI blir ASS går tidsprecisionen och formatdata förlorade. Målformatets klocka är grövre: varje tid avrundas till närmaste 10 ms, och felet blir högst 5 ms. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och tiderna följer med, men avrundade.

Klarar ASS av formatering och placering som SMI har?

SMI har en <STYLE>-del med CSS och <font>-taggar i texten; teckenstorlek, kontur och marginaler deklareras inte per textblock. SMI kan placera text via CSS-klasser och attribut på <P>-raderna. SMI har ingen karaoke. ASS har en stiltabell i [V4+ Styles] med typsnitt, storlek, färger, kontur och marginaler, plus överstyrningskoder per textblock. ASS placerar text med \pos och \an, och behåller \an-parametern i textblockets extrafält. ASS sparar karaoketider per stavelse med \k-koder.

Vad händer med radbrytningar och antalet textblock när SMI konverteras till ASS?

SMI till ASS: Ett SMI-textblock är en <SYNC Start=…>-rad följd av en <P>-rad; nästa <SYNC> tar över skärmen. Ett SMI-textblock behåller hårda radbrytningar (<br>). Ett ASS-textblock behåller hårda radbrytningar (\N och \n).

Laddas min SMI-fil upp när jag konverterar den till ASS?

Nej. Både inläsningen av SMI-filen och skrivningen av ASS-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.

Relaterade verktyg