Andare al contenuto principale
SubtitleMatrix

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 position

La 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.

TTML in LRC: restano fuori tempi, stile, posizione, precisione e campi extra.
  • Temporizzazione
  • Stile
  • Posizionamento
  • Precisione
  • Contenuto specifico del formato
TTML in MicroDVD: si perdono stile, posizione, fps e campi extra.
  • Stile
  • Posizionamento
  • Frequenza dei fotogrammi
  • Contenuto specifico del formato
TTML in TXT: restano fuori tempi, stile, posizione, a capo e campi extra.
  • Temporizzazione
  • Stile
  • Posizionamento
  • Interruzioni di riga
  • Contenuto specifico del formato

Conversione verso questo formato

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.