Convertire ASS in VTT
Oppure incollare il testo dei sottotitoli
Cosa cambia questa conversione
4 elementi vengono scartati o richiedono una decisione
- Stile
tutto lo stile tranne grassetto e corsivo (colore, contorno, ombra, margini)
- Posizionamento
il posizionamento sullo schermo (ogni blocco torna alla posizione predefinita)
- 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 un copione ASS in WebVTT, il formato dei sottotitoli del web. Il risultato conserva la struttura dei blocchi e la timeline, ma lascia a casa quasi tutto ciò che rende un copione ASS un copione: la tabella di stile, i colori, il posizionamento e il karaoke.
Ciò che l’insieme di tag in linea di WebVTT sa esprimere viene tradotto, non incollato: una sequenza in corsivo diventa un tag di corsivo e una in grassetto un tag di grassetto. Il resto viene scartato: carattere, corpo, colore, contorno, ombra, margini, i codici \pos e \an, i tempi \k, \kf e \ko, le sezioni [Script Info], [Fonts] e [Graphics]. Le sillabe del karaoke restano come parole, non come istruzioni di tempo. I codici di override che WebVTT non conosce non vengono inventati né lasciati come testo: sono rimossi, e la conversione li segnala.
Un file o un’intera stagione, con l’ordine dei blocchi ripristinato per tempo di inizio; la conversione gira nel browser e l’output è sempre UTF-8 senza BOM.
Esempi
Un file ASS tipico, convertito in VTT
Ingresso
[Script Info]
Title: Example
ScriptType: v4.00+
WrapStyle: 0
[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
Style: Title,Arial,36,&H0000FFFF,&H000000FF,&H00000000,&H00000000,-1,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:05.00,0:00:08.50,Default,,0,0,0,,{\i1}Italic{\i0} and {\b1}bold{\b0} text.
Dialogue: 0,0:00:09.00,0:00:12.00,Title,,0,0,0,,{\pos(320,240)}Positioned
Dialogue: 0,0:00:13.00,0:00:16.00,Default,,0,0,0,,{\k50}ka{\k30}ra{\k20}o{\k10}ke
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Line one\NLine two
Dialogue: 1,0:00:21.00,0:00:24.00,Default,,0,0,0,,{\an7}Top left
Uscita
WEBVTT
00:00:01.000 --> 00:00:04.000
Hello there.
00:00:05.000 --> 00:00:08.500
<i>Italic</i> and <b>bold</b> text.
00:00:09.000 --> 00:00:12.000
Positioned
00:00:13.000 --> 00:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>
00:00:17.000 --> 00:00:20.000
Line one
Line two
00:00:21.000 --> 00:00:24.000
Top left
In questo output si perdono: lo stile, il posizionamento, il karaoke e i contenuti specifici del formato. Il resto corrisponde riga per riga.
La stessa conversione su un input irregolare
Ingresso
[Script Info]
; 一份真实的脏文件:BOM + CRLF + 认不出的覆写码 + Comment + 坏时间码
Title: Dirty sample
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,1,0,0,0,100,100,0,0,1,2,2,2,10,10,10,1
[Fonts]
fontname: Arial
!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:01.00,Default,,0,0,0,,这是一条注释,不该变成字幕
Dialogue: 0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello, world
Dialogue: 0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\fad(300,300)}Unmodelled override
Dialogue: 0,0:00:09.00,0:00:12.00,Default,,0,0,0,,{\an7\pos(320,240)}Both, wrong order
Dialogue: 0,0:00:13.00,0:00:16.5,Default,,0,0,0,,One decimal centisecond
Dialogue: 0,0:00:17.00,0:00:20.00,Default,,0,0,0,,Soft\nbreak
Dialogue: 0,0:00:xx.00,0:00:24.00,Default,,0,0,0,,Broken timecodeUscita
WEBVTT
00:00:01.000 --> 00:00:04.000
Hello, world
00:00:05.000 --> 00:00:08.000
{\fad(300,300)}Unmodelled override
00:00:09.000 --> 00:00:12.000
Both, wrong order
00:00:13.000 --> 00:00:16.500
One decimal centisecond
00:00:17.000 --> 00:00:20.000
Soft
break
Il secondo copione ha una tabella di stile con colonne fuori ordine e un evento con codici sconosciuti: l’output VTT resta pulito e segnala ciò che ha scartato.
Domande frequenti
Perché il karaoke ASS è sparito nel VTT?
WebVTT non ha tempi per sillaba. Le sillabe restano come campionature separate nel testo, quindi una riga karaoke si legge ancora a pezzi, ma i valori `\k` che accendevano ciascuna parte non hanno dove andare. Se serve l’evidenziazione, il file ASS resta il master e il VTT è la versione in testo semplice.
Grassetto e corsivo ASS vengono conservati nel VTT?
Sì: sono le due cose che l’insieme di tag in linea di WebVTT sa esprimere, quindi `{\i1}Corsivo{\i0}` esce come `<i>Corsivo</i>`, e lo stesso per il grasso. Tutto ciò che è più ricco — colore, contorno, ombra, margini, nomi dei caratteri — viene scartato.
Che fine fanno i sottotitoli ASS posizionati nel VTT?
Perdono la collocazione: `\pos(x,y)` e `\an7` sono specifici di ASS, e l’equivalente di WebVTT è un insieme limitato di impostazioni per blocco, non coordinate libere. Il testo compare nella posizione predefinita del lettore.
Dove sono finite le sezioni ASS [Fonts] e [Graphics]?
Non vengono trasferite: incorporano caratteri e immagini che servono al lettore per disegnare il copione, e sono allegati più che sottotitoli. WebVTT non ha una sezione equivalente e non consente di incorporare un carattere, quindi conviene puntare su un carattere di sistema o sullo stile a livello di lettore.
Il copione ASS di un cliente va caricato per essere convertito?
No. Il copione viene letto e riscritto dentro la scheda del browser, quindi nulla di esso — blocchi, `[Script Info]`, tabella di stile — viene inviato altrove. Basta caricare la pagina una volta: anche staccando la rete, la conversione continua a funzionare.