Converter ASS para SBV
Ou cole o texto da legenda
O que esta conversão altera
4 coisas são descartadas ou precisam de uma decisão
- Estilo
todo o estilo (negrito, itálico, cor, contorno, sombra)
- Posição
a posição na tela (cada bloco volta à posição padrão)
- Karaokê
a sincronização karaokê (destaque por sílaba)
- 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 leva um script ASS para o SBV, o formato de legenda que o YouTube usou nos próprios envios: dois carimbos separados por vírgula, o texto e uma linha em branco.
O ASS carrega um motor de estilo; o SBV carrega frases com dois tempos. Ficam pelo caminho a tabela de estilo — fonte, corpo, cor, contorno, sombra, margens —, o posicionamento por coordenadas e o karaokê. Também não há lugar para o [Script Info], para as linhas Comment: nem para os anexos de fonte e imagem.
Sobrevivem as palavras, as quebras de linha e os tempos. Um evento com duas linhas continua um bloco com duas linhas, e o par de carimbos é reescrito na notação do SBV. Um arquivo ou uma temporada inteira, no navegador.
Exemplos
Um arquivo ASS comum, convertido para SBV
Entrada
[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
Saída
0:00:01.000,0:00:04.000
Hello there.
0:00:05.000,0:00:08.500
<i>Italic</i> and <b>bold</b> text.
0:00:09.000,0:00:12.000
Positioned
0:00:13.000,0:00:16.000
<c>ka</c><c>ra</c><c>o</c><c>ke</c>
0:00:17.000,0:00:20.000
Line one
Line two
0:00:21.000,0:00:24.000
Top left
Descartado nesta saída: estilo declarado, posição, karaokê e o resto do script. O resto confere linha por linha.
A mesma conversão com uma entrada problemática
Entrada
[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 timecodeSaída
0:00:01.000,0:00:04.000
Hello, world
0:00:05.000,0:00:08.000
{\fad(300,300)}Unmodelled override
0:00:09.000,0:00:12.000
Both, wrong order
0:00:13.000,0:00:16.500
One decimal centisecond
0:00:17.000,0:00:20.000
Soft
break
É o tipo de dano que scripts reais trazem: BOM, fins de linha misturados e um carimbo com um decimal só. Compare com o exemplo organizado acima para ver o que o analisador perdoa.
Perguntas frequentes
O que acontece com o estilo do ASS no SBV?
Desaparece. O SBV não tem folha de estilo nem tabela: a fonte, o corpo, as cores, o contorno e a sombra ficam no script de origem e não são gravados no destino. Quem exibir o SBV decide a aparência.
As coordenadas de \pos e \an são convertidas?
Não. O SBV não expressa posição de nenhuma forma, então os códigos são descartados em vez de virarem texto. A legenda sai sem colocação própria, que é o comportamento previsto de quem lê o formato.
E o karaokê do script?
Some: o SBV mostra um bloco de texto por intervalo e não marca instantes dentro dele. As sílabas continuam no texto, mas sem o destaque que o ASS desenhava.
As linhas de Comment: viram legendas?
Não. Só eventos Dialogue: são convertidos; linhas Comment:, Picture: e Sound: não aparecem na tela e não têm equivalente no SBV, então são descartadas.
Um evento de duas linhas continua um bloco?
Continua, com as duas linhas empilhadas e separadas por uma linha em branco do bloco seguinte. O SBV distingue blocos pela linha em branco, então a quebra interna não os separa.
Os carimbos do ASS precisam de ajuste?
Sim, e é só notação: o SBV escreve a hora com um dígito e mantém o centésimo, então 0:00:04.13 continua 0:00:04.13. O instante não muda e nenhum bloco anda.