WebVTT
O formato de legenda da web: o que um navegador mostra pelo <track> do HTML. Os blocos do SubRip, com cabeçalho, ponto antes dos milissegundos e espaço para estilo, posições e falantes.
Resumo
| Extensão | .vtt |
|---|---|
| Tipo de mídia | text/vtt |
| Especificação | W3C, WebVTT: The Web Video Text Tracks Format, uma Candidate Recommendation |
| Precisão de tempo | Milissegundos |
| Codificação do texto | UTF-8, sempre: a especificação exige. O Subtitld lê outras codificações mesmo assim. |
| Estilo | Tags de itálico, negrito e sublinhado; cores por classes e CSS (::cue). Sem tachado. |
| Posicionamento | Configurações do cue (linha, posição, alinhamento, tamanho, vertical) e regiões |
| Falantes | Tags de voz: <v Thom> |
| Em contêineres | Matroska como S_TEXT/WEBVTT; MP4 como wvtt (ISO/IEC 14496-30); fluxos HLS e DASH |
Anatomia de um cue
Um arquivo é um cabeçalho, depois os cues. Cada cue é um bloco como o do SubRip, com duas partes opcionais.
WEBVTT intro 00:00:23.000 --> 00:00:24.500 line:0 <v Celia>You're a jerk, <i>Thom</i>.
- 1 · Cabeçalho
WEBVTT, sozinho ou seguido de um espaço e um título, depois uma linha em branco. Sem ele, um navegador recusa o arquivo inteiro. - 2 · Identificador
Opcional. Um nome para o cue, em uma linha própria: um número, como no SubRip, ou uma palavra.
- 3 · Tempo
Início, a seta
-->, fim. Um ponto antes dos milissegundos. - 4 · Configurações
Opcional. Onde mostrar o cue, depois do horário de fim.
- 5 · Texto
Linhas de texto, com tags para estilo e vozes. Uma linha em branco encerra o cue, então não há nenhuma dentro dele.
O horário
As horas podem ser omitidas. 00:27.000 é o mesmo instante, e muitos arquivos de menos de uma hora são escritos assim. Uma vírgula antes dos milissegundos é um hábito do SubRip, não do WebVTT; o Subtitld a lê mesmo assim.
Blocos além dos cues
| Bloco | O que contém |
|---|---|
NOTE |
Um comentário, para as pessoas. Os players o ignoram. |
STYLE |
CSS para os cues, por meio de ::cue. Antes do primeiro cue. |
REGION |
Uma área nomeada da tela onde os cues podem rolar. |
Texto do cue
| Tag | Efeito |
|---|---|
<i>…</i>, <b>…</b>, <u>…</u> |
Itálico, negrito, sublinhado |
<c.yellow>…</c> |
Uma classe, que o CSS (ou as próprias classes de cor do WebVTT) pode colorir |
<v Thom>… |
A voz: quem está falando. Fechar a tag é opcional. |
<lang pt>…</lang> |
O idioma de um trecho do texto |
<ruby>漢<rt>kan</rt></ruby> |
Uma leitura acima do texto, para japonês e chinês |
<00:00:28.500> |
Uma marca de tempo dentro do cue, para karaokê |
& < > |
E comercial, <, > e um espaço sem quebra, que de outro modo seriam lidos como marcação |
Cores
Oito classes são coloridas sem nenhum CSS: white, lime, cyan, red, yellow, magenta, blue e black, e as mesmas oito com bg_ para o fundo. Qualquer outra cor precisa de uma classe própria e de um bloco STYLE:
STYLE
::cue(.gold) { color: #ffd700; }
00:00:30.800 --> 00:00:34.000
<c.gold>Why don't you just admit that</c>
Nem todo player lê blocos STYLE; as classes de cor próprias do WebVTT são a escolha mais segura. O Subtitld as usa sempre que a cor for uma das oito.
Configurações do cue
| Configuração | O que faz |
|---|---|
line:0 |
A linha na tela: um número conta linhas a partir do topo (negativo, a partir da base), uma porcentagem a partir da borda superior |
position:10% |
Onde a caixa do cue fica na largura da tela |
align:start |
Alinhamento do texto dentro da caixa: start, center, end, left, right |
size:50% |
A largura da caixa |
vertical:rl |
Texto vertical, da direita para a esquerda ou da esquerda para a direita |
region:fred |
Mostra o cue em uma REGION |
O Subtitld lê line, position e align como o lugar da legenda na tela, os mesmos nove lugares de {\an1} a {\an9} do SubRip, e os grava de volta: line:0 para o topo, line:50%,center para o meio, position:10% align:start e position:90% align:end para as laterais.
WebVTT no Subtitld
- O texto e as quebras de linha de cada legenda
- Itálico, negrito, sublinhado e cor
- Onde a legenda fica na tela
- Falantes, como tags de voz
- Início e fim, até o milissegundo, em ordem
- Tachado: o WebVTT não tem tag para ele
- Rostos e cores dos falantes
- Traduções ao lado do original (uma pode tomar o lugar dele, ou ficar abaixo)
- Dublagens e metadados
Salve um projeto .usfx para mantê-los.
Abrindo um arquivo WebVTT
O Subtitld encontra cada cue pela linha de tempo e lê:
- o cabeçalho, e os blocos
NOTE,STYLEeREGIONcomo o que são, não como legendas; e os identificadores de cue como nomes; - horários com ou sem horas, com ponto ou vírgula;
- vozes como os falantes das legendas, prontos para dublagem;
- as classes de cor do WebVTT, e as cores que um bloco
STYLEdá a outras classes; line,positionealigncomo o lugar na tela;- qualquer codificação, embora o WebVTT exija UTF-8.
Deixa de fora o que não tem lugar: regiões, o tamanho de um cue, texto vertical, as leituras do ruby e as marcas de tempo do karaokê. O texto em si permanece.
Exportando WebVTT
Exportar, depois Legendas e VTT, oferece:
- TextoO original, uma tradução, ou os dois, com a tradução abaixo.
- Nomes dos falantesOmitidos, antes do texto (Thom: …), ou como tags de voz (
<v Thom>), a forma própria do WebVTT. - FormataçãoMantida, ou removida.
- Deslocar horáriosCada legenda antes ou depois, pelo mesmo intervalo.
O arquivo é sempre UTF-8, como o WebVTT exige: WEBVTT, depois os cues em ordem de início, cada horário com suas horas. Caracteres que seriam lidos como marcação são escritos como entidades, e legendas vazias ficam de fora.
Em uma página web
<video controls src="tears-of-steel.mp4">
<track kind="subtitles" src="tears-of-steel.en.vtt"
srclang="en" label="English" default>
</video>
Sirva o arquivo como text/vtt. De outro domínio, o vídeo precisa de crossorigin, e o servidor de um cabeçalho Access-Control-Allow-Origin, ou o navegador não carrega a trilha.
WebVTT ou SubRip?
SubRip para players, editores e uploads; WebVTT para vídeo na web. A página do SubRip os coloca lado a lado.
Curiosidades
Começou como WebSRT, redigido no WHATWG para o novo elemento <track> do HTML5 e baseado no SubRip, antes de adotar o nome WebVTT.
Seis letras no começo de todo arquivo. Um navegador que não as encontra recusa a trilha inteira.
Cores que um player reconhece sem CSS: white, lime, cyan, red, yellow, magenta, blue e black, para o texto e para o fundo.
Formatos relacionados
Abra no Subtitld com o vídeo e reajuste-o na forma de onda.