Adjust brightness, contrast, saturation with eq
The eq filter is the workhorse for a quick color correction: brightness, contrast, saturation, gamma, and a per-channel red/blue/green balance. It is less precise than curves but faster to type, and the parameters are linear so you can predict the result without rendering.
The command
ffmpeg -i in.mp4 -vf "eq=brightness=0.05:contrast=1.1:saturation=1.2" -c:v libx264 -crf 20 out.mp4What it does
The `eq` filter applies a linear transform to the YUV channels. `brightness` is added to the luma in the -1 to 1 range. `contrast` is a multiplier around 1.0; 1.1 is a subtle contrast boost. `saturation` is a multiplier on the chroma planes. The defaults are 0, 1, 1 — no change. To shift the color temperature, add `gamma_r`, `gamma_g`, `gamma_b` to adjust each channel's gamma.
Requirements
Any video input. The filter is in libavfilter. CPU-only, single-pass. The default values are sensible, so leaving a parameter out of the expression is safe.
Things to avoid
- Using values far from 1.0. A contrast of 2.0 will clip the highlights to pure white; a brightness of 0.5 will lift the blacks and add a permanent gray cast.
- Applying eq after a heavy denoise. The denoise softens the contrast, so the eq you choose will look different than it did on the source.
- Forgetting that the parameters are not in display units. `brightness=0.1` is a 10% luma offset, not a 10 IRE step.
- Combining eq with a curves filter on the same channel. The two will compound, and the second filter sees the first filter's output as its input.