InspiredWindsInspiredWinds
  • Business
  • Computers
  • Cryptocurrency
  • Education
  • Gaming
  • News
  • Sports
  • Technology
Reading: How to Use FFmpeg NLMeans Filter (Examples)
Share
Aa
InspiredWindsInspiredWinds
Aa
  • Business
  • Computers
  • Cryptocurrency
  • Education
  • Gaming
  • News
  • Sports
  • Technology
Search & Hit Enter
  • Business
  • Computers
  • Cryptocurrency
  • Education
  • Gaming
  • News
  • Sports
  • Technology
  • About
  • Contact
  • Terms and Conditions
  • Privacy Policy
  • Write for us
InspiredWinds > Blog > Technology > How to Use FFmpeg NLMeans Filter (Examples)
Technology

How to Use FFmpeg NLMeans Filter (Examples)

Ethan Martinez
Last updated: 2026/01/28 at 5:37 AM
Ethan Martinez Published January 28, 2026
Share
SHARE

FFmpeg is a powerful multimedia framework capable of decoding, encoding, transcoding, muxing, demuxing, streaming, filtering, and playing nearly anything humans and machines have created. One lesser-known but very effective tool in its arsenal is the NLMeans filter, used primarily for video denoising. As high-definition content becomes more common and preservation of source quality more important, understanding how to apply noise reduction correctly can make a significant difference in the perceived quality of your videos.

Contents
TL;DRWhat is the NLMeans Filter?Basics of Using NLMeans in FFmpegNLMeans Syntax and ParametersExamples of Applying NLMeans1. Basic Denoising2. Custom Strength for Heavier Noise3. Ignore Chroma for Faster Processing4. Optimizing for Film Restoration5. Using Multi-threading for SpeedBest Practices for Using NLMeansVisual Comparison of DenoisingAdvanced Tip: Combine with Other FiltersLimitations of NLMeansConclusion

TL;DR

The NLMeans filter in FFmpeg is a non-local means denoising algorithm that can reduce grain and other types of noise in video footage without significantly degrading details. It’s particularly effective for night shots and high ISO footage commonly found in consumer and DSLR cameras. You can adjust parameters like strength and patch size to fine-tune the filter depending on your needs. This guide walks you through the basics of using NLMeans with practical examples.

What is the NLMeans Filter?

NLMeans stands for Non-Local Means, a denoising algorithm that removes noise by comparing every pixel with other pixels in the image, even those far away, and averaging similar ones together. Unlike spatial filters that may blur the image, NLMeans attempts to preserve structure and detail.

Use Cases:

  • Reducing noise in low-light videos
  • Denoising old film or analog transfers
  • Preparing footage for compression without amplifying grain

Basics of Using NLMeans in FFmpeg

To apply the NLMeans filter, you need a version of FFmpeg compiled with the nlmeans filter enabled. Most current static builds already include it. The general command structure is:

ffmpeg -i input.mp4 -vf "nlmeans" output.mp4

This command applies the filter with default settings. While that might already yield better-looking results, there are several parameters you can tune to improve performance and customize results.

NLMeans Syntax and Parameters

Here’s the general syntax for the filter:

nlmeans=s=VALUE:p=VALUE:r=VALUE:c=VALUE

Parameter Descriptions:

  • s: Strength of the denoising filter. Higher values give stronger denoising but may blur details. Default is 1.0.
  • p: Patch size. This determines the size of areas FFmpeg compares. Larger patches might result in better denoising at increased computational cost. Default is 7.
  • r: Research window radius. This determines how far to search for similar patches. A larger radius means more processing time. Default is 7.
  • c: Whether to treat chroma (color) channels. 1 to process chroma, 0 for only luma. Default is 1.

Examples of Applying NLMeans

1. Basic Denoising

To apply the filter with default parameters:

ffmpeg -i noisy.mp4 -vf "nlmeans" denoised.mp4

This will denoise both chroma and luma channels using preset defaults.

2. Custom Strength for Heavier Noise

If your clip has strong noise, especially in low light, try increasing the strength parameter:

ffmpeg -i input.mp4 -vf "nlmeans=s=2.5" output.mp4

The denoising will be much stronger at the cost of potential detail loss.

3. Ignore Chroma for Faster Processing

If your concern is mostly luminance grain and you want faster encoding:

ffmpeg -i input.mp4 -vf "nlmeans=s=1.8:c=0" output.mp4

This restricts denoising to the brightness values (luma), saving time and preserving color saturation.

4. Optimizing for Film Restoration

When working with digitized film that contains random film grain, the following configuration typically works well:

