Kleur van ondertitels wijzigen
Of plak ondertiteltekst
Opties
Kies de kleur waarin het hele bestand verandert. Bestaande kleuren op een regel worden vervangen in plaats van gestapeld, dus één run laat precies één kleur per regel achter; vet, cursief, onderstreept en karaoke-timing blijven met rust. Alleen #rrggbb wordt geschreven — dat is de ene spelling die alle negen geaccepteerde formaten precies kunnen dragen. Niet elke speler tekent inline-kleur, en SRT heeft er geen standaard voor: het bestand bevat de kleur, maar of hij verschijnt hangt van de speler af.
Deze pagina schildert elke regel van een ondertitelbestand in één kleur. Ze leest het bestand naar wat het werkelijk is in plaats van naar de extensie, dus dezelfde run werkt op negen formaten, en elk formaat krijgt de kleur in de notatie die het al begrijpt: `<font color="#rrggbb">` in SRT, WebVTT, SBV en SAMI, een overrideblok in ASS en SSA, een `<span tts:color>` in TTML, de tag-array in JSON, en dezelfde inline opmaak binnen de geciteerde cellen van een CSV.
De kleur die je kiest vervangt wat er stond in plaats van erbovenop te stapelen. Een regel die deels groen binnenkwam, komt volledig in de nieuwe kleur terug — één bereik over de hele regel in plaats van een `<font>` in een `<font>`, wat sommige spelers als de binnenste kleur tonen en andere volledig negeren. Vet, cursief, onderstreping en karaoke-timing blijven staan waar ze stonden, en een opgemaakt bereik dekt nog steeds precies de tekens die het daarvoor dekte.
Het is met opzet één kleur voor het hele bestand. De kleur van ondertitels is meestal een leveringsbeslissing — een huiswit, een geel dat een heldere scène overleeft, een kleur die voor één soort spreker is gereserveerd — en een bestand dat twee kleuren nodig heeft, vraagt iemand om te beslissen welke regels welke kleur krijgen. Dat is werk voor een teksteditor, niet voor één waarde op een paneel. Een blok zonder tekst krijgt niets: er is geen bereik om te schilderen, en een kleurbereik van lengte nul zou een tag zo groot als niets zijn.
Niets wordt geüpload en niets verlaat de browsertab. Kleur is een van de weinige stukken opmaak die een ondertitelbestand kan dragen zonder renderer ernaast, maar of de kijker hem ziet, is de beslissing van de speler — deze pagina schrijft de markering, en de vragen hieronder zeggen ronduit aan welke kant van die grens ze staat.
Voorbeelden
Twee gewone SRT-blokken
Invoer
1
00:00:01,000 --> 00:00:02,000
Hello there.
2
00:00:03,000 --> 00:00:04,000
Second line.
Uitvoer
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>
Eén `<font>` per regel, om de hele regel heen, en de tijdcodes en lege regels zijn precies zoals ze aankwamen. De tag is een bereik over de regel in plaats van een eigenschap van het blok, en daarom krijgt een blok met twee harde regeleinden twee tags in plaats van één die de afbreking overspant.
Een regel die al een kleur en een cursief draagt
Invoer
1
00:00:01,000 --> 00:00:02,000
<i>Hello</i> <font color="#00ff00">there</font>.
Uitvoer
1
00:00:01,000 --> 00:00:02,000
<font color="#ffcc00"><i>Hello</i> there.</font>
Het groene bereik wordt verwijderd voordat de nieuwe kleur erop gaat, dus het resultaat is één `<font>` om de regel met het cursief er nog binnenin — geen `<font>` in een `<font>`, waar de nestregels van de speler afhangen en de uitkomst op elk apparaat stil anders is. Wat groen was, is nu dezelfde kleur als al het andere, en dat is de eerlijke lezing van een paneel dat om één kleur vraagt.
Hetzelfde blok in een ASS-bestand
Invoer
[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
Uitvoer
[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 kent geen `<font>`; de kleur is een overridecode die vóór de tekst opent en door een kale `{\c}` erna wordt gesloten, zodat de rest van de regel niet per ongeluk wordt meegeschilderd. De `PrimaryColour` van het stylesheet wordt niet bewerkt — de override op blokniveau is een sterkere instructie en de enige die alleen op dit blok van toepassing is.
Een blok zonder tekst
Invoer
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
Hi.
Uitvoer
1
00:00:01,000 --> 00:00:02,000
2
00:00:03,000 --> 00:00:04,000
<font color="#ffcc00">Hi.</font>
Het lege blok blijft leeg in plaats van een `<font>` om niets te krijgen. Een leeg blok is al een structureel probleem — de controlepagina’s melden het — en een opmaaktag zonder tekst erin lost dat niet op, het verbergt het alleen voor een zoekopdracht. Het blok dat wel tekst heeft, wordt normaal geschilderd.
Veelgestelde vragen
Naar welke formaten schrijft deze kleurpagina, en hoe ziet de markering er in elk formaat uit?
Negen: SRT, WebVTT, ASS, SSA, SBV, SAMI, TTML, JSON en CSV. SRT, WebVTT, SBV en SAMI nemen `<font color="#rrggbb">`, ASS en SSA nemen een `{\c&H…&}`-override die door `{\c}` wordt gesloten, TTML neemt `<span tts:color="#rrggbb">`, JSON schrijft de kleur als een tagbereik over de regel, en een CSV houdt dezelfde `<font>`-opmaak binnen zijn geciteerde tekstcel. Formaten zonder plek voor inline kleur worden hier helemaal niet geaccepteerd — een LRC- of MicroDVD-bestand heeft geen kleursyntaxis, dus een run daar zou een wijziging melden en niets schrijven.
Waarom staat er `&H0000CCFF&` in de ASS-uitvoer terwijl ik `#ffcc00` koos?
Omdat een ASS-kleur zijn bytes in de omgekeerde volgorde schrijft: `&HAABBGGRR`, waarbij eerst de alpha komt en daarna de paren blauw, groen en rood. `#ffcc00` is rood 255, groen 204, blauw 0, dus dat wordt alpha `00`, blauw `00`, groen `CC`, rood `FF` — `&H0000CCFF&`. De waarde is de kleur die je koos, en een speler die hem toont, toont hetzelfde geel; de getallen lijken alleen herschikt omdat het formaat ze achterstevoren opslaat.
Zal elke videospeler de nieuwe kleur echt tonen?
Nee, en dat is de eerlijke grens van deze pagina. `<font color>` maakt geen deel uit van de SRT-specificatie — het is opmaak die de meeste spelers tolereren en sommige negeren — en ASS-overridecodes worden door libass-spelers zoals VLC en mpv wel gehonoreerd, maar niet door elke hardware-settopbox. De pagina schrijft de markering correct en het resultaat is in het bestand zelf te controleren; of een bepaalde speler hem toont, is de beslissing van die speler. Moet de kleur gegarandeerd op het scherm staan, dan moet ze in het beeld worden gebrand, en dat is een ander werk.
Wat gebeurt er met kleuren die het bestand al had?
Die worden vervangen, niet bedekt. Elk kleurbereik op een regel wordt eerst verwijderd en daarna wordt één bereik over de hele regel toegevoegd, dus het resultaat is één `<font>` in plaats van een `<font>` in een `<font>`. Geneste kleurtags zijn juist het geval waarin spelers het meest van mening verschillen — de een neemt de binnenste, de ander de buitenste, een derde vlakt beide af — dus een bestand dat door deze pagina is gegaan, bevat één ondubbelzinnig antwoord.
Kleurt de pagina losse woorden of het hele ondertitelbestand?
Het hele bestand, één kleur, elke regel. Er is geen bereik per blok of per woord op deze pagina, en dat is met opzet zo: het paneel houdt één waarde, en een run waarvan het resultaat afhing van welke blokken je had aangeklikt, zou niet reproduceerbaar zijn uit het bestand. Een regel waarbij één woord eruit moet springen is een tekstbewerking in plaats van een kleurwijziging, en de zoek-en-vervangpagina’s van deze site kunnen het gerichte deel daarvan doen.
Blijven vet, cursief, onderstreping en karaoke-timing behouden wanneer de kleur wordt toegepast?
Ze blijven behouden, en hun bereiken blijven aan dezelfde tekens vastzitten. Alleen kleurbereiken worden verwijderd en opnieuw toegevoegd; de andere vier soorten blijven ongemoeid, dus een cursief woord binnen een regel blijft cursief binnen de nieuwe kleur. In ASS betekent dat dat de `{\i1}` en de bijbehorende afsluitende `{\i0}` nog op dezelfde plek rond de tekst staan, met de kleuroverride ervoor geopend en erna gesloten.