TTML in VTT umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
3 Sachen entfallen oder brauchen eine Entscheidung
- Formatierung
die gesamte Formatierung außer Fett und Kursiv (Farbe, Kontur, Schatten, Ränder)
- Positionierung
die Positionierung auf dem Bildschirm (jeder Block kehrt an die Standardposition zurück)
- 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 VTT um. Ziehen Sie eine Datei hinein oder fügen Sie den Text ein — Sie erhalten die VTT-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, Positionierung und formatspezifische Inhalte haben in VTT 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 VTT
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
WEBVTT
00:00:01.000 --> 00:00:03.500
Hello <i>there</i>.
00:00:03.500 --> 00:00:06.000
How are you?
Fine, thanks.
In diesem Ergebnis geht verloren: Formatierung, Positionierung 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
WEBVTT
00:00:01.500 --> 00:00:03.500
Loaded from an offset and a duration.
00:00:04.000 --> 00:00:06.500
A coarser clock spelling.
00:00:07.000 --> 00:00:08.480
Frames, at 25fps.
00:00:09.000 --> 00:00:11.000
<font color="#FF0000">Half-open</font> and Tom & Jerry.
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 VTT?
Die Betonung bleibt, die Stiltabelle nicht: Fett, kursiv, unterstrichen und eine Farbe werden als <b>, <i>, <u> und <font color="…"> in den VTT-Text geschrieben. Nicht mit kommt die globale Stiltabelle mit Schrift, Größe, Kontur, Schatten und Rändern; die Seite, die den Track einbettet, gestaltet ihn über ihr eigenes CSS.
Was geschieht mit der Bildschirmposition beim Weg von TTML nach VTT?
Sie fällt weg. Ein <p region="bottom"> verweist auf eine TTML-Region mit tts:origin und tts:extent; VTT kennt eigene REGION-Blöcke, aber die Zuordnung wird nicht übernommen. Der Verlustbericht nennt die Positionierung ausdrücklich.
Was geschieht mit dem TTML-Prolog und seinen Tabellen <styling> und <layout> in VTT?
Sie werden nicht übernommen. Die XML-Deklaration, die Namensräume, die Stiltabelle mit tts:color und die Regionentabelle mit tts:origin beschreiben ein TTML-Dokument; VTT beginnt mit der Zeile WEBVTT. Sie zählen als formatspezifischer Inhalt.
Wie sieht die VTT-Datei aus, die aus TTML entsteht?
Sie beginnt mit WEBVTT, danach folgt je Block eine Zeitzeile und der Text. Aus <p begin="00:00:01.000" end="00:00:03.500"> wird 00:00:01.000 --> 00:00:03.500 mit dem Text darunter.
Sind die TTML-Zeiten in der VTT-Datei exakt?
Ja. TTML und VTT rechnen beide in Millisekunden, also bleibt 00:00:04.126 unverändert 00:00:04.126. Der Bericht führt an Verlusten nur Styling, Positionierung und formatspezifische Inhalte, nicht die Genauigkeit.
Wie kommt ein zweizeiliger TTML-Untertitel in VTT an?
Ein <br/> innerhalb des <p> wird zu einem Umbruch zwischen zwei Textzeilen desselben WEBVTT-Blocks; VTT zeigt sie zusammen, statt zwei Einträge daraus zu machen.
Kann ich die VTT-Datei zurück nach TTML umwandeln?
Ja, und VTT nach TTML verliert formatspezifische Inhalte — NOTE-, STYLE- und REGION-Blöcke der VTT-Datei finden im TTML-Modell dieses Werkzeugs keinen Platz. Was auf dem Hinweg verloren ging, bleibt verloren.
Ordnet die Umwandlung TTML-Untertitel für VTT?
Ja, nach Startzeit, früheste zuerst. TTML erlaubt beliebige Dokumentreihenfolge, VTT erwartet Abspielreihenfolge. Der Text bleibt unangetastet, nur die Reihenfolge wird hergestellt.