Changer la couleur des sous-titres
Ou collez le texte d'un sous-titre
Options
Choisissez la couleur que prend tout le fichier. Les couleurs existantes sur une ligne sont remplacées plutôt qu'empilées : une exécution laisse donc exactement une couleur par ligne ; gras, italique, souligné et minutages karaoké restent intacts. Seul #rrggbb est écrit — c'est la seule notation que les neuf formats acceptés peuvent porter exactement. Tous les lecteurs ne dessinent pas la couleur en ligne, et SRT n'a pas de norme pour cela : le fichier portera la couleur, mais son affichage dépend du lecteur.
Cette page peint toutes les lignes d’un fichier de sous-titres d’une seule couleur. Elle lit le fichier pour ce qu’il est réellement plutôt que d’après son extension, si bien qu’un même passage fonctionne sur neuf formats, et chacun reçoit la couleur dans la notation qu’il comprend déjà : une balise font color en SRT, WebVTT, SBV et SAMI, un bloc d’override en ASS et SSA, un span tts:color en TTML, le tableau de balises en JSON, et le même balisage à l’intérieur des cellules entre guillemets d’un CSV.
La couleur choisie remplace ce qui était là au lieu de s’empiler dessus. Une ligne arrivée partiellement verte revient entièrement dans la nouvelle couleur — une seule plage sur toute la ligne au lieu d’une balise dans une balise, que certains lecteurs rendent avec la couleur intérieure et d’autres ignorent. Le gras, l’italique, le soulignement et le minutage karaoké restent en place, et une plage stylée continue de couvrir exactement les mêmes caractères.
C’est une seule couleur pour tout le fichier, par choix. La couleur d’un sous-titre est généralement une décision de livraison — un blanc maison, un jaune qui résiste à une scène claire, une couleur réservée à un type de locuteur — et un fichier qui aurait besoin de deux couleurs demanderait qu’on décide quelles lignes prennent laquelle, ce qui est un travail d’éditeur de texte, pas une valeur unique sur un panneau. Un bloc sans texte ne reçoit rien : il n’y a pas de plage à peindre.
Rien n’est envoyé et rien ne quitte l’onglet. La couleur est l’un des rares éléments de style qu’un fichier de sous-titres peut porter sans moteur de rendu, mais c’est le lecteur qui décide de l’afficher : cette page écrit le marqueur, et la FAQ ci-dessous dit franchement de quel côté de cette ligne elle se situe.
Exemples
Deux blocs SRT ordinaires
Entrée
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
Sortie
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>
Une balise font par ligne, autour de toute la ligne, et les timecodes comme les lignes vides sont exactement tels qu’ils sont arrivés. La balise est une plage sur la ligne plutôt qu’une propriété du bloc, ce qui explique qu’un bloc de deux lignes reçoive deux balises et non une seule à cheval sur le retour à la ligne.
Une ligne qui portait déjà une couleur et un italique
Entrée
1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> <font color="#00ff00">there</font>.
Sortie
1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00"><i>Hello</i> there.</font>
La plage verte est retirée avant que la nouvelle couleur soit posée : le résultat est une seule balise autour de la ligne, avec l’italique toujours à l’intérieur. Pas de balise imbriquée, dont le rendu dépend du lecteur. Ce qui était vert prend maintenant la couleur de tout le reste, ce qui est la lecture honnête d’un panneau qui demande une seule couleur.
Le même bloc dans un fichier ASS
Entrée
[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
Sortie
[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 n’a pas de balise font ; la couleur est un code d’override qui s’ouvre avant le texte et se ferme par un « {\c} » nu après lui, pour que la suite de la ligne ne soit pas peinte par accident. Le « PrimaryColour » de la feuille de styles n’est pas modifié : l’override au niveau du bloc est une instruction plus forte et la seule qui ne s’applique qu’à ce bloc.
Un bloc sans texte
Entrée
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
Hi.
Sortie
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Hi.</font>
Le bloc vide reste vide plutôt que de recevoir une balise autour de rien. Un bloc vide est déjà un problème de structure — les pages de contrôle le signalent — et une balise sans texte ne le corrigerait pas, elle le cacherait d’un grep. Le bloc qui a du texte est peint normalement.
Questions fréquentes
Quels formats cette page colorie-t-elle, et à quoi ressemble le marqueur ?
Neuf : SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON et CSV. SRT, WebVTT, SBV et SAMI prennent une balise font color, ASS et SSA un « {\c&H…&} » fermé par « {\c} », TTML un span tts:color, JSON une plage de balise sur la ligne, et un CSV conserve le même balisage dans sa cellule de texte. Les formats qui n’ont nulle part où mettre une couleur en ligne ne sont pas acceptés du tout.
Pourquoi la sortie ASS affiche-t-elle « &H0000CCFF& » quand j’ai choisi « #ffcc00 » ?
Parce qu’une couleur ASS s’écrit avec ses octets dans l’ordre inverse : « &HAABBGGRR », alpha d’abord, puis bleu, vert et rouge. « #ffcc00 » vaut rouge 255, vert 204, bleu 0, donc alpha 00, bleu 00, vert CC, rouge FF, soit « &H0000CCFF& ». C’est bien la couleur choisie : seuls les nombres semblent réarrangés parce que le format les stocke à l’envers.
Tous les lecteurs afficheront-ils réellement la nouvelle couleur ?
Non, et c’est la limite honnête de cette page. La balise font color ne fait pas partie de la spécification SRT : c’est un balisage que beaucoup de lecteurs tolèrent et que certains ignorent. Les codes d’override ASS sont respectés par les lecteurs fondés sur libass comme VLC et mpv, mais pas par tous les boîtiers matériels. La page écrit le marqueur correctement ; l’affichage reste la décision du lecteur.
Qu’arrive-t-il aux couleurs déjà présentes dans le fichier ?
Elles sont remplacées, pas recouvertes. Toute plage de couleur sur une ligne est d’abord retirée, puis une plage couvrant la ligne entière est ajoutée : le résultat est une seule balise et non une balise dans une balise. Les couleurs imbriquées sont précisément le cas où les lecteurs divergent le plus, donc un fichier passé par cette page contient une réponse non ambiguë.
La page colorie-t-elle des mots précis ou tout le fichier ?
Tout le fichier, une couleur, chaque ligne. Il n’y a ni portée par bloc ni portée par mot, et c’est volontaire : le panneau ne contient qu’une valeur, et un passage dont le résultat dépendrait des blocs cliqués ne serait pas reproductible à partir du fichier. Une ligne qui a besoin d’un mot mis en évidence relève de l’édition de texte, pas d’un changement de couleur.
Le gras, l’italique et les minutages karaoké sont-ils conservés ?
Oui, et leurs plages restent attachées aux mêmes caractères. Seules les plages de couleur sont retirées puis rajoutées ; les quatre autres familles ne sont pas touchées, donc un mot en italique dans une ligne reste en italique à l’intérieur de la nouvelle couleur. En ASS, « {\i1} » et « {\i0} » restent aux mêmes endroits autour du texte.