Converter JSON para SBV
Ou cole o texto da legenda
O que esta conversão altera
3 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)
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 converte JSON em SBV. Arraste um arquivo — ou cole o texto — e receba a versão SBV de volta. A conversão roda inteiramente no seu navegador, então nada é enviado e nenhuma conta é necessária.
Estes dois formatos não guardam as mesmas coisas, e a diferença não é cosmética: estilo, posicionamento e karaokê não têm para onde ir no SBV. A lista acima vem do que cada um dos formatos consegue expressar, não do seu arquivo, então a resposta é a mesma antes de você carregar qualquer coisa.
Um arquivo está bom, e uma temporada inteira também: a fila processa na ordem e os resultados descem juntos num único ZIP.
Exemplos
Um arquivo JSON típico, convertido para SBV
Entrada
{
"version": 1,
"title": "Fixture: typical",
"fps": 25,
"styles": {
"Default": {
"name": "Default",
"fontFamily": "Arial",
"fontSize": 20,
"primaryColor": "#FFFFFF",
"bold": false,
"italic": false
}
},
"generator": "subtitlematrix fixtures",
"cues": [
{
"id": "1",
"start": 0,
"end": 2000,
"lines": [
"Hello world.",
"Second line."
],
"style": "Default",
"position": {
"x": 100,
"y": 200,
"align": "center"
}
},
{
"id": "2",
"start": 2500,
"end": 4000,
"lines": [
"Plain line.",
{
"text": "Styled line.",
"tags": [
{
"kind": "italic",
"start": 0,
"end": 6
}
]
}
]
},
{
"id": "3",
"start": 4500,
"end": 6000,
"lines": [
"Roger: I am here."
],
"speaker": "Roger"
}
]
}
Saída
0:00:00.000,0:00:02.000
Hello world.
Second line.
0:00:02.500,0:00:04.000
Plain line.
<i>Styled</i> line.
0:00:04.500,0:00:06.000
Roger: I am here.
Perdidos nesta saída: estilo, posicionamento e karaokê. Todo o resto corresponde linha a linha.
A mesma conversão sobre uma entrada problemática
Entrada
[
{ "start": 0, "end": 1000, "lines": ["First."] },
{ "start": 1000, "end": 2000, "text": "Second." },
"not an object",
{ "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]
Saída
0:00:00.000,0:00:01.000
First.
0:00:01.000,0:00:02.000
Second.
0:00:02.000,0:00:03.000
Third.
É o tipo de dano que os arquivos reais têm: fim de linha misturado, espaço sobrando, campos vazios. Compare com o exemplo organizado acima para ver o que o analisador perdoa.
Perguntas frequentes
Negrito e itálico sobrevivem do JSON para o SBV?
A ênfase sobrevive; a tabela de estilos não. A formatação que pertence a um trecho de texto — negrito, itálico, sublinhado, uma cor — é escrita no texto SBV como tags i, b, u e font color, porque esse é o único tipo de estilo que um formato por bloco ainda carrega. Perde-se tudo o que o JSON dizia de forma global: a fonte, o tamanho, o contorno, a sombra e as margens.
O que acontece com a posição na tela do JSON para o SBV?
O SBV não registra onde a legenda é desenhada, então a posição guardada em cada bloco é descartada na saída do JSON e todos os blocos voltam para a posição padrão do player, que na maioria é a parte inferior do quadro, centralizada.
O que acontece com o karaokê do JSON para o SBV?
O tempo se perde e as palavras permanecem. O karaokê está nos trechos marcados que um bloco JSON carrega, indicando quando cada sílaba acende; como o SBV não registra instantes dentro de uma linha, as marcas saem e as sílabas chegam como texto comum.
Como fica a saída quando JSON vira SBV?
Fica no formato SBV: sem números de bloco e sem cabeçalho, apenas uma linha com os dois tempos e depois o texto. Cada bloco JSON vira um bloco SBV, na mesma ordem, com o mesmo texto.
Os tempos do JSON ficam exatos no arquivo SBV?
Ficam exatos ao milissegundo, que é o limite dos dois formatos. O JSON escreve 4126 e o SBV escreve 0:00:04.126 para o mesmo instante; nada é arredondado nem deslocado, e um bloco de 2,9 segundos continua com 2,9 segundos.
As duas linhas de um bloco JSON sobrevivem no SBV?
Sobrevivem como duas linhas, uma sob a outra. O vínculo se mantém: as duas linhas do JSON seguem pertencendo a uma única legenda no SBV, e o player as exibe juntas.
Dá para converter o SBV de volta para JSON?
Dá, e esse percurso não custa nada: um arquivo SBV guarda menos do que o JSON consegue guardar, então nada mais é descartado na volta. O que esta direção descartou continua descartado, porém: estilo, posicionamento e karaokê não podem ser reconstruídos de um SBV, porque nada nele registra como eram.
O SBV de saída mantém a codificação do arquivo JSON?
Não. A saída é sempre UTF-8, com fim de linha Unix e sem BOM, qualquer que fosse a codificação do JSON. Arquivos em UTF-16 ou em codificação de byte único do Windows são convertidos na leitura, com aviso no painel de resultado.