TTML in SMI umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
2 Sachen entfallen oder brauchen eine Entscheidung
- Formatierung
die gesamte Formatierung außer Fett und Kursiv (Farbe, Kontur, Schatten, Ränder)
- Formatspezifischer Inhalt
Inhalt, den das Quellformat außerhalb seiner Blöcke führt (Nicht-Block-Abschnitte, Kopftext, Einstellungen pro Block, auskommentierte Ereignisse) — das Zielformat hat keinen Platz dafür
Diese Liste stammt aus der Fähigkeitsmatrix für diese beiden Formate, nicht aus der konkreten Datei, die Sie geladen haben. Eine bestimmte Datei kann mehr verlieren, wenn sie Merkmale nutzt, die das Format erlaubt, die Matrix aber nicht modelliert.
Diese Seite wandelt TTML in SMI um. Ziehen Sie eine Datei hinein oder fügen Sie den Text ein — Sie erhalten die SMI-Fassung zurück. Die Umwandlung läuft vollständig in Ihrem Browser: kein Upload, keine Anmeldung.
Beide Formate speichern nicht dasselbe, und der Unterschied ist nicht kosmetisch: Formatierung und formatspezifische Inhalte haben in SMI keinen Platz. Die Liste oben stammt daraus, was die beiden Formate jeweils ausdrücken können, nicht aus Ihrer Datei; sie gilt also schon, bevor Sie etwas laden.
Eine Datei ist kein Problem, eine ganze Staffel auch nicht: Die Warteschlange arbeitet sie der Reihe nach ab und liefert alle Ergebnisse in einem einzigen ZIP.
Beispiele
Eine typische TTML-Datei, umgewandelt in SMI
Eingabe
<?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>
Ausgabe
<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>
<SYNC Start=3500>
<P>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P>
</BODY>
</SAMI>
In diesem Ergebnis geht verloren: Formatierung und formatspezifische Inhalte. Alles andere bleibt Zeile für Zeile gleich.
Dieselbe Umwandlung mit einer unordentlichen Eingabe
Eingabe
<?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>
Ausgabe
<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>
<SYNC Start=4000>
<P>A coarser clock spelling.
<SYNC Start=6500>
<P>
<SYNC Start=7000>
<P>Frames, at 25fps.
<SYNC Start=8480>
<P>
<SYNC Start=9000>
<P><font color="#FF0000">Half-open</font> and Tom & Jerry.
<SYNC Start=11000>
<P>
</BODY>
</SAMI>
So sehen echte Dateien aus: gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Vergleichen Sie das mit dem sauberen Beispiel oben, dann sehen Sie, was der Parser verzeiht.
Häufige Fragen
Welche Formatierung überlebt beim Umwandeln von TTML nach SMI?
Die Betonung bleibt, die Stiltabelle nicht: Fett, kursiv, unterstrichen und eine Farbe erscheinen als <b>, <i>, <u> und <font color="…"> im SMI-Text. Verloren gehen Schrift, Größe, Kontur, Schatten und Ränder; die einbettende Seite gestaltet den Untertitel über ihr eigenes CSS.
Was geschieht mit dem TTML-Prolog und seinen Tabellen <styling> und <layout> in SMI?
Sie werden nicht übernommen. Die XML-Deklaration, die Namensräume, die Stiltabelle mit tts:color und tts:fontWeight und die Regionentabelle mit tts:origin und tts:extent beschreiben ein TTML-Dokument; SMI baut sein eigenes <SAMI>-Dokument mit <HEAD>, <STYLE> und <BODY>. Sie zählen als formatspezifischer Inhalt.
Wie sieht eine SMI-Datei aus, die aus TTML entsteht?
Ein <SAMI>-Dokument mit <HEAD>, <STYLE> und <BODY>; jeder Block ist ein <SYNC Start=…> mit dem Text in einem <P>, gefolgt von einem leerenden <P> . Aus begin 00:00:01.000 und end 00:00:03.500 werden Start=1000 und Start=3500.
Sind die TTML-Zeiten in der SMI-Datei exakt?
Ja. TTML und SMI rechnen beide in Millisekunden, also wird nichts gerundet: 00:00:04.126 bleibt. Der Bericht führt als Verlust nur Formatierung und formatspezifische Inhalte, nicht die Genauigkeit.
Wie wird ein zweizeiliger TTML-Untertitel in SMI dargestellt?
Die beiden Zeilen stehen in einem <P>, getrennt durch <br>. Ein <br/> aus dem TTML-<p> wird damit derselbe Umbruch, und die Zeilen bleiben in einem Block zusammen.
Kann ich die SMI-Datei zurück nach TTML umwandeln?
Ja, und SMI nach TTML verliert formatspezifische Inhalte — die SMI-eigene <STYLE>-Angabe und ihre Class-Verweise finden im TTML-Modell keinen Platz. Styling und Positionierung, die auf dem Hinweg verloren gingen, bleiben verloren.
Ordnet die Umwandlung TTML-Untertitel für SMI?
Ja, nach Startzeit, früheste zuerst. TTML erlaubt beliebige Dokumentreihenfolge, SMI braucht für jeden Block einen Start und ein leerendes Folge-SYNC. Der Text bleibt unangetastet.
In welcher Kodierung liegt das SMI-Ergebnis aus der TTML-Datei vor?
UTF-8 mit Unix-Zeilenenden und ohne Byte-Order-Mark. Eine TTML-Datei in UTF-16 wird beim Einlesen umgewandelt, und das Ergebnispanel nennt die erkannte Quellkodierung.