Andare al contenuto principale
SubtitleMatrix

Convertire SRT in ASS

Oppure incollare il testo dei sottotitoli

Cosa cambia questa conversione

1 elemento viene scartato o richiede una decisione

  • Precisione

    la precisione della temporizzazione — l’orologio dell’uscita è più grossolano, quindi ogni timestamp è arrotondato al 10 ms più vicino

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 riscrive un file SRT come script Advanced SubStation Alpha. I due formati non concordano su cosa sia un sottotitolo: SRT è un elenco di blocchi con due tempi, ASS è un copione con intestazione, tabella di stile e righe Dialogue. Ogni blocco diventa quindi una riga Dialogue legata a uno stile, e i tempi passano alla notazione ASS: 0:00:01.00 invece di 00:00:01,000, perché ASS conta i centesimi e SRT i millisecondi. È l’unica perdita dichiarata: la precisione.

La formattazione viene tradotta, non incollata: una sequenza in corsivo diventa un codice di override attivo all’inizio e spento alla fine, e lo stesso vale per il grasso. Un’interruzione di riga dentro un blocco diventa il codice di a capo di ASS, così due righe restano due righe in un solo evento invece di diventare due blocchi vicini. Ciò che SRT non sa dire — carattere, posizione, bordo — non viene inventato: si ottiene uno script pulito con un solo stile utilizzabile, lo stile Default (Arial 20, bianco con contorno scuro).

Un file o un’intera stagione, senza dover calcolare alcuna frequenza dei fotogrammi perché entrambi i formati memorizzano l’orario, e nulla lascia il computer.

Esempi

Un file SRT tipico, convertito in ASS

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

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,{\i1}Whispering{\i0} now.\NAnd a second line.
Dialogue: 0,0:00:06.00,0:00:09.25,Default,,0,0,0,,{\b1}Bold{\b0} statement.

In questo output si perde: la precisione. Il resto corrisponde 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

[Script Info]
ScriptType: v4.00+

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:01.00,0:00:03.50,Default,,0,0,0,,{\b1}Bold{\b0} and {\i1}italic{\i0}.
Dialogue: 0,0:00:03.50,0:00:06.00,Default,,0,0,0,,
Dialogue: 0,0:00:08.00,0:00:09.00,Default,,0,0,0,,Last one.

Questo è il genere di danno che hanno i file veri: fine riga miste, spazi superflui, campi lasciati vuoti. Il confronto con l’esempio ordinato mostra cosa il parser corregge.

Domande frequenti

Perché l’output ASS contiene una tabella di stile che non avevo richiesto?

Perché in ASS non esiste un blocco senza stile: ogni riga Dialogue punta a uno stile, quindi lo script deve dichiararne almeno uno. Il convertitore crea un unico stile chiamato Default — Arial, corpo 20, bianco con contorno scuro — e vi punta tutte le righe. Cambiando quella riga nell’intestazione cambia l’intero file.

Che cosa significa il numero dopo la virgola nel tempo ASS?

I centesimi di secondo. ASS memorizza il tempo al centesimo, quindi un inizio a `00:00:01,250` in SRT viene scritto `0:00:01.25`: è la risoluzione più fine del formato, e nulla di più preciso era comunque presente nel file di partenza.

Come arrivano il corsivo e il grasso nell’output ASS?

Come vera formattazione ASS: una sequenza in corsivo diventa un codice di override attorno a quella sequenza, e il grasso un codice analogo. Un editor ASS li mostra come stile e non come markup residuo, che è la differenza tra uno script che si apre pulito e uno pieno di caratteri estranei.

Un’interruzione di riga dentro un blocco SRT viene conservata nell’ASS?

Sì, come codice di a capo di ASS. Due righe dentro un blocco SRT restano due righe dentro un solo evento Dialogue, quindi la seconda riga mantiene la tempistica del blocco.

L’output ASS resta allineato allo stesso video dell’SRT?

Sì. Qui nulla sposta o riscala il tempo: il primo blocco parte nello stesso istante e l’ultimo finisce nello stesso istante. È cambiato solo ciò che circonda le parole, e la precisione scende dai millisecondi ai centesimi.

Strumenti correlati