TTML in SBV 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 SBV um. Ziehen Sie eine Datei hinein oder fügen Sie den Text ein — Sie erhalten die SBV-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 SBV 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 SBV
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
0:00:01.000,0:00:03.500
Hello <i>there</i>.
0:00:03.500,0: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
0:00:01.500,0:00:03.500
Loaded from an offset and a duration.
0:00:04.000,0:00:06.500
A coarser clock spelling.
0:00:07.000,0:00:08.480
Frames, at 25fps.
0:00:09.000,0: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 SBV erhalten?
Die Betonung bleibt, die Stiltabelle nicht. Auszeichnung wie fett, kursiv, unterstrichen oder eine Farbe erscheint als <i>, <b>, <u> beziehungsweise <font color="…"> im SBV-Text. Verloren gehen Schrift, Größe, Kontur, Schatten und Ränder aus dem TTML-Kopf.
Was geschieht mit der Bildschirmposition beim Weg von TTML nach SBV?
Sie fällt weg. Ein <p region="bottom"> verweist auf eine Region mit tts:origin und tts:extent; SBV kennt keine Regionen, also bleibt nur der Text. Der Verlustbericht nennt die Positionierung ausdrücklich.
Was geschieht mit dem TTML-Prolog und seinen Tabellen <styling> und <layout> in SBV?
Sie werden nicht übertragen. Die XML-Deklaration, die Namensräume, die Stiltabelle mit tts:color und die Regionentabelle mit tts:origin beschreiben ein XML-Dokument; SBV speichert nur Blöcke. Sie zählen als formatspezifischer Inhalt.
Wie sieht die SBV-Datei aus, die aus TTML entsteht?
Ohne Kopf und ohne Blocknummern: je Untertitel eine Zeitzeile wie 0:00:01.000,0:00:03.500, darunter der Text. Aus <p begin="00:00:01.000" end="00:00:03.500"> wird genau dieses Paar.
Sind die TTML-Zeiten in der SBV-Datei exakt?
Ja. Beide Seiten rechnen in Millisekunden, deshalb wird nichts gerundet: 00:00:04.126 bleibt 0:00:04.126. Der Bericht führt an Verlusten nur Styling, Positionierung und formatspezifische Inhalte.
Kann ich die SBV-Datei zurück nach TTML umwandeln?
Ja, und diese Richtung kostet nichts: Eine SBV-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 SBV nicht rekonstruieren.
Wie wird ein zweizeiliger TTML-Untertitel in SBV geschrieben?
Als zwei Textzeilen unter derselben Zeitzeile. Ein <br/> im <p> wird damit ein Umbruch im selben Block, statt einen zweiten Untertitel zu erzeugen.
Welche Kodierung hat das SBV-Ergebnis aus der TTML-Datei?
UTF-8 mit Unix-Zeilenenden und ohne Byte-Order-Mark, unabhängig von der TTML-Quelle. Weicht die Kodierung ab, wird sie beim Einlesen erkannt; das Ergebnispanel nennt sie.