SMI naar TTML
Of plak ondertiteltekst
Wat deze conversie verandert
1 ding vervalt of vraagt om een beslissing
- 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 TTML. Sleep een bestand naar binnen — of plak de tekst — en je krijgt de TTML-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: de kop van het SAMI-document heeft in TTML geen plek, dus de CSS-regels, de titel en de klasse-attributen vallen weg. 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 TTML
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>
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>
</BODY>
</SAMI>
Uitvoer
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.000">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000">How are you?<br/>Fine, thanks.</p> </body>
</tt>
Verloren in deze uitvoer: 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 & Jerry
<SYNC Start=12000>
<P Class=ENCC>
</BODY>
</SAMI>
Uitvoer
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:02.500" end="00:00:09.000">Line one<br/>Line two</p>
<p begin="00:00:09.000" end="00:00:12.000">Tom & Jerry</p> </body>
</tt>
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 het <STYLE>-blok, <TITLE> en de Class=-attributen van SAMI in TTML?
De CSS-regels en de klasse-attributen vallen weg: TTML heeft zijn eigen <style>-elementen en kent geen Class=. De documenttitel gaat ook verloren: de omzetting schrijft geen <head> en dus geen <title>, waar de <TITLE> van SAMI dan ook geen plek heeft. De cues zelf, met hun begin en eind, blijven volledig intact.
Hoe ziet de uitvoer eruit als SMI TTML wordt?
Als TTML: een XML-document met een declaratie, een <tt>-wortel en een <body> met <p>-elementen; er is geen <head> en geen <title>. Elk SMI-blok wordt één <p>, in dezelfde volgorde.
Zijn de SMI-tijden exact in het TTML-bestand?
Ja, tot op de milliseconde. SMI schrijft Start=4126 en TTML schrijft hetzelfde moment als begin="00:00:04.126"; er wordt niets afgerond of verschoven. De eindtijd komt uit het volgende <SYNC>-blok en wordt de end-waarde.
Hoe komt een SMI-blok van twee regels in TTML uit?
Als twee regels binnen dezelfde <p>, gescheiden door een <br/>. Het paar blijft bij elkaar: de twee SMI-regels horen in de TTML-uitvoer nog steeds bij één ondertitel.
Blijven SMI-blokken in dezelfde volgorde in TTML staan?
Ja, en ze worden onderweg op starttijd gesorteerd — vroegste eerst. Stond je SMI-bestand niet in volgorde, dan zet de TTML-uitvoer het recht; dat raakt de structuur, niet de inhoud, en het is bewust gedaan.
Kan ik de TTML weer naar SMI omzetten?
Ja, en die richting heeft haar eigen lijst: TTML naar SMI verliest de stijl die TTML in zijn <style>-elementen kan dragen en de eigen constructies van TTML, en moet voor elk blok een eigen <SYNC>-blok maken. Die lijst verschilt van de lijst hierboven omdat beide formaten andere dingen bewaren.
Behoudt de TTML-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-TTML.