Use FFmpeg owdenoise Filter for Video Denoising
This guide explains how to use FFmpeg's owdenoise
(Overcomplete Wavelet Denoiser) filter to remove noise and grain from
video files. You will learn the syntax of the filter, understand its
core parameters, and see practical command-line examples ranging from
basic usage to fine-tuned noise reduction.
Understanding the owdenoise Filter
The owdenoise filter applies a 2D wavelet transform to
each video frame to separate fine details from noise. Because it is an
overcomplete transform, it reduces visual artifacts (like ringing)
better than standard discrete wavelet transforms, though it requires
more processing power.
The filter accepts three main parameters:
depth: The wavelet decomposition depth. Allowed values range from8to16(default is8). Higher values allow the filter to target larger, lower-frequency noise patterns, but significantly increase encoding time.luma_strength(orls): The denoising strength applied to the brightness (Y) channel. The default is1.0. Higher values yield stronger smoothing.chroma_strength(orcs): The denoising strength applied to the color (U and V) channels. If omitted, it defaults to the value ofluma_strength * 1.0.
Basic Usage
To run the filter with default settings (depth=8,
luma_strength=1.0, chroma_strength=1.0), use
the -vf flag:
ffmpeg -i input.mp4 -vf "owdenoise" -c:v libx264 -crf 18 -c:a copy output.mp4Customizing Denoising Strength
If the default setting removes too much detail or leaves too much grain, specify custom values using parameter names or positional arguments:
ffmpeg -i input.mp4 -vf "owdenoise=depth=8:luma_strength=1.5:chroma_strength=1.2" -c:v libx264 -crf 18 -c:a copy output.mp4You can achieve the same result using positional shorthand
(depth:luma_strength:chroma_strength):
ffmpeg -i input.mp4 -vf "owdenoise=8:1.5:1.2" -c:v libx264 -crf 18 -c:a copy output.mp4Treating Chroma Noise Separately
Sensor noise in low-light digital video often manifests as color
blotches while luminance detail remains sharp. To aggressively reduce
color noise without blurring edge details, keep
luma_strength low and raise
chroma_strength:
ffmpeg -i input.mp4 -vf "owdenoise=depth=8:luma_strength=0.5:chroma_strength=2.5" -c:v libx264 -crf 18 -c:a copy output.mp4Handling Coarse, Low-Frequency Noise
For heavy, blotchy noise, increase the depth parameter
up to 10 or 12:
ffmpeg -i input.mp4 -vf "owdenoise=depth=10:luma_strength=2.0:chroma_strength=1.5" -c:v libx264 -crf 18 -c:a copy output.mp4Testing Settings on Short Clips
Because owdenoise is computationally demanding, preview
your adjustments on a short section of the video before processing an
entire file:
ffmpeg -ss 00:01:00 -i input.mp4 -t 10 -vf "owdenoise=depth=8:luma_strength=1.2:chroma_strength=1.0" -c:v libx264 -crf 18 -c:a copy preview.mp4This command skips to the 1-minute mark (-ss 00:01:00)
and renders a 10-second sample (-t 10) to let you evaluate
the balance between noise removal and sharpness.