Co je TTML2?
Timed Text Markup Language 2 (TTML2) je jazyk založený na XML určený pro reprezentaci časovaného textového média, jako jsou titulky a popisky. It slouží jako standardizovaný formát for the interchange, authoring, and distribution of timed text content across various platforms and systems.
TTML2 is určeno pro:
- Výměna: Usnadňuje výměnu časovaného textového informace mezi různými systémy tvorby.
- Transkódování: Převádí časovaný text do různých starších distribučních formátů používaných při titulkování a popiscích.
- Distribuce: Slouží jako distribuční formát sám o sobě, například odkazováním na TTML obsah z elementu
<track>v HTML5 dokumentu nebo elementu<text>či<textstream>v SMIL 3.0 dokumentu.
Systémový model
TTML2 operuje v rámci systémového modelu, který zahrnuje procesy tvorby, transkódování, distribuce a prezentace. It defines two classes of processors:
- Transformation Processors: Používá se v systémech tvorby a validačních procesorech.
- Presentation Processors: Používá se v transkódovacích systémech a renderovacích procesorech.
These processors can implement mappings to TTML Intermediate Documents, enabling integration with various media formats and technologies .
Struktura dokumentu
A typical TTML2 document consists of:
<tt>: Kořenový prvek.<head>: Obsahuje metadata, stylování a informace o rozložení.<metadata>: Zahrnuje metadata na úrovni dokumentu, jako je název a autorská práva.<styling>: Definuje specifikace stylu.<layout>: Určuje oblasti rozložení.
<body>: Obsahuje časovaný textový obsah, odkazující na styly a rozložení.
e.g.
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<metadata/>
<styling/>
<layout/>
</head>
<body/>
</tt>
Příklad:
Zde je jednoduchý příklad TTML2 souboru:
<?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:fontSize="16px" tts:color="white" tts:backgroundColor="black"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 10%"/>
</layout>
</head>
<body region="bottom">
<div>
<p begin="00:00:01.000" end="00:00:04.000" style="s1">
Hello, this is an example of TTML2 subtitles.
</p>
<p begin="00:00:05.000" end="00:00:08.000" style="s1">
These captions are timed and styled.
</p>
</div>
</body>
</tt>
<p begin="..." end="...">: Zobrazuje text titulku s časováním.<style>and<region>: Definují, jak a kde se text zobrazuje.<tt>: Kořenový prvek TTML2 dokumentu.
Změny oproti TTML1
TTML2 přináší několik vylepšení oproti TTML1, včetně:
- Extended Features: Podpora východoasijských jazyků, stereoskopického 3D a podrobného mapování na HTML a CSS.
- Improved Modularity: Lepší organizace a oddělení zodpovědností v rámci specifikace.
- Updated Syntax: Vylepšení syntaxe jazyka pro jasnost a konzistenci.
Podrobný souhrn změn z TTML1 na TTML2 je k dispozici v přehledu změn TTML2 .
Přijetí a podpora v průmyslu
TTML2 has been adopted and supported by various organizations and standards bodies, including:
- Netflix
- Microsoft
- BBC
- Apple
- MovieLabs
- European Broadcasting Union (EBU)
These contributors have played significant roles in the development and implementation of TTML2 .
Klíčové charakteristiky souborů TTML2
| Charakteristika | Popis |
|---|---|
| Přípona souboru | .ttml, .dfxp, .xml |
| Úplný název | Timed Text Markup Language verze 2 |
| MIME typ | application/ttml+xml |
| Typ formátu | XML založený strukturovaný textový formát |
| Vyvinuto | World Wide Web Consortium (W3C) Timed Text Working Group |
| Klíčová výhoda | Komplexní podpora globálních skriptů, animací, vložených zdrojů a profesionálních požadavků na vysílání |
| Nejnovější specifikace | TTML2 2nd Edition W3C Recommendation Snapshot (March 2021) |
| Podpora maker | Ne (čisté XML značky, žádný spustitelný kód) |
| Otevřený standard | Ano (W3C Recommendation, plně dokumentovaný otevřený standard) |
Jak otevřít soubor TTML2?
You can open and view a TTML2 file using different tools, depending on whether you want to read the text, edit the content, or display it as subtitles. TTML2 files are XML-based, so they can be opened in any text or XML editor, but to play or test them as subtitles, you need compatible tools.
Pro zobrazení nebo úpravu
Use any text editor:
- Windows: Notepad nebo Notepad++
- Mac/Linux: TextEdit nebo VS Code
Stačí kliknout pravým tlačítkem na soubor → Otevřít pomocí → vybrat svůj editor.
Pro přehrání jako titulky (s videem)
TTML2 is not supported by most media players directly.
You need to convert it to SRT or WebVTT using tools like:
- Subtitle Edit (bezplatná aplikace pro Windows)
Pro použití na webu
Use it in a <video> tag like this:
<track src="captions.ttml" kind="subtitles" label="English" srclang="en">
Poznámka: Většina prohlížečů nepodporuje TTML přímo. Převést na WebVTT pro lepší kompatibilitu.
FAQ
Q1: Jaký je rozdíl mezi TTML1 a TTML2?
A: TTML2 adds major features missing in TTML1, including East Asian language support (ruby, vertical text, emphasis), continuous animation, embedded resources (images, fonts, audio), and stereoscopic 3D support.
Q2: Mohu otevřít soubory TTML2 ve webovém prohlížeči?
A: Most browsers don’t natively render TTML2 subtitles. For web delivery, convert TTML2 to WebVTT format, which has better HTML5 element support.
Q3: Jaký software vytváří soubory TTML2?
A: Professional subtitle tools like EZTitles offer TTML2 export, while any text editor can create basic TTML2 files since they’re XML-based. For conversion, Subtitle Edit and FFmpeg are popular options.
Q4: Používají streamingové služby jako Netflix TTML2?
A: Yes, Netflix was a key contributor to TTML development and uses TTML-based profiles (particularly IMSC) for subtitle delivery. The format is widely adopted across the streaming industry
Q5: Podporují soubory TTML2 obrázky i text?
A: Yes, TTML2 supports both raster images (as foreground or background) and text. The IMSC Image Profile provides a standardized way to deliver image-based subtitles using PNG graphics
Reference
For an in-depth understanding and technical details, you can refer to the full TTML2 specification: