Timed Text Markup Language

ÖffnenSpeichernXMLGestaltet

Das XML des W3C für Untertitel und Untertitelung, wie Sender und Streamingdienste es verlangen. DFXP war der Name seines ersten Profils, und viele Dateien tragen ihn noch. IMSC, EBU-TT-D und Apples iTT sind ebenfalls TTML, jedes mit eigenen Gewohnheiten.

Auf einen Blick

Dateiendung.ttml
Medientypapplication/ttml+xml
SpezifikationW3C, Timed Text Markup Language 1 (TTML1), eine Recommendation. TTML2 erweitert sie; IMSC und EBU-TT-D sind Teilmengen für die Verbreitung.
ZeitgenauigkeitBeliebig: Bruchteile von Sekunden, Bilder oder Ticks
ZeichenkodierungIm XML angegeben. Fast immer UTF-8.
GestaltungBenannte Stile und tts:-Attribute: Schrift, Größe, Farbe, Hintergrund, kursiv, fett, unterstrichen, durchgestrichen, Kontur
PositionierungRegionen: Kästen, die überall im Bild platziert und dimensioniert werden
SprecherAgenten (ttm:agent), im Kopf benannt
In ContainernMP4 als stpp (ISO/IEC 14496-30), in DASH-, CMAF- und HLS-Streams

Aufbau einer Datei

Ein XML-Dokument: ein Kopf, der Stile und Regionen benennt, und ein Körper aus Absätzen, je einer pro Untertitel.

<tt xml:lang="en" …>
<head>styles, regions</head>
<body><div>
<p begin="00:00:23.000"
   end="00:00:24.500">
You're a jerk,<br/>Thom.</p>
</div></body>
</tt>
  1. 1 · Wurzel

    <tt>, mit den Namensräumen von TTML, der Sprache und dem Takt, in dem die Zeiten zählen: ttp:frameRate, ttp:tickRate.

  2. 2 · Kopf

    Benannte Stile, die Regionen des Bildschirms und wer spricht.

  3. 3 · Zeitangabe

    Das begin jedes Absatzes und sein end oder dur.

  4. 4 · Text

    Der Untertitel. Spans gestalten Teile davon, und <br/> bricht die Zeile um.

Zeiten

TTML schreibt eine Zeit auf mehr Arten als jedes andere Untertitelformat:

Geschrieben Bedeutung
00:00:23.500 Stunden, Minuten, Sekunden und ein Bruchteil
00:00:23:12 Bilder nach den Sekunden: zwölf bei der ttp:frameRate der Datei
23.5s, 23500ms, 1h Ein Versatz in Stunden, Minuten, Sekunden oder Millisekunden
564f Bilder
235000000t Ticks, ttp:tickRate davon pro Sekunde

Zeiten zählen ab dem, was sie enthält. Das begin eines Absatzes zählt ab dem Anfang seines <div> und seines <body>, und ein Absatz ohne eigenes Ende endet mit ihnen.

Stile

Ein Stil ist eine Menge von tts:-Attributen. Text übernimmt sie der Reihe nach: aus seiner Region, dann aus dem Body, dem div, dem Absatz und dem Span um ihn herum. Jedes Element übernimmt die Stile, die es nennt (style="s1 s2" und die, die diese nennen), dann seine eigenen Attribute.

Attribut Wirkung In Subtitld
tts:fontStyle="italic" Kursiv Beibehalten
tts:fontWeight="bold" Fett Beibehalten
tts:textDecoration="underline", "lineThrough" Unterstrichen, durchgestrichen Beibehalten
tts:color Textfarbe: ein Name, #rrggbb, #rrggbbaa oder rgb() Beibehalten, ohne ihre Transparenz
tts:displayAlign, tts:textAlign Wo der Text in seiner Region sitzt Beibehalten, als einer von neun Plätzen
tts:fontFamily, tts:fontSize Schrift und Größe Nicht beibehalten
tts:backgroundColor, tts:textOutline Ein Kasten hinter dem Text, eine Kontur Nicht beibehalten
<set> Ein Stil, der sich im Lauf der Zeit ändert Nicht beibehalten

Regionen

Eine Region ist ein Kasten im Bild, platziert durch tts:origin und dimensioniert durch tts:extent. Darin setzt tts:displayAlign den Text oben, in der Mitte oder unten (before, center, after), und tts:textAlign an eine Seite oder in die Mitte.

<region xml:id="top"
        tts:origin="10% 10%"
        tts:extent="80% 80%"
        tts:displayAlign="before"/>

Subtitld ermittelt, wo der Text landet, ob die Region in Prozent, Pixeln oder Zellen gemessen wird, und nimmt den nächsten der neun Plätze, die {\an1} bis {\an9} von SubRip benennen. Beim Schreiben einer Datei ist jeder verwendete Platz eine Region dieses Namens: bottom, top, top-left…

Wenn eine Datei nichts sagt. Die eigenen Vorgaben von TTML setzen Text oben links in seine Region, doch Player zeigen ihn unten und zentriert, und Subtitld tut es ebenso. Außerdem liest es textAlign="start" in einer Region ohne Größe oder Platz als zentriert: Dateien, die mit pycaption geschrieben wurden, darunter ältere Versionen von Subtitld, setzen es auf jede Region.

