Ir para o conteúdo principal
SubtitleMatrix

Converter VTT para SSA

Ou cole o texto da legenda

O que esta conversão altera

2 coisas são descartadas ou precisam de uma decisão

  • Precisão

    a precisão dos tempos — o relógio da saída é mais grosseiro, então cada marca de tempo é arredondada para o 10 ms mais próximo

  • Conteúdo específico do formato

    conteúdo que o formato de origem guarda fora de seus blocos (blocos que não são cue, texto de cabeçalho, configurações por bloco, eventos comentados) — o formato de destino não tem lugar para ele

Esta lista vem da matriz de capacidades destes dois formatos, não do arquivo específico que você carregou. Um arquivo específico pode perder mais se usar recursos que o formato permite mas a matriz não modela.

Esta página escreve um WebVTT como script SSA. O SSA é o antecessor do ASS: um script com [Script Info], [V4 Styles] e [Events], onde cada legenda é uma linha Dialogue com tempos no formato 0:00:04.13.

Duas coisas se perdem. A primeira é a resolução: o SSA conta centésimos, então 00:00:04.126 vira 4.13 s, com arredondamento para os 10 ms mais próximos e desvio máximo de 5 ms. A segunda é o que o VTT guarda fora dos blocos: cabeçalho, NOTE, STYLE, REGION e ajustes de carimbo não têm equivalente no script.

O texto, as quebras de linha e a ordem dos blocos atravessam. Um bloco de duas linhas vira duas linhas separadas pelo código de quebra do SSA dentro de um único Dialogue. Um arquivo ou uma temporada inteira, no navegador.

Exemplos

Um arquivo VTT comum, convertido para SSA

Entrada

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

Saída

[Script Info]
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
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}.

Descartado nesta saída: o milésimo, arredondado a centésimo, e a sintaxe exclusiva do WebVTT. O resto confere linha por linha.

A mesma conversão com uma entrada problemática

Entrada

a stray comment line
cue-id-1
00:00:01.000 --> 00:00:02.000
No header, two lines before the timecode.

Saída

[Script Info]
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
Dialogue: 0,0:00:01.00,0:00:02.00,Default,,0,0,0,,No header, two lines before the timecode.

Cabeçalho ausente, fins de linha misturados e uma linha solta antes do carimbo: compare com o exemplo organizado acima para ver o que o analisador perdoa.

Perguntas frequentes

Por que os tempos do VTT perdem precisão no SSA?

Porque o SSA grava centésimos e o VTT grava milésimos. O valor é arredondado para o centésimo mais próximo — 00:00:04.126 vira 0:00:04.13 —, com desvio máximo de 5 ms por bloco. É o único ponto em que esta conversão deixa de ser exata.

O que o SSA faz com os blocos NOTE, STYLE e REGION?

Descarta. Eles existem na gramática do WebVTT e não na do SSA, que tem a própria tabela de estilos em [V4 Styles]. Um STYLE do VTT pode definir o layout inteiro, então essa perda pode ser visível.

Como o alinhamento por carimbo do VTT chega ao SSA?

Também são descartados. O SSA posiciona por campo de estilo e por códigos dentro do texto, não por setting de carimbo; traduzir align:start para um código seria adivinhar, e o conversor prefere reportar a perda a inventar posição.

Como fica a saída quando o VTT vira SSA?

Um script com [Script Info], [V4 Styles] e [Events]. Cada bloco vira uma linha Dialogue com um campo Marked; a tabela de estilos traz uma entrada Default, e o cabeçalho declara a versão do formato.

As duas linhas de um bloco continuam juntas no SSA?

Continuam, separadas por barra invertida e N maiúsculo, que é a quebra dura do SSA. As duas linhas pertencem ao mesmo Dialogue e entram juntas.

O que a conversão faz com a ordem dos blocos?

Ordena pelo início antes de escrever, do mais cedo para o mais tarde. O SSA não tem índice, então a posição do Dialogue em [Events] é a única ordem que o renderizador conhece.

Ferramentas relacionadas