Saltar al contenido principal
SubtitleMatrix

Cambiar el color de los subtítulos

Texto y estiloCambiar el color del texto
O pega el texto de los subtítulos

Opciones

#ffcc00

Elige el color al que pasa todo el archivo. Los colores existentes en una línea se reemplazan en lugar de apilarse, así que una ejecución deja exactamente un color por línea; la negrita, la cursiva, el subrayado y las sincronizaciones karaoke se dejan intactos. Solo se escribe #rrggbb, que es la única grafía que los nueve formatos aceptados pueden llevar exactamente. No todos los reproductores dibujan color en línea, y SRT no tiene estándar para ello: el archivo llevará el color, pero que se vea depende del reproductor.

Esta página pinta en un mismo color todas las líneas de un archivo de subtítulos. Lee el archivo por lo que es de verdad y no por su extensión, así que la misma pasada funciona en nueve formatos, y cada uno recibe el color en la notación que ya entiende: `<font color="#rrggbb">` en SRT, WebVTT, SBV y SAMI, un bloque de sobrescritura en ASS y SSA, un `<span tts:color>` en TTML, el arreglo de etiquetas en JSON, y el mismo marcado en línea dentro de las celdas entre comillas de un CSV.

El color que eliges sustituye al que había en lugar de apilarse encima. Una línea que llegó en parte verde vuelve entera con el color nuevo: un solo rango sobre toda la línea en vez de un `<font>` dentro de otro `<font>`, que algunos reproductores pintan con el color interior y otros ignoran por completo. La negrita, la cursiva, el subrayado y los tiempos de karaoke se quedan donde están, y cada rango con estilo sigue cubriendo exactamente los caracteres que cubría.

Es un color para todo el archivo, por diseño. El color de los subtítulos suele ser una decisión de entrega —un blanco de la casa, un amarillo que sobrevive a una escena clara, un color reservado a un tipo de hablante—, y un archivo que necesitara dos colores necesitaría además que alguien decidiera qué líneas llevan cuál, y eso es trabajo de un editor de texto y no de un único valor en un panel. Un bloque sin texto no recibe nada: no hay rango que pintar, y un rango de color de longitud cero sería una etiqueta del tamaño de nada.

No se sube nada y nada sale de la pestaña del navegador. El color es una de las pocas piezas de estilo que un archivo de subtítulos puede llevar sin un renderizador al lado, pero que el espectador lo vea depende del reproductor: esta página escribe el marcador, y la sección de preguntas dice con claridad de qué lado de esa línea se queda.

Ejemplos

Dos bloques SRT sin estilos

Entrada

1
00:00:01,000 --> 00:00:02,000
Hello there.

2
00:00:03,000 --> 00:00:04,000
Second line.

Resultado

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>

Un `<font>` por línea, envolviéndola entera, y los códigos de tiempo y las líneas en blanco exactamente como llegaron. La etiqueta es un rango sobre la línea y no una propiedad del bloque, y por eso un bloque con dos líneas duras recibe dos etiquetas en lugar de una que cruce el salto.

Una línea que ya lleva color y cursiva

Entrada

1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> <font color="#00ff00">there</font>.

Resultado

1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00"><i>Hello</i> there.</font>

El rango verde se quita antes de poner el color nuevo, así que el resultado es un único `<font>` alrededor de la línea y la cursiva todavía dentro: no un `<font>` dentro de otro `<font>`, donde las reglas de anidado dependen del reproductor y el resultado cambia en silencio en cada uno. Lo que era verde pasa a tener el mismo color que todo lo demás, que es la lectura honesta de un panel que pide un solo color.

El mismo bloque en un archivo 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

Resultado

[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}

ASS no tiene `<font>`; el color es un código de sobrescritura que se abre antes del texto y se cierra con un `{\c}` escueto después, para que el resto de la línea no quede pintado por accidente. El `PrimaryColour` de la hoja de estilos no se edita: la sobrescritura a nivel de bloque es una instrucción más fuerte y es la única que se aplicaría solo a este bloque.

Un bloque sin texto

Entrada

