Andare al contenuto principale
SubtitleMatrix

Convertire SRT in TTML

Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

In questa direzione non si perde nulla: ogni caratteristica del formato di partenza ha un posto dove andare nel formato di destinazione.

Questo elenco deriva dalla matrice delle capacità di questi due formati, non dal particolare file caricato. Un file specifico può perdere di più se usa caratteristiche che il formato consente ma la matrice non modella.

Questa pagina converte SRT in TTML, il formato XML usato dalle piattaforme di streaming e dalle norme di accessibilità. Ogni blocco diventa un elemento <p> con gli attributi begin ed end, annidato in un <body>, con una dichiarazione XML sopra il documento.

Non si perde nulla: ogni caratteristica che SRT sa esprimere ha un equivalente in TTML. I tempi restano al millisecondo — 00:00:04,126 diventa 00:00:04.126 — le due righe di un blocco restano due, separate da <br/>, e il testo è identico.

Un file o un’intera stagione, con l’ordine dei blocchi ripristinato per tempo di inizio; la conversione gira nel browser e l’output è sempre UTF-8 senza BOM.

Esempi

Un file SRT tipico, convertito in TTML

Ingresso

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

Uscita

<?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:03.500">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p>  </body>
</tt>

Qui non si perde nulla: confrontare le due parti riga per riga.

La stessa conversione su un input irregolare

Ingresso

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

Uscita

<?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:03.500"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p>  </body>
</tt>

Il secondo esempio contiene un BOM, commenti e un tempo malformato: il parser li segnala e produce comunque un documento TTML ordinato.

Domande frequenti

Che aspetto ha l’output quando SRT diventa TTML?

Ha l’aspetto di TTML: niente numeri di blocco, ogni sottotitolo è un elemento `<p>` con gli attributi `begin` ed `end`, annidato in un `<body>` e di solito in un `<div>`, con una dichiarazione XML sopra il documento.

I tempi SRT sono esatti nel file TTML?

Sì, al millisecondo. SRT scrive `00:00:04,126` e TTML scrive `00:00:04.126`: cambia solo il separatore, e un blocco visibile per 2,9 secondi resta tale.

Come esce un blocco SRT di due righe in TTML?

Come due righe separate da `<br/>`, il modo in cui TTML scrive un a capo obbligato. L’accoppiamento sopravvive e le due righe restano un solo sottotitolo.

I blocchi mantengono l’ordine nell’output TTML?

Sì, e vengono ordinati per tempo di inizio prima di essere scritti. Un file fuori sequenza viene rimesso in ordine: cambia la struttura, non il contenuto.

Posso riconvertire il TTML in SRT?

Sì, e quella direzione perde stile, posizionamento e contenuti specifici del formato. In questa direzione non si perde nulla, quindi il costo si paga solo al ritorno.

L’output TTML mantiene la codifica del file SRT?

No: l’uscita è UTF-8 con fine riga Unix e senza BOM. La codifica in ingresso viene rilevata e decodificata, e il pannello dei risultati segnala quando è stato necessario.

Strumenti correlati