Convertire TTML in TXT
Oppure incollare il testo dei sottotitoli
Cosa cambia questa conversione
5 elementi vengono scartati o richiedono una decisione
- Temporizzazione
l’intera timeline (il formato di uscita non registra alcuna temporizzazione)
- Stile
tutto lo stile (grassetto, corsivo, colore, contorno, ombra)
- Posizionamento
il posizionamento sullo schermo (ogni blocco torna alla posizione predefinita)
- Interruzioni di riga
le interruzioni di riga (i blocchi su più righe verranno uniti in una sola riga)
- Contenuto specifico del formato
il contenuto che il formato di partenza tiene fuori dai suoi blocchi (blocchi non-cue, testo di intestazione, impostazioni per blocco, eventi commentati) — il formato di destinazione non ha un posto per esso
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.
Un TXT contiene solo parole: nessun tempo, nessuno stile, nessuna posizione. Un documento TTML contiene un albero XML con `<p begin end>`, un’intestazione di stili e regioni e un `<metadata>`; la conversione verso TXT è la più perdente del gruppo.
Ogni `<p>` diventa una riga di testo e ogni riga interna un’altra riga, ma il file smette di dire che appartenevano insieme, quindi rileggendolo si ottengono due sottotitoli dove prima ce n’era uno. Si perdono temporizzazione, formattazione, posizionamento, a capo e contenuti specifici del formato.
Conta se dopo di te passa uno strumento di traduzione o di risincronizzazione: il testo resta completo, la struttura no. La conversione avviene nel browser, senza caricare file; più file insieme arrivano in un unico ZIP.
Esempi
Un file TTML tipico, convertito in TXT
Ingresso
<?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>
Uscita
Hello there.
How are you?
Fine, thanks.
In questa conversione si perdono la temporizzazione, la formattazione, il posizionamento, gli a capo e i contenuti specifici del formato. Tutto il resto resta identico, riga per riga.
La stessa conversione su un input difficile
Ingresso
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling"
xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
ttp:frameRate="25" xml:lang="en">
<body>
<div>
<p begin="1.5s" dur="2s">Loaded from an offset and a duration.</p>
<p begin="4s" end="00:00:06.50">A coarser clock spelling.</p>
<p begin="00:00:07:00" end="00:00:08:12">Frames, at 25fps.</p>
<p begin="9s"><span tts:color="#FF0000">Half-open</span> and Tom & Jerry.</p>
</div>
</body>
</tt>
Uscita
Loaded from an offset and a duration.
A coarser clock spelling.
Frames, at 25fps.
Half-open and Tom & Jerry.
È il tipo di danno che i file reali hanno davvero: namespace fuori posto, entità non dichiarate, elementi vuoti. Confrontandolo con l’esempio ordinato qui sopra si vede che cosa il parser perdona.
Domande frequenti
Dove sono finiti i timecode TTML?
Il TXT non ne ha: un’esportazione di testo è parole, non momenti. L’ordine dei paragrafi resta, quindi il quarantesimo `<p>` è la quarantesima riga qui, ma nulla nell’output dice quando qualcosa appare a schermo.
Che succede in TXT a un paragrafo TTML su due righe?
Entrambe le righe vengono scritte, una sotto l’altra, ma il file smette di dire che appartengono insieme: il TXT non sa raggruppare righe in un cue, quindi rileggendo si ottengono due sottotitoli dove il TTML ne aveva uno.
Che ne è dello stile TTML quando il file diventa TXT?
Niente: il colore di `tts:color`, il peso di `tts:fontWeight` e il corsivo di un `<span tts:fontStyle="italic">` non hanno un campo nel TXT. Restano le parole, non l’aspetto.
Che ne è delle regioni `<layout>` quando un documento TTML diventa TXT?
Spariscono: il TXT non ha un modo per dire dove deve stare una riga, quindi `tts:origin` ed `tts:extent` e i riferimenti `region=` non hanno destinazione.
Che aspetto ha l’output quando TTML diventa TXT?
Ha l’aspetto del TXT: nessun numero di cue e nessun timecode, una riga di testo per ogni riga di sottotitolo. Ogni `<p>` diventa una riga o più, nello stesso ordine e con lo stesso testo.
Che cosa si perde dell’intestazione TTML nella conversione in TXT?
Tutto: `<styling>`, `<layout>`, `<metadata>`, la dichiarazione XML e i namespace. Il rapporto li conta come contenuto specifico del formato invece di lasciarli sparire senza dirlo.
I cue mantengono l’ordine nell’output TXT?
Sì, e vengono ordinati per tempo di inizio lungo la strada: prima i più antichi, come si aspetta ogni formato di questo sito. Se il documento TTML elencava i paragrafi fuori sequenza, il TXT li rimette in ordine.
Posso riconvertire il TXT in TTML?
Sì, e ha un elenco suo: convertire TXT in TTML perde la temporizzazione. Quell’elenco è diverso da quello qui sopra perché i due formati conservano cose diverse: il TXT non ha tempi, quindi non può restituirli.
L’output TXT conserva la codifica del documento TTML?
No: l’output è UTF-8, con fine riga Unix e senza BOM, qualunque codifica dichiarasse il documento TTML. Ciò che esce è sempre lo stesso TXT in UTF-8.