1
00:00:01,000 --> 00:00:02,000

2
00:00:03,000 --> 00:00:04,000
Hi.

Resultado

1
00:00:01,000 --> 00:00:02,000

2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Hi.</font>

El bloque vacío se queda vacío en lugar de recibir un `<font>` alrededor de nada. Un bloque vacío ya es un problema estructural —las páginas de comprobación lo señalan— y una etiqueta de marcado sin texto dentro no lo arreglaría, solo lo escondería de una búsqueda. El bloque que sí tiene texto se pinta con normalidad.

Preguntas frecuentes

¿En qué formatos escribe el color esta página y cómo es el marcador en cada uno?

En nueve: SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON y CSV. SRT, WebVTT, SBV y SAMI reciben `<font color="#rrggbb">`, ASS y SSA reciben una sobrescritura `{\c&H…&}` cerrada por `{\c}`, TTML recibe `<span tts:color="#rrggbb">`, JSON escribe el color como un rango de etiquetas sobre la línea, y un CSV conserva el mismo marcado `<font>` dentro de su celda de texto entre comillas. Los formatos que no tienen dónde poner color en línea no se aceptan: un archivo LRC o MicroDVD no tiene sintaxis de color, así que una pasada ahí informaría de un cambio y no escribiría nada.

¿Por qué la salida ASS dice `&H0000CCFF&` si elegí `#ffcc00`?

Porque un color ASS se escribe con sus bytes en el orden contrario: `&HAABBGGRR`, donde va primero el alfa y después los pares de azul, verde y rojo. `#ffcc00` es rojo 255, verde 204 y azul 0, así que queda `00` de alfa, `00` de azul, `CC` de verde y `FF` de rojo: `&H0000CCFF&`. El valor es el color que elegiste, y un reproductor que lo muestre enseñará el mismo amarillo; los números solo parecen reordenados porque el formato los guarda al revés.

¿Todos los reproductores de vídeo mostrarán de verdad el color nuevo?

No, y esa es la frontera honesta de esta página. `<font color>` no forma parte de la especificación de SRT —es un marcado que la mayoría de reproductores tolera y algunos ignoran—, y los códigos de sobrescritura de ASS los respetan los reproductores basados en libass, como VLC y mpv, pero no todos los decodificadores de hardware. La página escribe el marcador correctamente y el resultado se puede verificar en el propio archivo; que un reproductor concreto lo muestre es decisión suya. Si el color tiene que estar garantizado en pantalla, hay que quemarlo en la imagen, y eso es otro trabajo.

¿Qué ocurre con los colores que ya tenía el archivo?

Se sustituyen, no se apilan. Primero se quita cada rango de color de la línea y después se añade uno que cubre la línea entera, así que el resultado es un solo `<font>` y no un `<font>` dentro de otro. Las etiquetas de color anidadas son el caso en el que los reproductores más discrepan —unos toman la interior, otros la exterior, otros aplanan las dos—, de modo que un archivo que ha pasado por esta página lleva una única respuesta sin ambigüedad.

¿La página colorea palabras sueltas o el archivo entero?

El archivo entero, un color y todas las líneas. Esta página no tiene un alcance por bloque ni por palabra, y es deliberado: el panel contiene un único valor, y una pasada cuyo resultado dependiera de qué bloques hubieras seleccionado no sería reproducible a partir del archivo. Una línea que necesita destacar una palabra es una edición de texto y no un cambio de color, y las páginas de buscar y reemplazar del sitio pueden hacer esa parte concreta.

¿Se conservan la negrita, la cursiva, el subrayado y los tiempos de karaoke al aplicar el color?

Se conservan, y sus rangos siguen pegados a los mismos caracteres. Solo se quitan y se vuelven a añadir los rangos de color; las otras cuatro clases quedan intactas, así que una palabra en cursiva dentro de una línea sigue en cursiva dentro del color nuevo. En ASS eso significa que el `{\i1}` y su cierre `{\i0}` siguen en los mismos sitios alrededor del texto, con la sobrescritura de color abierta antes de ellos y cerrada después.

Herramientas relacionadas