Convertire TTML in MicroDVD
Oppure incollare il testo dei sottotitoli
Opzioni
La frequenza dei fotogrammi in cui sono contati i tempi. Nelle pagine di formato è quella che serve a MicroDVD, perché memorizza i tempi come numeri di fotogramma. Nelle pagine della frequenza dei fotogrammi è la cadenza con cui è stato temporizzato il file — la versione per cui sono stati creati i sottotitoli — e il secondo riquadro della pagina accetta la frequenza del video con cui verranno usati. 23,976, 24, 25, 29,97, 30, 50, 59,94 e 60 sono quelle comuni. Sbagliarla sposta l’intera timeline, e nelle pagine della frequenza dei fotogrammi la sposta di un rapporto anziché di un importo fisso.
Cosa cambia questa conversione
4 elementi vengono scartati o richiedono una decisione
- Stile
tutto lo stile (grassetto, corsivo, colore, contorno, ombra)
- Posizionamento
il posizionamento sullo schermo (ogni blocco torna alla posizione predefinita)
- Frequenza dei fotogrammi
questo formato memorizza i tempi come numeri di fotogramma — le temporizzazioni dipendono dalla frequenza dei fotogrammi fornita
- 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.
MicroDVD non conosce gli orari: scrive coppie di numeri di fotogramma come `{103}{175}`. Un documento TTML porta invece `begin` ed `end` al millisecondo, quindi la conversione deve dividere ogni tempo per la frequenza dei fotogrammi indicata sulla pagina. Da quella scelta dipende l’intera timeline.
Il TTML porta anche un’intestazione: `<styling>` con colori e pesi, `<layout>` con origine ed estensione delle regioni, `<metadata>` e namespace. MicroDVD non ha nessun posto per queste cose: perde formattazione, posizionamento e contenuti specifici del formato, oltre alla frequenza dei fotogrammi, che è un valore di lettura e non viene scritto nell’output.
Il testo sopravvive, e un `<p>` su due righe diventa due righe separate da una barra verticale. La conversione avviene nel browser, senza caricare file; più file si elaborano in coda e si scaricano in un unico ZIP.
Esempi
Un file TTML tipico, convertito in MicroDVD
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
{1}{1}25
{25}{88}Hello there.
{88}{150}How are you?|Fine, thanks.
In questa conversione si perdono la formattazione, il posizionamento, la frequenza dei fotogrammi 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
{1}{1}25
{38}{88}Loaded from an offset and a duration.
{100}{163}A coarser clock spelling.
{175}{212}Frames, at 25fps.
{225}{275}Half-open and Tom & Jerry.
Namespace spaiati, entità non dichiarate e paragrafi vuoti: il file è sporco ma legale, e il confronto con l’esempio ordinato mostra fin dove arriva la tolleranza del parser.
Domande frequenti
Quale frequenza dei fotogrammi serve per convertire TTML in MicroDVD?
Quella del campo in alto, perché il documento TTML non la contiene: i suoi tempi sono orari e non dicono a quanti fotogrammi al secondo corrispondano. Un valore sbagliato non produce un errore, produce una timeline spostata.
Come si passa da `00:00:04.126` a una coppia di fotogrammi?
Moltiplicando il tempo in secondi per la frequenza scelta e arrotondando al fotogramma intero. A 25 fps il secondo 4,126 cade sul fotogramma 103, quindi il cue comincia con `{103}`; a 23,976 lo stesso istante cade su un numero diverso.
Che ne è dello stile TTML in MicroDVD?
Niente: il colore di `tts:color`, il peso di `tts:fontWeight` e la famiglia di `tts:fontFamily` non hanno un campo nel formato di destinazione. Il testo resta e la formattazione no.
Che ne è delle regioni `<layout>` quando un documento TTML diventa MicroDVD?
Spariscono: MicroDVD non sa dire dove deve stare un cue sullo schermo, quindi `tts:origin` ed `tts:extent` e i riferimenti `region=` non hanno destinazione. È il posizionamento che compare fra le perdite.
Che aspetto ha l’output quando TTML diventa MicroDVD?
Ha l’aspetto del MicroDVD: nessun numero di cue e nessun timecode, ogni sottotitolo è una coppia di graffe con due numeri di fotogramma e poi il testo. Ogni `<p>` diventa un cue, nello stesso ordine.
Come esce in MicroDVD un paragrafo TTML su due righe?
Come due righe separate da una barra verticale, il modo in cui MicroDVD scrive un a capo. L’accoppiamento resta: le due righe appartengono ancora a un solo sottotitolo nell’output.
Che cosa si perde dell’intestazione TTML nella conversione in MicroDVD?
Il `<metadata>`, la dichiarazione XML, i namespace e gli attributi che il modello del MicroDVD non prevede. Il rapporto li conta come contenuto specifico del formato invece di lasciarli sparire senza dirlo.
I cue mantengono l’ordine nell’output MicroDVD?
Sì, e vengono ordinati per tempo di inizio prima di essere convertiti in fotogrammi: prima i più antichi, come si aspetta ogni formato di questo sito. Se il documento TTML elencava i paragrafi fuori sequenza, l’output li rimette in ordine.
L’output MicroDVD 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 file in UTF-8.