Apply a retro VHS effect

useful tips

// what it does

Chains four -vf filters in sequence to fake aged tape: curves=vintage applies a faded warm tone curve, noise=alls=40:allf=t adds strength-40 grain (alls is all_strength on a 0-100 scale) with the temporal flag so it flickers per frame, hue=s=0.5 halves saturation, and eq lifts contrast while dropping brightness and saturation further. Because these are ordinary video filters, the whole stream is decoded and re-encoded. Use it for a quick stylized retro pass without a color grade in an editor.

// shell

$ ffmpeg -i input.mp4 -vf "curves=vintage,noise=alls=40:allf=t,hue=s=0.5,eq=contrast=1.3:brightness=-0.05:saturation=0.7" output.mp4

// gotcha

Temporal noise (allf=t) changes every frame and is high-entropy, so it wrecks inter-frame compression and inflates the output bitrate/size; note also that hue=s=0.5 and eq=saturation=0.7 multiply (0.35x combined), so it's easy to overshoot into near-grayscale.