Zum Hauptinhalt springen
SubtitleMatrix

ASS in TTML umwandeln

FormatkonvertierungAdvanced SubStation Alpha (ASS)
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 ASS in TTML. Datei hineinziehen – oder Text einfügen – und Sie erhalten die TTML-Fassung zurück. Die Konvertierung läuft vollständig in Ihrem Browser, nichts wird hochgeladen, kein Konto ist nötig.

Die beiden Formate speichern nicht dasselbe: Karaoke und formatspezifische Inhalte haben in TTML keinen Platz. Text, Zeitachse, Fett, Kursiv und Zeilenumbrüche kommen dagegen an. Die Liste oben stammt aus dem, was die Formate ausdrücken können, nicht aus Ihrer Datei.

Eine Datei oder eine ganze Staffel: Die Warteschlange arbeitet der Reihe nach, und die Ergebnisse kommen als ein ZIP-Archiv.

Beispiele

Eine typische ASS-Datei, konvertiert nach TTML

Eingabe

[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left

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.500"><span tts:fontStyle="italic">Italic</span> and <span tts:fontWeight="bold">bold</span> text.</p>
<p begin="00:00:09.000" end="00:00:12.000">Positioned</p>
<p begin="00:00:13.000" end="00:00:16.000">karaoke</p>
<p begin="00:00:17.000" end="00:00:20.000">Line one<br/>Line two</p>
<p begin="00:00:21.000" end="00:00:24.000">Top left</p>  </body>
</tt>

In dieser Ausgabe gehen verloren: Karaoke und formatspezifische Inhalte. Alles andere stimmt Zeile für Zeile überein.

Dieselbe Konvertierung mit ungewöhnlicher Eingabe

Eingabe

[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecode

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, world</p>
<p begin="00:00:05.000" end="00:00:08.000">{\fad(300,300)}Unmodelled override</p>
<p begin="00:00:09.000" end="00:00:12.000">Both, wrong order</p>
<p begin="00:00:13.000" end="00:00:16.500">One decimal centisecond</p>
<p begin="00:00:17.000" end="00:00:20.000">Soft<br/>break</p>  </body>
</tt>

So sehen echte Skripte aus – gemischte Zeilenenden, Override-Codes, eingebettete Schriften. Vergleichen Sie mit dem sauberen Beispiel oben.

Häufige Fragen

Was passiert mit dem Karaoke-Timing beim Weg von ASS nach TTML?

Das Timing geht, die Wörter bleiben. Karaoke lebt in den Codes `\k`, `\kf` und `\ko`; TTML kann keinen Moment innerhalb einer Zeile festhalten, also fallen die Marken weg und die Silben kommen als gewöhnlicher TTML-Text an.

Was passiert mit den [Script Info]-Abschnitten von ASS und dem Rest des Skripts in TTML?

Nur die `Dialogue:`-Zeilen werden Untertitel. `[Script Info]` samt Titel, die Stiltabelle, `Comment:`-Zeilen und eingebettete Schriften oder Grafiken fallen weg. Bei einem von Hand gestylten ASS-Skript ist das der sichtbarste Verlust.

Wie sieht die TTML-Ausgabe aus, wenn aus ASS TTML wird?

Wie TTML: keine Blocknummern, jeder Untertitel ist ein `<p>`-Element mit `begin` und `end` in einem `<body>`, mit XML-Deklaration über dem Dokument. Jeder ASS-Block wird ein TTML-Block, gleiche Reihenfolge, gleicher Text.

Sind die ASS-Zeitangaben in der TTML-Datei exakt?

Ja. ASS schreibt `0:00:04.13` für Hundertstel, TTML denselben Moment als `00:00:04.130` in Millisekunden; die Zeit wird nur feiner geschrieben, nicht gerundet oder verschoben.

Was geht bei ASS nach TTML verloren?

Karaoke und formatspezifische Inhalte: Karaoke-Marken, `[Script Info]`, Stiltabelle, `Comment:`-Zeilen und eingebettete Anhänge haben in TTML keinen Platz. Text, Zeitachse, Fett, Kursiv und Zeilenumbrüche bleiben.

Kann ich die TTML-Ausgabe wieder nach ASS konvertieren?

Ja, und diese Richtung hat ihre eigene Liste: TTML nach ASS verliert Genauigkeit und formatspezifische Inhalte. Was diese Richtung verlor, lässt sich aus der TTML-Datei nicht rekonstruieren.

Verwandte Werkzeuge