Formato sottotitoli TTML
Cosa sa esprimere questo formato
- Stile del testo
- Caratteri, colore, contorno, ombra
- Posizionamento sullo schermo
- Sì
- Temporizzazione karaoke
- No
- Interruzioni di riga dentro un blocco
- Sì
- Timeline
- Orario di inizio e di fine per ogni blocco
- Risoluzione temporale
- 1 ms
- Temporizzazione memorizzata come numeri di fotogramma
- No
- Testo da destra a sinistra
- Sì
Esempi
Un file TTML tipico e ciò che se ne legge
File
<?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>
Cosa contiene
2 cues, 3 lines of text
00:00:01.000 → 00:00:03.500
Hello there. [italic ×1]
[region="bottom" style="s1"]
00:00:03.500 → 00:00:06.000
How are you?
Fine, thanks.
[region="bottom"]
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
styling 1 × <style> — "s1", the colour and weight a paragraph points at by name
layout 1 × <region> — "bottom", the origin and extent a paragraph points at by name
resolved the head is kept as it was written and is not applied here — a paragraph's style="s1" region="bottom" stays an attribute, not a colour or a screen positionLa colonna di destra non è un file convertito: è ciò che questo sito legge dalla colonna di sinistra, e il punto di partenza di ogni conversione di quel file.
Un file TTML difficile e ciò che se ne legge comunque
File
<?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>
<div begin="00:00:01.000" end="00:00:05.000">
<p>Inherits its timing from the div, which we do not resolve.</p>
<p begin="00:00:06.000" end="00:00:07.000">This one has its own timing.</p>
</div>
<!-- <p begin="00:00:08.000" end="00:00:09.000">commented out</p> -->
<div>
<p begin="00:00:10.000"/>
<p begin="00:00:11.000" end="00:00:12.000">Last one.</p>
</div>
</body>
</tt>
Cosa contiene
3 cues, 2 lines of text
00:00:06.000 → 00:00:07.000
This one has its own timing.
00:00:10.000 → 00:00:12.000
(no text)
00:00:11.000 → 00:00:12.000
Last one.
Outside the cues:
prolog an XML declaration and the namespace bindings, kept as they came in
head none — no <styling> and no <layout>, and no paragraph points at one either
comments the commented-out <p> stays a comment, in the place it was written
divs the timings on an enclosing <div> are not pushed down onto the paragraphs inside it
Reported while reading — repaired or skipped, never silently:
1 × paragraphs with no readable begin time of their own (they were skipped — see the note about timing inherited from an enclosing div)
1 × paragraphs with neither an end time nor a duration of their own (their end times were generated)I file reali arrivano con prefissi di namespace diversi, entità non dichiarate, fine riga di Windows o un riferimento a uno stile che non esiste. Nulla genera un errore: ciò che non si capisce viene segnalato, non scartato in silenzio.
Convertire TTML (Timed Text) in un altro formato
Ognuna di queste funziona interamente nel browser. Le etichette dicono cosa costa quella direzione prima di aprirla.
- Precisione
- Contenuto specifico del formato
- Stile
- Posizionamento
- Contenuto specifico del formato
- Contenuto specifico del formato
- Temporizzazione
- Stile
- Posizionamento
- Precisione
- Contenuto specifico del formato
- Stile
- Posizionamento
- Frequenza dei fotogrammi
- Contenuto specifico del formato
- Stile
- Posizionamento
- Contenuto specifico del formato
- Stile
- Contenuto specifico del formato
- Stile
- Posizionamento
- Contenuto specifico del formato
- Precisione
- Contenuto specifico del formato
- Temporizzazione
- Stile
- Posizionamento
- Interruzioni di riga
- Contenuto specifico del formato
- Stile
- Posizionamento
- Contenuto specifico del formato
Conversione verso questo formato
- SubRip (SRT) → TTML (Timed Text)
- WebVTT (VTT) → TTML (Timed Text)
- Advanced SubStation Alpha (ASS) → TTML (Timed Text)
- SubStation Alpha (SSA) → TTML (Timed Text)
- YouTube SBV → TTML (Timed Text)
- SAMI (SMI) → TTML (Timed Text)
- LRC Lyrics → TTML (Timed Text)
- MicroDVD → TTML (Timed Text)
- SubtitleMatrix JSON → TTML (Timed Text)
- Plain Text (TXT) → TTML (Timed Text)
- CSV Spreadsheet → TTML (Timed Text)
TTML è uno dei formati di sottotitoli gestiti da questo sito, e questa pagina è il suo riferimento: che cosa sa conservare, che cosa non sa conservare e una pagina per ogni formato in cui può essere convertito.
La tabella qui sopra è tutto: non esiste un elenco nascosto di funzioni. Quando una riga dice no, è esattamente ciò che si perde convertendo in TTML, e ogni pagina di conversione collegata qui sotto lo dichiara prima di aprire un file.
Il formato è XML e questo spiega sia la sua ricchezza sia il suo peso: un’intestazione con `<styling>` e `<layout>`, un `<metadata>` e namespace dichiarati. Ogni conversione avviene nel browser, senza caricare file e senza registrazione.
Domande frequenti
Che cos’è un file TTML?
`.ttml` è un formato XML per i sottotitoli: ogni cue è un elemento `<p>` con `begin` ed `end`, e il documento porta un’intestazione con stili, regioni e metadati. È il formato dietro molti standard di sottotitolazione, ed è quello che i lettori più ricchi conoscono.
Il formato TTML memorizza la formattazione?
Sì, ed è il motivo per cui convertire verso TTML conserva più che verso SRT: i colori e i pesi del carattere stanno in `<styling>`, le posizioni in `<layout>` con `tts:origin` ed `tts:extent`, e ogni `<p>` punta allo stile e alla regione che gli competono.
Ogni cue TTML ha inizio e fine?
Sì, e un momento in un documento TTML si scrive `<p begin="00:00:04.126" end="00:00:06.000">`. I tempi arrivano al millisecondo, quindi il formato è più preciso di quelli che scrivono i centesimi.
In quale formato conviene convertire un documento TTML?
Dipende da che cosa si vuole conservare: verso ASS e SSA restano stili e posizioni, verso JSON resta quasi tutto, verso CSV e TXT resta solo il testo. Non esiste una direzione gratuita, ma esiste quella giusta per l’uso che se ne deve fare.
Un documento TTML può essere aperto con un editor di testo?
Sì, è XML leggibile. Va però tenuto presente che i riferimenti `style=` e `region=` puntano a elementi dell’intestazione: modificare il testo di un `<p>` è semplice, cambiare l’aspetto richiede di sapere dove sta la dichiarazione corrispondente.