Andare al contenuto principale
SubtitleMatrix

Convertire SMI in TTML

Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

1 elemento viene scartato o richiede una decisione

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

Questa pagina converte SAMI in TTML: trascini un file, o incolli il testo, e riottieni la versione TTML, un documento XML con un elemento `<p>` per blocco. La conversione gira nel browser, quindi nessun file viene caricato.

I due formati non conservano le stesse cose, e la differenza non è cosmetica: i contenuti propri di SAMI non hanno posto in TTML. L’elenco qui sopra deriva dalle capacità dichiarate dei due formati, non dal tuo file, quindi non cambia con il file.

Un file va bene, e così un’intera stagione: la coda li elabora in ordine e i risultati arrivano insieme in un unico ZIP.

Esempi

Un file SAMI tipico, convertito in TTML

Ingresso

<SAMI>
<HEAD>
<STYLE TYPE="text/css">
<!--
P { text-align: center; font-family: Arial; }
.ENCC { Name: English; lang: en-US; }
-->
</STYLE>
</HEAD>
<BODY>
<SYNC Start=1000>
<P Class=ENCC>Hello there.
<SYNC Start=3000>
<P Class=ENCC>&nbsp;
<SYNC Start=3500>
<P Class=ENCC>How are you?<br>Fine, thanks.
<SYNC Start=6000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

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.000">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000">How are you?<br/>Fine, thanks.</p>  </body>
</tt>

In questa uscita si perdono i contenuti propri del formato. Il testo e l’ordine dei blocchi corrispondono riga per riga.

La stessa conversione su un input disordinato

Ingresso

<SAMI>
<HEAD>
<TITLE>Episode 1</TITLE>
<STYLE TYPE="text/css">
<!--
.ENCC { Name: English; }
-->
</STYLE>
</HEAD>
<BODY>
<sync start="00:00:02,500">
<P Class=ENCC>Line one<br>Line two
<sync start=9000>
<P Class=ENCC>Tom &amp; Jerry
<SYNC Start=12000>
<P Class=ENCC>&nbsp;
</BODY>
</SAMI>

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:02.500" end="00:00:09.000">Line one<br/>Line two</p>
<p begin="00:00:09.000" end="00:00:12.000">Tom &amp; Jerry</p>  </body>
</tt>

È il tipo di danno che i file reali hanno davvero — fine riga misti, spazi superflui, campi lasciati vuoti. Confrontalo con l’esempio ordinato qui sopra per vedere cosa il parser perdona.

Domande frequenti

Che fine fanno il blocco `<STYLE>`, il `<TITLE>` e gli attributi `Class=` di SAMI nel TTML?

Vengono scartati. L’uscita TTML è un documento con la radice `<tt>` e i blocchi `<p begin end>` dentro un `<body>`: ha un proprio meccanismo di stile, fatto di elementi `<styling>` e `<region>` con attributi `tts:`, ma qui non viene popolato — il CSS del blocco `<STYLE>` di SAMI non viene tradotto in `<styling>` né il `Class=ENCC` in un `<region>`, e il `<TITLE>` non diventa un elemento di metadati. L’enfasi scritta dentro il testo del paragrafo è un’altra cosa: appartiene alla riga e sopravvive.

Che aspetto ha l’uscita quando SAMI diventa TTML?

Ha l’aspetto del TTML: nessun numero di blocco; ogni sottotitolo è un elemento `<p>` con gli attributi `begin` e `end`, annidato in un `<body>` sotto la radice `<tt>`, con la dichiarazione XML sopra l’intero documento. Ogni blocco SAMI diventa un blocco TTML, nello stesso ordine, con lo stesso testo.

I tempi SAMI restano esatti nel file TTML?

Sì, al millisecondo — che è la precisione massima di entrambi i formati. SAMI scrive un istante come `Start=4126` e TTML scrive lo stesso istante come `00:00:04.126`; nulla viene arrotondato o spostato fra i due, e un blocco rimasto sullo schermo per 2,9 secondi lo resta.

Come esce in TTML un blocco SAMI su due righe?

Come due righe separate da un `<br/>`, che è come TTML scrive un’interruzione di riga forzata dentro un `<p>`. L’abbinamento sopravvive: le due righe SAMI appartengono ancora a un solo sottotitolo nell’uscita TTML.

I blocchi SAMI mantengono l’ordine nell’uscita TTML?

Sì, e lungo la strada vengono ordinati per istante di inizio — prima il più antico, che è l’ordine atteso da ogni formato di questo sito e quello con cui i lettori li interpretano. Se il tuo file SMI elencava i blocchi fuori sequenza, l’uscita TTML li rimette in ordine: è un cambiamento nella struttura del file, non nel suo contenuto, ed è voluto.

Posso riconvertire il TTML in SMI?

Sì, e ha un elenco suo: convertendo TTML in SMI si perdono stile e contenuti propri del formato, cioè gli elementi `<styling>` e `<region>` e i metadati `tts:` che SAMI non sa rappresentare. Quell’elenco è diverso da quello qui sopra perché i due formati conservano cose diverse.

L’uscita TTML conserva la codifica del file SMI?

No: l’uscita è UTF-8, con fine riga Unix e senza BOM, qualunque codifica usasse il file SMI. Un file che arriva in UTF-16, o in una codifica Windows a byte singolo, viene decodificato in ingresso (il pannello dei risultati lo segnala quando accade); quello che esce è sempre lo stesso TTML in UTF-8.

Strumenti correlati