Naar de hoofdinhoud
SubtitleMatrix

SMI naar LRC

Of plak ondertiteltekst

Wat deze conversie verandert

5 dingen vervallen of vragen om een beslissing

  • Timing

    de eindtijden van blokken (het uitvoerformaat legt alleen vast wanneer een blok begint)

  • Opmaak

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

  • Positionering

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

  • 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 LRC. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de LRC-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: LRC kent geen eindtijden, geen stijl en geen plaatsing, en de kop van het SAMI-document heeft er ook geen plek. 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 LRC

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

[00:01.00]Hello there.
[00:03.50]How are you?
[00:03.50]Fine, thanks.

Verloren in deze uitvoer: timing, stijl, positie, 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

[00:02.50]Line one
[00:02.50]Line two
[00:09.00]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

Wat gebeurt er met de eindtijd van elk SMI-blok in LRC?

Die verdwijnt. LRC legt alleen vast wanneer een regel begint, dus de eindtijd die SMI impliciet in het volgende <SYNC>-blok had, bestaat in de LRC-uitvoer niet meer. Hoe lang een ondertitel in beeld bleef, is nergens meer te vinden.

Wat gebeurt er met vet, cursief en kleur van SMI naar LRC?

LRC bewaart helemaal geen stijl, dus alles gaat weg: de CSS-regels uit <STYLE>, de klasse-attributen en elke opmaak die bij een stuk tekst hoorde. Elke regel wordt als platte tekst geschreven; de woorden zelf blijven ongewijzigd.

Wat gebeurt er met de positie op het scherm van SMI naar LRC?

LRC kan niet zeggen waar een ondertitel wordt getekend. De uitlijning en plaatsing uit de SAMI-stijl verdwijnen, en elke regel valt terug op de standaardpositie die de speler kiest.

Waarom verschuiven de tijden van SMI naar LRC?

Omdat LRC in honderdsten van een seconde rekent en zijn tijd als mm:ss.xx schrijft. Een SMI-moment op Start=4126 wordt [00:04.12]: twee milliseconden verschil, en de fijnere precisie van SMI bestaat in LRC niet.

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

Die vallen weg. LRC kent alleen tijdgestempelde regels en eventueel een [ti:]-tag; CSS-regels, een documenttitel en klasse-attributen hebben er geen vorm. De tekst van de blokken blijft wel volledig staan.

Hoe ziet de uitvoer eruit als SMI LRC wordt?

Als LRC: geen bloknummers en geen komma’s tussen tijden, maar per regel een tijdstempel tussen vierkante haken. Elk SMI-blok wordt één LRC-blok, in dezelfde volgorde, met dezelfde tekst.

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

De <br> uit de <P>-regel splitst het blok in twee tijdgestempelde regels met dezelfde tijd; in LRC betekent dat: deze twee horen bij elkaar en verschijnen samen. De twee regels van het SAMI-blok blijven dus naast elkaar staan, ook al is de eindtijd weg.

Blijven SMI-blokken in dezelfde volgorde in LRC staan?

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

Kan ik de LRC weer naar SMI omzetten?

Ja, en die richting heeft haar eigen lijst: LRC naar SMI verliest timing, want een LRC-bestand kent geen eindtijden. De omzetter moet de duur van elk blok afleiden uit het volgende tijdstempel, en dat is een aanname. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.

Behoudt de LRC-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-LRC.

Gerelateerde hulpmiddelen