Gå till huvudinnehållet
SubtitleMatrix

Konvertera TTML till SMI

Eller klistra in undertexttext

Vad den här konverteringen ändrar

2 saker tappas eller kräver ett beslut

  • Formatering

    all formatering utom fet och kursiv (färg, kontur, skugga, marginaler)

  • Formatspecifikt innehåll

    innehåll som källformatet behåller utanför sina textblock (block som inte är textblock, rubriktext, inställningar per textblock, utkommenterade händelser) – målformatet har ingen plats för det

Den här listan kommer från kapacitetsmatrisen för de här två formaten, inte från den specifika fil du laddade. En viss fil kan förlora mer om den använder funktioner som formatet tillåter men matrisen inte modellerar.

Den här sidan konverterar en TTML-fil till SMI. TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett SMI-textblock är en <SYNC Start=…>-rad följd av en <P>-rad; nästa <SYNC> tar över skärmen. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.

Det som inte följer med: formateringen och formatdata. Färg, kontur, skugga och marginaler försvinner; fet och kursiv kan följa med. Innehåll utanför textblocken har ingen plats i målformatet. Rapporten ovanför filrutan listar förlusterna innan du väljer en fil, och räknar dem per fil när filen är inläst.

En fil eller en hel säsong: kön bearbetar filerna i tur och ordning, du kan avbryta mitt i och resultaten laddas ner tillsammans som en ZIP. Hela konverteringen sker i webbläsaren – filen lämnar aldrig datorn.

Exempel

En typisk TTML-fil konverterad till SMI

Indata

<?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>

Resultat

<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>

Förlorat i utdatafilen: formateringen och formatdata. Jämför de två sidorna rad för rad.

Samma konvertering på en stökig fil

Indata

<?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>

Resultat

<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>

Så här ser skadade filer ut i verkligheten – blandade radbrytningar, lösa blanksteg och tomma fält. Jämför med det prydliga exemplet ovan för att se vad tolken förlåter.

Vanliga frågor

Hur skiljer sig tidskoderna i TTML och SMI?

TTML skriver tiden i begin- och end-attribut som 00:00:04.126, med millisekunder. SAMI anger starttiden som ett millisekundstal i attributet, till exempel <SYNC Start=4126>. Båda räknar i millisekunder, så ingen tid avrundas i konverteringen.

Vad förloras när en TTML-fil blir SMI?

När TTML blir SMI går formateringen och formatdata förlorade. Färg, kontur, skugga och marginaler försvinner; fet och kursiv kan följa med. Innehåll utanför textblocken har ingen plats i målformatet. Texten, ordningen och tiderna följer med.

Klarar SMI av formatering och placering som TTML har?

TTML har en <styling>-tabell med namngivna stilar och en <layout>-tabell med regioner i <head>. TTML placerar text via regioner som definieras i <head>. TTML sparar när ett textblock börjar och slutar, inte när en stavelse markeras. SMI har en <STYLE>-del med CSS och <font>-taggar i texten; teckenstorlek, kontur och marginaler deklareras inte per textblock. SMI kan placera text via CSS-klasser och attribut på <P>-raderna. SMI har ingen karaoke.

Vad händer med radbrytningar och antalet textblock när TTML konverteras till SMI?

TTML till SMI: Ett TTML-textblock är ett <p>-element med begin och end inuti ett XML-dokument. Ett TTML-textblock behåller hårda radbrytningar (<br/>). Ett SMI-textblock behåller hårda radbrytningar (<br>).

Laddas min TTML-fil upp när jag konverterar den till SMI?

Nej. Både inläsningen av TTML-filen och skrivningen av SMI-filen sker i webbläsaren; ingen del av texten, tiderna eller taggarna skickas i en förfrågan. Du kan lägga in en hel säsong, avbryta mitt i och ladda ner resultaten som en ZIP.

Relaterade verktyg