Andare al contenuto principale
SubtitleMatrix

Convertire SSA in TTML

Conversione dei formatiSubStation Alpha (SSA)
Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

2 elementi vengono scartati o richiedono una decisione

  • Karaoke

    la temporizzazione karaoke (evidenziazione per sillaba)

  • 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 SSA 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: karaoké e contenuti propri di SSA non hanno posto in TTML. L’elenco qui sopra nasce dalle capacità dichiarate dei due formati, non dal tuo file, quindi non cambia da un file all’altro.

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 SSA tipico, convertito in TTML

Ingresso

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

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:04.000">Hello there.</p>
<p begin="00:00:05.000" end="00:00:08.000"><span tts:fontStyle="italic">Italic</span> line.</p>
<p begin="00:00:09.000" end="00:00:12.000">Two<br/>lines</p>  </body>
</tt>

In questa uscita si perdono karaoké e contenuti propri del formato. Tutto il resto corrisponde riga per riga.

La stessa conversione su un input disordinato

Ingresso

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

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:04.000"><span tts:fontWeight="bold">Bold</span> and <span tts:textDecoration="underline">underlined</span>.</p>
<p begin="00:00:05.000" end="00:00:08.000">A soft<br/>break and a {\p1}mystery{\p0} code.</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 fa il karaoké da SSA a TTML?

La temporizzazione va, le parole restano. Il karaoké vive nei codici `\k`, `\kf` e `\ko` che un evento SSA porta con sé, e che segnano quando ogni sillaba si accende; TTML non ha modo di registrare un istante dentro una riga, quindi i segni cadono e le sillabe arrivano come testo semplice dentro il `<p>`.

Che fine fanno il blocco `[Script Info]` e il resto dello script SSA nel TTML?

Solo le righe `Dialogue:` diventano sottotitoli. Il blocco `[Script Info]` (titolo compreso — TTML non ha dove metterlo), la tabella degli stili, le eventuali righe `Comment:` e tutto ciò che è incorporato in `[Fonts]` o `[Graphics]` vengono scartati. Per un file SSA il cui stile era scritto in `[V4 Styles]`, è la perdita che si nota di più.

Che aspetto ha l’uscita quando SSA 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 SSA diventa un blocco TTML, nello stesso ordine, con lo stesso testo.

I tempi SSA restano esatti nel file TTML?

Sì, al millisecondo — che è la precisione massima di entrambi i formati. SSA scrive un istante come `0:00:04.13` 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 SSA 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 SSA appartengono ancora a un solo sottotitolo nell’uscita TTML.

I blocchi SSA 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 SSA 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 SSA?

Sì, e ha un elenco suo: convertendo TTML in SSA si perdono la precisione e i contenuti propri del formato. Quell’elenco è diverso da quello qui sopra perché i due formati conservano cose diverse.

L’uscita TTML conserva la codifica del file SSA?

No: l’uscita è UTF-8, con fine riga Unix e senza BOM, qualunque codifica usasse il file SSA. 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