TTML naar SBV
Of plak ondertiteltekst
Wat deze conversie verandert
3 dingen vervallen of vragen om een beslissing
- Opmaak
alle opmaak (vet, cursief, kleur, contour, schaduw)
- Positionering
positionering op het scherm (elk blok keert terug naar de standaardpositie)
- 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 TTML om naar SBV. Per blok komt er één regel met twee tijden en dan de tekst; SBV kent geen nummers en geen kop. De tijden blijven exact, want beide formaten schrijven een moment tot op de milliseconde.
TTML bewaart zijn uiterlijk en plaatsing in de head, in een styling- en een layout-tabel, en verwijst daar vanuit elke p naar. SBV kan dat niet dragen: de tabellen, de metadata en de verwijzingen verdwijnen. Opmaak die in de tekst zelf zit, wordt als tag in de tekst gezet.
Een blok van twee regels blijft twee tekstregels in hetzelfde blok. De omzetting draait in je browser, zonder upload, en de wachtrij levert de reeks als één ZIP.
Voorbeelden
Een gewoon TTML-bestand, omgezet naar SBV
Invoer
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling" xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:color="#FFFF00" tts:fontWeight="bold"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 20%"/>
</layout>
</head>
<body>
<div>
<p begin="00:00:01.000" end="00:00:03.500" region="bottom" style="s1">Hello <span tts:fontStyle="italic">there</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000" region="bottom">How are you?<br/>Fine, thanks.</p>
</div>
</body>
</tt>
Uitvoer
0:00:01.000,0:00:03.500
Hello <i>there</i>.
0:00:03.500,0:00:06.000
How are you?
Fine, thanks.
In deze uitvoer gaan opmaak, positionering en formaateigen inhoud verloren; de tijden en de tekst blijven gelijk.
Dezelfde omzetting op een weerbarstige invoer
Invoer
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
Uitvoer
0:00:01.500,0:00:03.500
Loaded from an offset and a duration.
0:00:04.000,0:00:06.500
A coarser clock spelling.
0:00:07.000,0:00:08.480
Frames, at 25fps.
0:00:09.000,0:00:11.000
<font color="#FF0000">Half-open</font> and Tom & Jerry.
Gemengde regeleinden, losse spaties en een p-element zonder eigen eindtijd horen bij echte bestanden. Vergelijk dit met het nette voorbeeld hierboven.
Veelgestelde vragen
Blijven vet en cursief van TTML naar SBV bewaard?
De nadruk wel, de stijltabel niet. Opmaak die bij een stuk tekst hoort — vet, cursief, onderstreept, een kleur — wordt als tag in de SBV-tekst geschreven, want dat is het enige soort opmaak dat een formaat op cuniveau nog kan dragen. Wat verdwijnt, is alles wat het TTML-bestand globaal zei: lettertype, grootte, rand, schaduw en marges.
Wat gebeurt er met de plaats op het scherm van TTML naar SBV?
SBV kan niet zeggen waar een ondertitel wordt getekend, dus de region- en style-verwijzingen op een p verdwijnen en elk blok valt terug op de standaardpositie die de speler kiest — bij de meeste spelers onderaan, gecentreerd.
Wat gebeurt er met de TTML-proloog, de styling- en layout-tabellen in SBV?
Die verdwijnen. TTML bewaart uiterlijk en plaatsing in de head: de XML-declaratie, de styling-tabel met benoemde stijlen, de layout-tabel met benoemde regio’s, metadata en de verwijzingen daarop. SBV kent cues, geen document, dus niets uit die head heeft een plek. Opmaak binnen een p-element wordt wel als tag in de tekst gezet.
Hoe ziet de SBV-uitvoer eruit als TTML daar naartoe gaat?
Per blok één regel met start en eind, bijvoorbeeld 0:00:04.126,0:00:06.000, gevolgd door de tekst. Er zijn geen cue-nummers en er is geen kop.
Zijn de TTML-tijden exact in het SBV-bestand?
Ja, tot op de milliseconde — fijner kan geen van beide formaten. TTML schrijft een moment als 00:00:04.126 en SBV als 0:00:04.126; er wordt niets afgerond of verschoven, en een blok dat 2,9 seconden in beeld was, blijft dat.
Hoe komt een TTML-blok van twee regels in SBV terecht?
Als twee tekstregels onder elkaar, zonder scheidingsteken. De regels van het TTML-blok blijven bij elkaar en verschijnen dus samen op het scherm.
Blijft de volgorde van TTML-blokken in SBV gelijk?
Ja, de blokken komen op starttijd te staan, vroegste eerst. Een TTML-bestand dat niet op volgorde stond, wordt hier rechtgezet; dat is een structurele ingreep, geen inhoudelijke.
Kan ik SBV weer naar TTML omzetten?
Ja, en die richting kost niets extra: een SBV-bestand bevat minder dan TTML kan vasthouden, dus er gaat onderweg niets meer af. Wat deze richting al kwijtraakte, blijft wel weg — opmaak, positionering en formaateigen inhoud zijn uit een SBV-bestand niet terug te bouwen, omdat er niets in staat wat ze waren.
Blijft de tekencodering van het TTML-bestand in SBV behouden?
Nee, de uitvoer is UTF-8 met Unix-regeleinden en zonder byteordemarkering, ongeacht de codering van het TTML-bestand. Bij het inlezen wordt een afwijkende codering omgezet; de SBV-uitvoer is altijd gelijk.