Profile

Die meiste TTML wird nach einem Profil geschrieben: einer Teilmenge der Sprache mit eigenen Regeln. Subtitld liest jedes davon als TTML.

Profil Verwendet in Seine Gewohnheiten
DFXP Das erste Profil von TTML, und die Endung .dfxp Ältere Dateien im Namensraum http://www.w3.org/2006/10/ttaf1
IMSC 1 Streaming über DASH, CMAF und HLS Das Profil des W3C für Untertitel und Untertitelung online
EBU‑TT‑D Online-Player europäischer Sender Elemente oft mit einem Präfix geschrieben: <tt:p>
SMPTE‑TT Untertitelung des amerikanischen Fernsehens online Ergänzungen von SMPTE, für aus dem Rundfunk übernommene Untertitel
iTT (.itt) Lieferungen an Apples iTunes Store und Apple TV Zeiten in Bildern (ttp:timeBase="smpte")

TTML in Subtitld

Im .ttml erhalten
  • Der Text jedes Untertitels und die Zeilenumbrüche
  • Kursiv, fett, unterstrichen, durchgestrichen und Farbe
  • Wo er auf dem Bildschirm steht
  • Sprecher als Agenten
  • Start und Ende, auf die Millisekunde genau, in Reihenfolge
Keine Entsprechung
  • Schriften, Größen, Hintergründe und Konturen zeile für zeile
  • Genaue Größe und Platz einer Region
  • Stile, die sich im Lauf der Zeit ändern, Ruby, Bilduntertitel
  • Übersetzungen neben dem Original, Synchronisationen, Gesichter der Sprecher

Speichern Sie ein .usfx-Projekt, um das zu behalten, was Subtitld ausmacht.

Eine TTML-Datei öffnen

Subtitld öffnet .ttml, .dfxp, .itt und .xml und:

  • liest TTML, wie auch immer sie geschrieben ist: in ihrem Namensraum, im alten DFXP-Namensraum oder mit tt: vor jedem Element;
  • liest jede Form der Zeit, jeweils ab dem div und body, in dem sie steht;
  • folgt den Stilen, so wie TTML sie anwendet, und behält kursiv, fett, unterstrichen, durchgestrichen und jede Farbe außer Weiß;
  • setzt jeden Untertitel dorthin, wo seine Region ihn zeigt;
  • übernimmt Agenten als Sprecher, bereit zur Synchronisation, und das xml:lang der Datei als Sprache des Projekts;
  • liest die Kodierung, die die Datei angibt, und HTML-Entitäten wie &nbsp;.

Eine Datei, die kein wohlgeformtes XML ist, öffnet mit einer Meldung, die Zeile und Spalte nennt. Eine Datei, die gar kein TTML ist, sagt das.

TTML exportieren

Exportdialog von Subtitld mit gewähltem TTML und Sprechern als Agenten

Export, dann Untertitel und TTML oder DFXP bietet:

  • TextDas Original, eine Übersetzung oder beides, die Übersetzung darunter.
  • SprechernamenWeggelassen, vor dem Text (Thom: …), oder als Agenten (ttm:agent), die eigene Schreibweise von TTML.
  • FormatierungBeibehalten oder entfernt.
  • Zeiten verschiebenJeder Untertitel um denselben Betrag früher oder später.
  • LookWeiß mit schwarzer Kontur, oder so, wie Subtitlds Vorschau es zeichnet: mit ihrer Schrift, Farbe und einem halbtransparenten Kasten.

Die Datei ist TTML 1 in UTF-8. Zeiten werden als 00:00:23.000 geschrieben, jeder Platz der Untertitel als Region, Formatierung als Spans und Zeilenumbrüche als <br/>. Ihr xml:lang ist die Sprache des enthaltenen Textes. TTML und DFXP erhalten dieselbe Datei; nur die Endung unterscheidet sich.

TTML oder WebVTT?

WebVTT für ein <track> auf einer Webseite: Browser lesen es selbst. TTML für Sender, für Streamingdienste, die es verlangen, und für Player, die es lesen, etwa dash.js und Shaka Player. Die Seite zu WebVTT bietet den Rest.

Wissenswertes

2010

TTML 1.0 wurde im November 2010 eine Recommendation des W3C, nach Entwürfen, die nach seinem ersten Profil benannt waren: dem Distribution Format Exchange Profile, DFXP.

ttaf1

Der alte Namensraum http://www.w3.org/2006/10/ttaf1 stammt aus den Entwürfen von 2006, als TTML das Timed Text Authoring Format war. Dateien tragen ihn noch.

Emmy

2016 erhielt das W3C einen Technology & Engineering Emmy für TTML, neben HBO, Netflix, Telestream und SMPTE.

Verwandte Formate

Eine .ttml-Datei zu korrigieren?

Öffnen Sie sie in Subtitld mit dem Video und passen Sie die Zeiten an der Wellenform an.

Subtitld herunterladen