SMI-ondertitelformaat
Wat dit formaat kan uitdrukken
- Tekstopmaak
- Vet en cursief
- Positionering op het scherm
- Ja
- Karaoke-timing
- Nee
- Regeleinden binnen een blok
- Ja
- Tijdlijn
- Begin- en eindtijd voor elk blok
- Tijdresolutie
- 1 ms
- Tijden opgeslagen als framenummers
- Nee
- Tekst van rechts naar links
- Ja
Voorbeelden
Een typisch SMI-bestand, gelezen door deze site
Bestand
<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>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Wat het bevat
2 cues, 3 lines of text
Start=1000 = 00:00:01.000 → 00:00:03.000
Hello there.
[Class=ENCC]
Start=3500 = 00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[Class=ENCC]
Outside the cues:
head a <STYLE> block with CSS for the paragraphs, kept as it came in
cue ends the next <SYNC> tag — a SAMI file writes no end time of its own
clearing a <P> block blanks the screen; the two here are kept as clearing blocks, not turned into cuesZo leest de site een SMI-bestand: per <SYNC>-blok een begin, een tekstregel en een eind dat uit het volgende blok volgt, met de CSS en de titel apart.
Een SMI-bestand met de randen van het formaat
Bestand
<SAMI>
<BODY>
<SYNC Start=abc>
<P Class=ENCC>this block's start cannot be read
<SYNC Start=2000>
<SYNC Start=4000>
<P>no attributes here<br>second line
<SYNC Start="6000">
some loose text before any P
</BODY>
</SAMI>Wat het bevat
3 cues, 3 lines of text
Start=2000 = 00:00:02.000 → 00:00:04.000
(no text)
Start=4000 = 00:00:04.000 → 00:00:06.000
no attributes here
second line
Start=6000 = 00:00:06.000 → 00:00:08.000
some loose text before any P
Outside the cues:
head no <STYLE> block and no <TITLE> — just the <SAMI> and <BODY> tags
cue ends the next <SYNC> tag; the last cue has none after it, so its end time was given a default
loose text text between two <SYNC> tags that belongs to no <P> is kept and attached to the cue open at that point
Reported while reading — repaired or skipped, never silently:
1 × SYNC blocks whose start time could not be read (they were skipped)
1 × the last cue has no following timestamp, so its end time was generatedDit is het randgeval: een blok zonder tekst, een ontbrekende Start en een <br> dat geen paar vormt. De lezer slaat over wat geen ondertitel is en meldt wat hij heeft moeten repareren.
SAMI (SMI) naar een ander formaat omzetten
Elk van deze draait volledig in je browser. De labels zeggen wat die richting kost voordat je hem opent.
- Nauwkeurigheid
- Formaatspecifieke inhoud
- Opmaak
- Positionering
- Formaatspecifieke inhoud
- Formaatspecifieke inhoud
- Timing
- Opmaak
- Positionering
- Nauwkeurigheid
- Formaatspecifieke inhoud
- Opmaak
- Positionering
- Beeldsnelheid
- Formaatspecifieke inhoud
- Opmaak
- Positionering
- Formaatspecifieke inhoud
- Opmaak
- Positionering
- Formaatspecifieke inhoud
- Nauwkeurigheid
- Formaatspecifieke inhoud
- Formaatspecifieke inhoud
- Timing
- Opmaak
- Positionering
- Regeleinden
- Formaatspecifieke inhoud
- Positionering
- Formaatspecifieke inhoud
Naar dit formaat omzetten
- SubRip (SRT) → SAMI (SMI)
- WebVTT (VTT) → SAMI (SMI)
- Advanced SubStation Alpha (ASS) → SAMI (SMI)
- SubStation Alpha (SSA) → SAMI (SMI)
- YouTube SBV → SAMI (SMI)
- LRC Lyrics → SAMI (SMI)
- MicroDVD → SAMI (SMI)
- TTML (Timed Text) → SAMI (SMI)
- SubtitleMatrix JSON → SAMI (SMI)
- Plain Text (TXT) → SAMI (SMI)
- CSV Spreadsheet → SAMI (SMI)
SAMI is het ondertitelformaat dat Microsoft eind jaren negentig voor Windows Media Player maakte. Het is HTML-achtig: een <SAMI>-wortel met een <HEAD> en een <BODY>, een CSS-blok in de kop, en in de body een reeks <SYNC>-blokken die elk een <P>-regel met tekst bevatten.
De tijd zit in het <SYNC>-blok, niet in de tekst: Start=4126 betekent 4,126 seconden na het begin, en een blok blijft in beeld tot het volgende <SYNC> begint. Een leeg blok met een non-breaking space wist het beeld. De opmaak zit in de CSS bovenin en wordt via Class=-attributen aan de regels gehangen; daarbuiten zijn er <TITLE>, de taal per klasse en de regels van de stylesheet.
Op deze pagina staat wat deze site uit een SMI-bestand leest, en wat er tijdens het lezen wordt gerepareerd. Converteren kan vanaf de pagina’s hieronder.
Veelgestelde vragen
Wat is een SMI-bestand?
Een SAMI-document: HTML-achtige tekst met een <SAMI>-wortel, een <HEAD> met een <STYLE>-blok in CSS en een <BODY> met een reeks <SYNC>-blokken. Elk <SYNC> opent met een starttijd in milliseconden, bijvoorbeeld Start=4126, en bevat een <P>-regel met de tekst van dat moment; een Class=-attribuut koppelt die regel aan een klasse uit het <STYLE>-blok.
Bewaart SMI stijl?
Ja, maar niet per cue. De opmaak staat in het <STYLE>-blok in de kop als CSS, en de <P>-regels verwijzen via Class= naar een klasse. Een blok kan dus vet of cursief staan en een kleur of uitlijning krijgen, maar die stijl hoort bij de klasse en niet bij de losse regel.
Bewaart elk SMI-blok zowel een start als een eind?
Nee. Een <SYNC>-blok bevat alleen een Start; het eind van een blok is het moment waarop het volgende <SYNC> begint. Een leeg blok met wist het beeld. Deze site leest dat als een expliciet eindmoment en neemt het over in het leesverslag.
Naar welk formaat kan ik SMI het beste omzetten?
Dat hangt af van wat je wilt bewaren. SRT en VTT zijn de gewone keuzes voor spelers en platforms; JSON en CSV zijn handig als je de blokken wilt verwerken; TTML als je een gestructureerd document nodig hebt. ASS en SSA alleen als je de stijl daarna opnieuw wilt opbouwen, want de CSS van SAMI gaat daarbij verloren.
Wat bewaart een SAMI-bestand buiten zijn cues?
De kop: een <TITLE> met de documentnaam, een <STYLE>-blok met CSS-regels per element en per klasse, en de taal- en naamgegevens die aan een klasse hangen. Die horen bij het document en niet bij een cue; bij conversie gaan ze verloren, behalve de tekst en de tijden van de blokken zelf.