Video Turned Gray After Transcoding: BT.601 vs BT.709
Same video, two apps: colors fine in one, veiled in gray in the other. That veil is not an artistic choice - it is a color matrix flag that got lost somewhere in the pipeline.
How color actually goes wrong
Video is stored as YUV (luma plus chroma) but displayed as RGB, and the conversion depends on a fixed matrix. HD standardized on BT.709; the SD era used BT.601. The coefficients differ, so decoding one against the other shifts everything: blacks lift (the gray veil), saturation drops, and skin drifts toward green or magenta.
Every file should carry a flag declaring which matrix it was encoded with. Present and correct, decoders comply. Missing or wrong, they guess - and a 601 stream read as 709 (or the reverse) shifts color. Grayscale and skin tones expose it first.
Where this bites most often
SD footage inside HD timelines: old DV captures and early downloads are 601, your HD footage is 709, and one of them always looks off when mixed. Phone clips that pass through multiple apps lose flags when a tool re-encodes without carrying metadata. Some web converters never write the flag at all and hope the player guesses right.
Diagnostic trick: if the same file shows different colors in different players, suspect flags rather than corruption - players simply guess differently when the declaration is missing.
A repair order that works
First inspect the source with a detection tool - pixel format and color flags. Then re-encode once with the correct matrix declared; color snaps back. Finally verify on footage containing faces and shadows, the two most sensitive subjects for black level and skin tone.
If the original is gone and only the gray version remains, recovery depends on how deep the damage goes: a single matrix misread is reversible by reinterpreting with the correct matrix, but stacked unflagged transcodes compound losses that cannot be undone. Standardize color flags before footage enters a project - prevention beats surgery.