Mudar a cor das legendas
Ou cole o texto da legenda
Opções
Escolha a cor para a qual todo o arquivo vira. Cores existentes em uma linha são substituídas em vez de empilhadas, então uma execução deixa exatamente uma cor por linha; negrito, itálico, sublinhado e tempos de karaokê ficam em paz. Só #rrggbb é gravado — é a única grafia que os nove formatos aceitos conseguem carregar exatamente. Não todo reprodutor desenha cor embutida, e o SRT não tem padrão para isso: o arquivo guardará a cor, mas se ela aparece depende do reprodutor.
Esta página pinta todas as linhas de um arquivo de legenda com uma única cor. Ela lê o arquivo pelo que ele realmente é, não pela extensão, então a mesma execução funciona em nove formatos, e cada um recebe a cor na notação que já entende: `<font color="#rrggbb">` em SRT, WebVTT, SBV e SAMI, um bloco de override em ASS e SSA, um `<span tts:color>` em TTML, o vetor de marcações em JSON e a mesma marcação embutida dentro das células entre aspas de um CSV.
A cor que você escolhe substitui o que estava lá em vez de se acumular por cima. Uma linha que chegou parcialmente verde volta inteira na cor nova — um único trecho cobrindo a linha toda, em vez de um `<font>` dentro de outro `<font>`, que alguns tocadores renderizam com a cor interna e outros simplesmente ignoram. Negrito, itálico, sublinhado e marcação de karaokê ficam onde estavam, e cada trecho estilizado continua cobrindo exatamente os caracteres que cobria antes.
É uma cor para o arquivo inteiro por decisão de projeto. Cor de legenda costuma ser uma escolha de entrega — um branco da casa, um amarelo que sobrevive a uma cena clara, uma cor reservada para um tipo de falante — e um arquivo que precisasse de duas cores exigiria alguém decidindo quais linhas levam qual, o que é trabalho para um editor de texto, não para um único valor em um painel. Um bloco sem texto não recebe nada: não há trecho para pintar, e um trecho de cor de comprimento zero seria uma marcação do tamanho de nada.
Nada é enviado e nada sai da aba do navegador. A cor é uma das poucas peças de estilo que um arquivo de legenda consegue carregar sem um renderizador ao lado, mas se o espectador a vê é decisão do tocador — esta página grava a marcação, e as perguntas abaixo dizem com clareza de que lado dessa linha ela fica.
Exemplos
Dois blocos SRT simples
Entrada
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
Saída
1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00">Hello there.</font>
2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Second line.</font>
Um `<font>` por linha, envolvendo a linha inteira, e os timecodes e as linhas em branco exatamente como chegaram. A marcação é um trecho sobre a linha, não uma propriedade do bloco, e é por isso que um bloco com duas linhas quebradas à mão recebe duas marcações em vez de uma que atravesse a quebra.
Uma linha que já traz uma cor e um itálico
Entrada
1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> <font color="#00ff00">there</font>.
Saída
1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00"><i>Hello</i> there.</font>
O trecho verde é removido antes de a cor nova entrar, então o resultado é um `<font>` em volta da linha com o itálico ainda dentro — não um `<font>` dentro de outro, caso em que as regras de aninhamento dependem do tocador e o resultado muda em silêncio de um para outro. O que era verde agora tem a mesma cor de todo o resto, que é a leitura honesta de um painel que pede uma cor só.
O mesmo bloco em um arquivo ASS
Entrada
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize
Style: Default,Arial,20
[Events]
Format: Layer, Start, End, Style, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,Hello there
Saída
[Script Info]
ScriptType: v4.00+
[V4+ Styles]
Format: Name, Fontname, Fontsize
Style: Default,Arial,20
[Events]
Format: Layer, Start, End, Style, Text
Dialogue: 0,0:00:01.00,0:00:02.00,Default,{\c&H0000CCFF&}Hello there{\c}
O ASS não tem `<font>`; a cor é um código de override que abre antes do texto e é fechado por um `{\c}` sozinho depois dele, para que o resto da linha não seja pintado por acidente. O `PrimaryColour` da folha de estilos não é editado — o override no bloco é uma instrução mais forte e é o único que se aplicaria só a este bloco.
Um bloco sem texto
Entrada
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
Hi.
Saída
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Hi.</font>
O bloco vazio continua vazio em vez de receber um `<font>` em volta de nada. Um bloco vazio já é um problema estrutural — as páginas de verificação vão reportá-lo — e uma marcação sem texto dentro não o consertaria, só o esconderia de uma busca. O bloco que tem texto é pintado normalmente.
Perguntas frequentes
Quais formatos esta página de cor grava, e como é a marcação em cada um?
Nove: SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON e CSV. SRT, WebVTT, SBV e SAMI recebem `<font color="#rrggbb">`; ASS e SSA recebem um override `{\c&H…&}` fechado por `{\c}`; TTML recebe `<span tts:color="#rrggbb">`; JSON grava a cor como um trecho de marcação sobre a linha; e o CSV mantém a mesma marcação `<font>` dentro da célula de texto entre aspas. Formatos que não têm onde colocar cor embutida não são aceitos por esta página: um arquivo LRC ou MicroDVD não tem sintaxe de cor, então uma execução ali diria que mudou algo e gravaria o arquivo intacto.
Por que a saída ASS mostra `&H0000CCFF&` quando eu escolhi `#ffcc00`?
Porque a cor no ASS é escrita com os bytes na ordem inversa: `&HAABBGGRR`, em que o alfa vem primeiro e depois os pares de azul, verde e vermelho. `#ffcc00` é vermelho 255, verde 204, azul 0, então fica `00` de alfa, `00` de azul, `CC` de verde e `FF` de vermelho — `&H0000CCFF&`. O valor é a cor que você escolheu, e um tocador que a mostre exibe o mesmo amarelo; os números só parecem fora de ordem porque o formato os guarda de trás para frente.
Todos os tocadores de vídeo vão mostrar mesmo a cor nova?
Não, e essa é a fronteira honesta desta página. `<font color>` não faz parte da especificação do SRT — é uma marcação que a maioria dos tocadores tolera e alguns ignoram —, e os códigos de override do ASS são respeitados por tocadores baseados em libass, como VLC e mpv, mas não por todo aparelho de TV por assinatura. A página grava a marcação corretamente e o resultado é verificável no próprio arquivo; se um tocador específico a mostra é decisão dele. Se a cor precisa ser garantida na tela, ela tem de ser gravada na imagem, o que é outro trabalho.
O que acontece com as cores que o arquivo já tinha?
Elas são substituídas, não empilhadas. Todo trecho de cor de uma linha é removido primeiro e depois um trecho cobrindo a linha inteira é acrescentado, então o resultado é um único `<font>` em vez de um `<font>` dentro de outro. Cores aninhadas são justamente o caso em que os tocadores mais discordam — alguns usam a interna, outros a externa, outros achatam as duas —, então um arquivo que passou por esta página tem uma resposta só, sem ambiguidade.
A página colore palavras individuais ou o arquivo de legenda inteiro?
O arquivo inteiro, uma cor, todas as linhas. Não há escopo por bloco nem por palavra nesta página, e isso é deliberado: o painel tem um valor só, e uma execução cujo resultado dependesse de quais blocos você tivesse selecionado não seria reproduzível a partir do arquivo. Uma linha que precisa de uma palavra destacada é uma edição de texto, não uma mudança de cor, e as páginas de localizar e substituir deste site dão conta da parte direcionada.
Negrito, itálico, sublinhado e marcação de karaokê são mantidos quando a cor é aplicada?
São mantidos, e seus trechos continuam presos aos mesmos caracteres. Apenas os trechos de cor são removidos e recolocados; os outros quatro tipos não são tocados, então uma palavra em itálico dentro de uma linha continua em itálico dentro da cor nova. No ASS isso significa que o `{\i1}` e o `{\i0}` de fechamento continuam nas mesmas posições em volta do texto, com o override de cor aberto antes deles e fechado depois.