Ir para o conteúdo principal
SubtitleMatrix

Mudar a cor das legendas

Texto e estiloMudar a cor do texto
Ou cole o texto da legenda

Opções

#ffcc00

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.

Ferramentas relacionadas