TTML in SRT umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
3 Sachen entfallen oder brauchen eine Entscheidung
- Formatierung
die gesamte Formatierung (Fett, Kursiv, Farbe, Kontur, Schatten)
- 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 SRT um. Ziehen Sie eine Datei hinein oder fügen Sie den Text ein — Sie erhalten die SRT-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 SRT 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 SRT
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
1
00:00:01,000 --> 00:00:03,500
Hello <i>there</i>.
2
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
1
00:00:01,500 --> 00:00:03,500
Loaded from an offset and a duration.
2
00:00:04,000 --> 00:00:06,500
A coarser clock spelling.
3
00:00:07,000 --> 00:00:08,480
Frames, at 25fps.
4
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
Bleiben Fett und Kursiv beim Umwandeln von TTML nach SRT erhalten?
Die Betonung bleibt, die Stiltabelle nicht. Auszeichnung, die zu einem Textstück gehört — fett, kursiv, unterstrichen, eine Farbe — wird als <i>, <b>, <u> oder <font color="…"> in den SRT-Text geschrieben. Verloren geht, was die TTML-Datei global festlegte: Schrift, Größe, Kontur, Schatten und Ränder.
Was geschieht mit der Bildschirmposition beim Weg von TTML nach SRT?
Sie fällt weg. Ein <p region="bottom"> verweist auf eine Region mit tts:origin und tts:extent; SRT kennt keine Regionen und überlässt die Anzeige dem Player. Der Verlustbericht führt die Positionierung als verloren.
Was geschieht mit dem TTML-Prolog und seinen Tabellen <styling> und <layout> in SRT?
Sie werden nicht übernommen. Die XML-Deklaration, die Namensräume, die Stiltabelle mit tts:color und die Regionentabelle mit tts:origin beschreiben ein XML-Dokument; SRT speichert nummerierte Blöcke mit Zeitmarken. Sie zählen als formatspezifischer Inhalt.
Wie sieht die SRT-Datei aus, die aus TTML entsteht?
Nummerierte Blöcke mit Zeitzeile im Format 00:00:01,000 --> 00:00:03,500 und dem Text darunter. Aus <p begin="00:00:01.000" end="00:00:03.500"> wird genau dieser Block, aus jeder weiteren <p> der nächste.
Sind die TTML-Zeiten in der SRT-Datei exakt?
Ja. Beide Seiten rechnen in Millisekunden, deshalb wird nichts gerundet: 00:00:04.126 bleibt 00:00:04,126. Der Bericht nennt an Verlusten nur Styling, Positionierung und formatspezifische Inhalte.
Wie kommt ein zweizeiliger TTML-Untertitel in SRT an?
Als ein Block mit zwei Textzeilen unter einer Zeitzeile. Ein <br/> im <p> wird damit ein echter Umbruch, und die beiden Zeilen bleiben im selben Untertitel.
Kann ich die SRT-Datei zurück nach TTML umwandeln?
Ja, und diese Richtung kostet nichts: Eine SRT-Datei enthält weniger, als TTML ausdrücken kann, also geht auf dem Rückweg nichts weiter verloren. Was auf dem Hinweg verloren ging, bleibt verloren — Stile und Regionen lassen sich aus einer SRT nicht rekonstruieren.
Welche Kodierung hat das SRT-Ergebnis aus der TTML-Datei?
UTF-8 mit Unix-Zeilenenden und ohne Byte-Order-Mark, unabhängig von der TTML-Quelle. Eine Datei in UTF-16 oder einer Windows-Kodierung wird beim Einlesen erkannt; das Ergebnispanel nennt den Fall.