ffmpeg -i filmreel.mov -vf "nlmeans=s=3.0:p=9:r=10" restored.mov

Here:

  • s=3.0 is a high strength useful for heavy, uniform noise
  • p=9 enlarges the area compared
  • r=10 broadens the search area for similar image patches

This configuration runs much slower but offers high-quality output, often indistinguishable from a professionally cleaned restoration.

5. Using Multi-threading for Speed

If processing speed is an issue, FFmpeg allows multi-threading to accelerate computation:

ffmpeg -i input.mp4 -vf "nlmeans=s=2" -threads 8 output.mp4

This uses eight threads (if your system supports it). Keep in mind, the NLMeans algorithm is inherently CPU-intensive.

Best Practices for Using NLMeans

  • Preview Before Batch Processing: Always test your filter settings on short clips first to avoid time loss or unsatisfactory results.
  • Measure Encoding Time: The NLMeans filter is performance-heavy. Use it only where necessary, not during initial viewing copies or draft renders.
  • Consider Resolution: High bitrate 4K or 1080p footage will take significantly longer to process. For faster results, consider downscaling prior to denoising and then upscaling afterward (if acceptable for your use case).
  • Backup Everything: Especially when working with archival footage, always preserve your source file.

Visual Comparison of Denoising

Before and after comparisons are an excellent way to understand the impact of NLMeans. In most cases, grain, blotches, and chroma noise are substantially reduced, enhancing subject clarity and overall contrast.

You can create side-by-side comparisons using FFmpeg’s hstack filter:

ffmpeg -i input.mp4 -i denoised.mp4 -filter_complex "hstack" comparison.mp4

This enables a clear reference to evaluate the applicability of your chosen parameters.

Advanced Tip: Combine with Other Filters

The NLMeans filter can be used in a chain with other FFmpeg filters to further improve quality. For example, combining with the eq filter:

ffmpeg -i input.mp4 -vf "nlmeans=s=1.5,eq=contrast=1.1:brightness=0.05" enhanced.mp4

In this case, slight contrast and brightness adjustments can compensate for the flattened look denoising sometimes introduces.

Limitations of NLMeans

While powerful, non-local means denoising can’t fix every noisy video and has its drawbacks:

  • Slow encoding, especially at higher resolutions or aggressive settings
  • Potentially removes fine detail if strength values are set too high
  • Not optimized for real-time use — ideal for archiving or final production

However, when applied carefully, it can rival dedicated plugins in commercial video editors — at no cost, and with full automated processing capabilities.

Conclusion

FFmpeg’s NLMeans filter offers a serious, professional-grade denoising option for video editors, preservationists, and amateur filmmakers. By tuning just a few parameters, you can achieve drastically cleaner-looking video without sacrificing key content. While it does come at the cost of substantial compute time, its results can often exceed even paid alternatives when used skillfully.

Whether you’re restoring historical media, producing cinematic content, or just trying to polish up some family footage, learning how to properly apply NLMeans can elevate your entire video workflow.

Remember: always experiment using short sections first, and be conservative with strength parameters unless you’re dealing with aggressive noise. Happy filtering!

Ethan Martinez January 28, 2026
Share this Article
Facebook Twitter Whatsapp Whatsapp Telegram Email Print
By Ethan Martinez
I'm Ethan Martinez, a tech writer focused on cloud computing and SaaS solutions. I provide insights into the latest cloud technologies and services to keep readers informed.

Latest Update

How to Use FFmpeg NLMeans Filter (Examples)
Technology
How to Configure FileZilla FTP Server: A Complete Guide
Technology
How to Show Hidden Files in WinSCP
Technology
How to Pause and Resume Transfers in FileZilla
Technology
Unraveling the Story Behind Mysterious Caller ID Numbers
Technology
What Does Off Market Mean: A Complete Guide to Hidden Property Opportunities
Technology

You Might Also Like

Technology

How to Configure FileZilla FTP Server: A Complete Guide

7 Min Read
Technology

How to Show Hidden Files in WinSCP

8 Min Read

How to Pause and Resume Transfers in FileZilla

8 Min Read
Technology

Unraveling the Story Behind Mysterious Caller ID Numbers

8 Min Read

© Copyright 2022 inspiredwinds.com. All Rights Reserved

  • About
  • Contact
  • Terms and Conditions
  • Privacy Policy
  • Write for us
Like every other site, this one uses cookies too. Read the fine print to learn more. By continuing to browse, you agree to our use of cookies.X

Removed from reading list

Undo
Welcome Back!

Sign in to your account

Lost your password?