How to Use FFmpeg Monochrome Filter for Custom B&W
This guide explains how to use FFmpeg's dedicated
monochrome video filter to transform standard color footage
into customized black and white imagery. By manipulating key filter
options—specifically color balance offsets, effect intensity, and
highlight retention—you can simulate traditional optical lens filters,
craft cinematic film styles, and establish distinct visual presets
directly from the command line.
Understanding the
monochrome Filter
The FFmpeg monochrome filter converts video frames to
grayscale based on chrominance and luminance interactions rather than
merely desaturating the image. The filter accepts four primary
parameters:
cb: Sets the blue-difference color balance offset. Accepts floating-point values from-1.0to1.0(default is0.0). Negative values darken blue spectrums, while positive values lighten them.cr: Sets the red-difference color balance offset. Accepts floating-point values from-1.0to1.0(default is0.0). Adjusting this shifts the tonal response of red and skin tones.size: Controls the effect area and transition steepness. Accepts values from0.1to10.0(default is1.0).high: Sets highlight preservation and threshold blending. Accepts values from0.0to1.0(default is0.0). Higher values prevent bright areas from blowing out or clipping prematurely.
Basic Command Syntax
The standard implementation applies the filter via the
-vf (video filter) flag:
ffmpeg -i input.mp4 -vf "monochrome=cb=0.0:cr=0.0:size=1.0:high=0.0" -c:a copy output.mp4Custom Black and White Profiles
By combining different values for cb, cr,
size, and high, you can create specific
photographic profiles.
1. Dramatic Landscape (Red Filter Simulation)
In traditional black and white photography, a red filter darkens blue
skies and foliage while making clouds and warm highlights pop. To
achieve this look, increase cr and lower
cb:
ffmpeg -i input.mp4 -vf "monochrome=cr=0.5:cb=-0.4:size=1.2:high=0.2" -c:a copy landscape_bw.mp42. Smooth Portrait (Yellow/Orange Filter Simulation)
To smooth skin tones, reduce blemishes, and keep mid-tone transitions soft without harsh contrasts, boost red slightly and preserve highlights:
ffmpeg -i input.mp4 -vf "monochrome=cr=0.25:cb=-0.1:size=0.8:high=0.4" -c:a copy portrait_bw.mp43. Deep Foliage and Contrast (Green Filter Simulation)
A green-biased look darkens skin tones and brightens vegetation, creating an earthy, vintage tone. This is simulated by driving both red and blue downward:
ffmpeg -i input.mp4 -vf "monochrome=cr=-0.3:cb=-0.3:size=1.0:high=0.1" -c:a copy green_tone_bw.mp44. High-Key / Soft Monochrome
For scenes requiring bright, dreamy visuals with minimal deep shadows, reduce the effect size and maximize highlight retention:
ffmpeg -i input.mp4 -vf "monochrome=cr=0.0:cb=0.0:size=0.5:high=0.8" -c:a copy high_key_bw.mp45. High-Contrast Noir
To create aggressive, dark shadows with stark white highlights
suitable for a classic film noir look, expand the size
parameter while setting high to zero:
ffmpeg -i input.mp4 -vf "monochrome=cr=0.2:cb=-0.3:size=2.5:high=0.0" -c:a copy noir_bw.mp4Chaining with Exposure Controls
To refine a custom profile further, chain the monochrome
filter with the eq filter to fine-tune final brightness,
contrast, or gamma:
ffmpeg -i input.mp4 -vf "monochrome=cr=0.4:cb=-0.2:size=1.5:high=0.1,eq=contrast=1.15:brightness=-0.02" -c:v libx264 -crf 18 -c:a copy custom_profile.mp4Testing small increments of 0.1 on cb and
cr allows you to dial in the precise tonal separation
required for your source material.