Naar de hoofdinhoud
SubtitleMatrix

TTML naar SMI

FormaatconversieTTML / DFXP
Of plak ondertiteltekst

Wat deze conversie verandert

2 dingen vervallen of vragen om een beslissing

  • Opmaak

    alle opmaak behalve vet en cursief (kleur, contour, schaduw, marges)

  • 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 SMI, het SAMI-formaat van Windows Media. Elk blok wordt een SYNC-moment met de tijd in milliseconden en de tekst in een P-element; omdat een nieuw moment het vorige vervangt, volgt na elk blok een leeg P-element. De tijden blijven daarbij exact.

TTML bewaart zijn uiterlijk en plaatsing in de head, in een styling- en een layout-tabel. SMI neemt die tabellen niet over: opmaak die in de tekst zelf zit wordt als tag geschreven, en de rest van het uiterlijk komt van de CSS van de pagina die de ondertitels toont. De proloog en de metadata verdwijnen eveneens.

Een blok van twee regels blijft binnen hetzelfde SYNC-moment, met een br-tag ertussen. De omzetting draait in je browser, zonder upload; meerdere bestanden komen als één ZIP terug.

Voorbeelden

Een gewoon TTML-bestand, omgezet naar SMI

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

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P>Hello <i>there</i>.
<SYNC Start=3500>
<P>&nbsp;
<SYNC Start=3500>
<P>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P>&nbsp;
</BODY>
</SAMI>

In deze uitvoer gaan opmaak en formaateigen inhoud verloren: de koptabellen worden niet overgezet. 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 &amp; Jerry.</p>
    </div>
  </body>
</tt>

Uitvoer

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial, sans-serif; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1500>
<P>Loaded from an offset and a duration.
<SYNC Start=3500>
<P>&nbsp;
<SYNC Start=4000>
<P>A coarser clock spelling.
<SYNC Start=6500>
<P>&nbsp;
<SYNC Start=7000>
<P>Frames, at 25fps.
<SYNC Start=8480>
<P>&nbsp;
<SYNC Start=9000>
<P><font color="#FF0000">Half-open</font> and Tom &amp; Jerry.
<SYNC Start=11000>
<P>&nbsp;
</BODY>
</SAMI>

Echte bestanden hebben soms gemengde regeleinden, losse spaties of een p-element zonder eigen begin. Vergelijk dit met het nette voorbeeld hierboven.

Veelgestelde vragen

Welke opmaak blijft van TTML naar SMI bewaard?

De nadruk, als tags in de tekst: vet, cursief, onderstreept en een kleur worden geschreven als b-, i-, u- en font-tags, waar browsers iets mee doen. Wat een SMI-bestand niet kan dragen, is de stijltabel waar TTML op leunt — lettertype, grootte, rand, schaduw en marges gaan allemaal weg, en de pagina die de ondertitels toont, bepaalt die met eigen CSS.

Wat gebeurt er met de TTML-proloog, de styling- en layout-tabellen in SMI?

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. SMI 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 SMI-uitvoer eruit als TTML daar naartoe gaat?

SAMI opent elk blok met een SYNC-tag die de tijd in milliseconden noemt; de woorden staan in een P eronder. Omdat een nieuw moment het vorige vervangt, volgt er meteen een lege P met &nbsp;.

Zijn de TTML-tijden exact in het SMI-bestand?

Ja, tot op de milliseconde — fijner kan geen van beide formaten. TTML schrijft een moment als 00:00:04.126 en SMI als Start=4126; 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 SMI terecht?

Als twee tekstregels met een br-tag ertussen — de manier waarop SAMI een harde regelafbreking schrijft. De regels blijven in hetzelfde SYNC-moment staan.

Blijft de volgorde van TTML-blokken in SMI gelijk?

Ja, de blokken komen op starttijd te staan, vroegste eerst. Stond het TTML-bestand niet in volgorde, dan zet de SMI-uitvoer het recht; de tekst verandert daarbij niet.

Kan ik SMI weer naar TTML omzetten?

Ja, met een eigen lijst: SMI naar TTML verliest formaateigen inhoud. Die lijst wijkt af van de lijst hierboven omdat de twee formaten andere constructies hebben.

Blijft de tekencodering van het TTML-bestand in SMI behouden?

Nee, de uitvoer is UTF-8 met Unix-regeleinden en zonder byteordemarkering, wat het TTML-bestand ook gebruikte. Een UTF-16-bestand of een Windows-codering wordt bij het inlezen gedecodeerd; de SMI-uitvoer is altijd hetzelfde.

Gerelateerde hulpmiddelen