Conversores de dados · 5 min de leitura
SRT a VTT: legendas que o navegador irá realmente carregar
Um elemento de vídeo HTML5 ignorará alegremente um arquivo SRT: o elemento `<track>` do navegador carrega WebVTT e nada mais. Converter SRT em VTT é, portanto, uma etapa rotineira na publicação de vídeo na web - e as diferenças entre os dois formatos são menores do que você esperaria, e é exatamente por isso que vale a pena entender a conversão, em vez de tratá-la como uma caixa preta.
Atualizado
O que muda entre SRT e VTT
- O cabeçalho — os arquivos WebVTT começam com a linha `WEBVTT`, opcionalmente com um título depois dela.
- Timecodes — SRT escreve `00:00:12,500` com uma vírgula antes dos milissegundos; VTT escreve `00:00:12.500` com um ponto.
- Identificadores de sugestão — ambos permitem um nome opcional acima da sugestão; VTT os mantém mais úteis para scripts.
- Códigos de tempo de término — obrigatórios em SRT; VTT pode inferir um fim a partir da próxima deixa, embora explícito seja mais seguro.
- Recursos extras — VTT adiciona configurações de sinalização, como posição da linha, alinhamento e marcação de texto.
Estilo e marcação segura
WebVTT permite um conjunto limitado de tags dentro de um cue — `<b>`, `<i>`, `<u>` e `<c.classname>` para classes que você estiliza com CSS via `::cue`. Qualquer outra coisa tem maior probabilidade de ser renderizada como texto literal. É também por isso que a conversão deve preservar a formatação simples quando presente e eliminar o que o formato não pode expressar, em vez de escapar da marcação para colchetes angulares visíveis.
WEBVTT
00:00:12.500 --> 00:00:15.000 align:start
That was the point.
Por que é importante além da reprodução
As legendas são um requisito de acessibilidade na maioria das plataformas e também são materiais indexados: uma faixa de texto fornece aos mecanismos de pesquisa e assistentes um script legível por máquina que o áudio por si só não fornece. Um `<track kind="captions">` corretamente codificado está, portanto, cumprindo uma função dupla: cumprir a conformidade e dar ao vídeo uma presença de texto que, de outra forma, não teria.
A codificação é importante: sirva VTT como UTF-8 com um conjunto de caracteres apropriado. Um arquivo com caracteres acentuados salvo em uma codificação legada será renderizado como mojibake no player e parecerá um bug de conversão em vez de um bug de codificação.
O fluxo de trabalho prático
- Converta SRT em VTT e verifique o primeiro e o último cue para obter os timecodes corretos.
- Salve como UTF-8 com a extensão .vtt e sirva-o com um tipo de conteúdo text/vtt onde você controla o servidor.
- Faça referência a ele no elemento video com `<track kind="captions" srclang="en" label="English" default>`.
- Carregue o arquivo de legenda junto com o arquivo de vídeo para que os caminhos relativos continuem funcionando após a implantação.
Off-line e instantâneo
Arquivos de legenda são documentos de texto grandes e muitas vezes trabalhos inéditos – o script de um corte de revisão não deve ser carregado em lugar nenhum. O conversor de SRT para VTT neste site é executado no navegador, portanto, uma transcrição de duas horas é convertida em uma fração de segundo, sem sair da sua máquina.
SRT a VTT — perguntas frequentes
Por que meu player de vídeo ignora meu arquivo de legenda?
Quase sempre porque o arquivo é SRT e não WebVTT. HTML5 `<track>` aceita apenas VTT. Converta para VTT, confirme se o arquivo começa com a linha WEBVTT e verifique se os códigos de tempo usam pontos, não vírgulas.
O YouTube e outras plataformas precisam de VTT?
O YouTube aceita uploads de SRT e VTT e os converte internamente, mas a maioria dos players auto-hospedados e todos os elementos de vídeo HTML5 precisam de WebVTT. A conversão antes do upload mantém as legendas renderizadas da mesma forma em todos os lugares.
O WebVTT pode ser estilizado?
Sim — dentro do texto de sugestão você pode usar tags de negrito, itálico e sublinhado, além de extensões de classe, e estilizar classes com CSS contra o pseudoelemento `::cue`. O posicionamento é controlado com configurações de sinalização como linha, posição e alinhamento.
Ferramentas mencionadas nesta postagem
Mais artigos para ler
5 min de leitura
Markdown tabelas: gere-as em vez de contar tubos
Crie tabelas de markdown no estilo GitHub a partir de linhas ou planilhas — alinhamento, tubos de escape e quando uma tabela é a escolha errada para seu README.
6 min de leitura
Formatador JSON: bonito, reduzido e realmente válido
Um formatador JSON que imprime, minimiza e valida com localizações exatas de erros — além dos cinco erros de sintaxe por trás de quase todos os erros JSON inválidos.