Convertire VTT in ASS
Oppure incollare il testo dei sottotitoli
Cosa cambia questa conversione
2 elementi vengono scartati o richiedono una decisione
- Precisione
la precisione della temporizzazione — l’orologio dell’uscita è più grossolano, quindi ogni timestamp è arrotondato al 10 ms più vicino
- 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 riscrive un file WebVTT come script Advanced SubStation Alpha. I due formati non concordano su cosa sia un sottotitolo: WebVTT è un documento con intestazione, commenti e impostazioni per blocco, ASS è un copione con 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.
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. Ciò che WebVTT tiene fuori dai blocchi — intestazione, NOTE, STYLE, REGION e impostazioni come align o position — non ha un posto equivalente nel copione e viene scartato: ASS sa posizionare, ma con un vocabolario di codici diverso, e la conversione non inventa coordinate.
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 WebVTT tipico, convertito in ASS
Ingresso
WEBVTT
intro
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:04.500 --> 00:00:08.000 align:start position:10%
Second line with <i>italics</i>.
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:04.00,Default,,0,0,0,,Hello there.
Dialogue: 0,0:00:04.50,0:00:08.00,Default,,0,0,0,,Second line with {\i1}italics{\i0}.
In questo output si perdono: la precisione e i contenuti specifici del formato. Il resto corrisponde riga per riga.
La stessa conversione su un input irregolare
Ingresso
a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.
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:02.00,Default,,0,0,0,,No header, two lines before the timecode.
Il secondo esempio porta un BOM, commenti e un tempo malformato: il parser li segnala e produce comunque un copione ASS ordinato.
Domande frequenti
Perché i tempi VTT vengono arrotondati nell’ASS?
ASS registra il tempo al centesimo di secondo, WebVTT al millisecondo. Un blocco che inizia a `00:00:01.234` diventa `0:00:01.23`, quindi ogni tempo si muove al massimo di 5 ms: invisibile guardando il video, può contare confrontando il file con un altro fotogramma per fotogramma.
Da dove viene la tabella di stile che compare nell’ASS?
Viene scritta per te, perché un file ASS senza tabella non è riproducibile. L’output porta un solo stile chiamato Default — Arial corpo 20, testo bianco con contorno nero — e ogni riga Dialogue vi punta. Si può modificare in seguito nell’editor; rieseguire il convertitore sovrascriverebbe la modifica.
Che fine fanno le impostazioni VTT dopo un tempo, come align:start o position:10%?
Vengono scartate. ASS sa posizionare un blocco con precisione, ma lo fa con codici di override dentro il testo — `\an7` per l’angolo in alto a sinistra, `\pos(320,240)` per un punto esatto — e le impostazioni WebVTT sono un vocabolario diverso e più limitato, senza corrispondenza uno a uno. Invece di indovinare una posizione, la conversione lascia il testo e segnala l’impostazione come persa.
I blocchi NOTE, STYLE e REGION di VTT sopravvivono nell’ASS?
No: sono costrutti esclusivi di WebVTT senza corrispondente in ASS. Il più delicato è STYLE, che può contenere le regole di impaginazione dell’intero documento e non un commento di passaggio: quello stile andrà ricostruito in ASS se serve.
Posso convertire qui un file WebVTT riservato?
Sì. Il file viene letto e scritto nella scheda del browser, quindi un VTT coperto da riservatezza non lascia mai la macchina su cui si trova: non c’è caricamento né analisi lato server. L’output viene scritto in locale e la pagina continua a convertire anche senza rete.