SSA in TTML umwandeln
Oder Untertiteltext einfügen
Was diese Konvertierung ändert
2 Sachen entfallen oder brauchen eine Entscheidung
- Karaoke
Karaoke-Zeitangaben (Hervorhebung pro Silbe)
- 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 konvertiert SSA nach TTML. Datei hineinziehen oder Text einfügen — zurück kommt die TTML-Fassung. Die Konvertierung läuft vollständig im Browser, ohne Upload und ohne Konto.
TTML ist das XML-Format für zeitgesteuerte Texte und das einzige Ziel in dieser Gruppe, das Stile und Positionierung ausdrücken kann — beides überlebt deshalb. Verloren gehen nur Karaoke und die SSA-Konstruktionen, für die es kein TTML-Element gibt. Die Liste oben stammt aus dem Vergleich der Formate, nicht aus Ihrer Datei.
Eine Datei ist kein Problem, eine ganze Staffel auch nicht: Die Warteschlange arbeitet sie der Reihe nach ab, und die Ergebnisse kommen gemeinsam als eine ZIP-Datei.
Beispiele
Eine typische SSA-Datei, nach TTML konvertiert
Eingabe
[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines
Ausgabe
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.000"><span tts:fontStyle="italic">Italic</span> line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Two<br/>lines</p> </body>
</tt>
Verloren in dieser Ausgabe: Karaoke und SSA-eigene Konstruktionen. Stile und Positionierung bleiben erhalten, alles Übrige stimmt Zeile für Zeile.
Dieselbe Konvertierung mit einer unordentlichen Eingabe
Eingabe
[Script Info]
Title: Dirty SSA
ScriptType: v4.00
[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1
[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.Ausgabe
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:04.000"><span tts:fontWeight="bold">Bold</span> and <span tts:textDecoration="underline">underlined</span>.</p>
<p begin="00:00:05.000" end="00:00:08.000">A soft<br/>break and a {\p1}mystery{\p0} code.</p> </body>
</tt>
So sehen echte Schäden aus — gemischte Zeilenenden, verirrte Leerzeichen, leere Felder. Im Vergleich zum sauberen Beispiel oben wird sichtbar, was der Parser verzeiht.
Häufige Fragen
Was passiert bei SSA nach TTML mit dem Karaoke-Timing?
Die Zeitmarken `\k`, `\kf` und `\ko` entfallen, weil TTML zwar Zeitintervalle für ganze Elemente kennt, aber keinen Moment innerhalb einer Textzeile. Die Silben bleiben als Text erhalten, das Aufleuchten nicht.
Bleiben Stile und Positionierung bei SSA nach TTML erhalten?
Ja. TTML kann beides ausdrücken — Schrift, Größe, Farbe und Ausrichtung als Stilangaben, die Position über das Layout —, deshalb stehen sie nicht auf der Verlustliste. Nur der SSA-Skriptkopf und die Karaoke-Marker haben keine Entsprechung.
Was passiert bei SSA nach TTML mit `[Script Info]` und dem übrigen Skript?
Nur die `Dialogue:`-Zeilen werden zu Untertiteln. Der Block `[Script Info]` mit Titel, die Stiltabelle, `Comment:`-Zeilen und eingebettete Schriften oder Grafiken fallen weg; TTML hat für einen Skriptkopf dieser Art keinen Platz.
Wie sieht die Ausgabe aus, wenn SSA zu TTML wird?
Wie TTML: keine Blocknummern, jeder Untertitel ist ein `<p>`-Element mit `begin` und `end`, verschachtelt in `<body>` und meist `<div>`, mit XML-Deklaration über dem ganzen Dokument.
Bleiben die SSA-Zeiten in der TTML-Datei exakt?
Ja, auf die Millisekunde — feiner geht keines der beiden Formate. SSA schreibt einen Zeitpunkt als `0:00:04.13`, TTML denselben als `00:00:04.126`; nichts wird gerundet oder verschoben, und ein Block, der 2,9 Sekunden sichtbar war, bleibt es.
Wie kommt ein zweizeiliger SSA-Block in TTML an?
Als zwei Zeilen mit einem `<br/>` dazwischen — so schreibt TTML einen harten Zeilenumbruch. Die beiden SSA-Zeilen bleiben ein `<p>`-Element, und ein Player zeigt sie gemeinsam.