How to Use FFmpeg Vibrance Filter to Boost Colors
This article provides a quick and practical guide on how to use the
FFmpeg vibrance filter to enhance video colors. You will
learn the core command-line syntax, understand the key parameters of the
filter, and see real-world examples of how to selectively boost
unsaturated colors without over-saturating the entire image.
Understanding the Vibrance Filter
Unlike the standard saturation filter—which increases the intensity
of all colors equally and often results in blown-out skin tones—the
vibrance filter specifically targets desaturated, dull
colors. It boosts the saturation of less vibrant areas while leaving
already highly saturated colors untouched. This makes it ideal for
natural-looking color correction.
Basic Syntax
To apply the vibrance filter, use the -vf (video filter)
flag followed by vibrance and your desired parameters.
Here is the basic command template:
ffmpeg -i input.mp4 -vf "vibrance=intensity=0.5" -c:a copy output.mp4Key Parameters
The vibrance filter accepts several options to fine-tune
how colors are boosted:
intensity: Controls the strength of the color boost.- Value range:
-2.0to2.0. - Default:
0.0. - Positive values increase the saturation of unsaturated colors;
negative values decrease it. A value between
0.5and1.2is usually ideal for a natural boost.
- Value range:
r_balance,g_balance,b_balance: Adjusts the balance of the red, green, and blue channels respectively.- Value range:
0.0to10.0. - Default:
1.0. - Use these if you want to apply the vibrance effect more heavily to specific colors (e.g., boosting greens in a landscape video).
- Value range:
Practical Examples
1. Moderate Color Boost
For a subtle, realistic enhancement of dull colors in a video:
ffmpeg -i input.mp4 -vf "vibrance=intensity=0.8" -c:a copy output.mp42. Heavy Color Boost
If your video is extremely washed out, you can push the intensity higher:
ffmpeg -i input.mp4 -vf "vibrance=intensity=1.5" -c:a copy output.mp43. Enhancing Specific Channels (e.g., Landscape Greens)
To boost unsaturated colors but give extra emphasis to green tones (like grass and trees), increase the green balance:
ffmpeg -i input.mp4 -vf "vibrance=intensity=0.8:g_balance=1.5" -c:a copy output.mp4Why Use Vibrance Instead of Saturation?
If you use the standard color control filter
(-vf "eq=saturation=1.5"), FFmpeg multiplies the saturation
of every pixel. This often causes skin tones to look unnaturally orange
or red. By using -vf "vibrance=intensity=1.0", FFmpeg
intelligently preserves existing skin tones and highly saturated objects
while reviving the dull background colors.