How to Smooth Skin in FFmpeg Using Smartblur

This guide explains how to use FFmpeg's built-in smartblur filter to soften skin tones in video footage while maintaining crisp edge details such as eyes, lips, and hair. You will learn how the filter's core parameters work, the optimal settings for natural-looking cosmetic retouching, and how to execute the command.


Understanding the smartblur Parameters

The smartblur filter works by selectively applying a blur to low-contrast areas (like skin texture) while skipping high-contrast boundaries (like eyelashes or facial contours). It accepts several arguments, but the three primary ones are:

  • luma_radius (lr): Controls the size of the blur footprint. Accepts a float between 0.1 and 5.0. A radius of 1.0 to 2.5 works best for facial features.
  • luma_strength (ls): Controls blur intensity. Accepts a float between -1.0 and 1.0. Positive values blur the target areas, while negative values sharpen them. Values between 0.5 and 0.9 provide visible smoothing.
  • luma_threshold (lt): The edge-preservation gate. Accepts an integer from -30 to 30. A value above 0 preserves high-contrast edges and only blurs flat regions below the threshold. Values between 5 and 15 are typical for skin.

Similar arguments exist for chroma channels: chroma_radius (cr), chroma_strength (cs), and chroma_threshold (ct). Leaving chroma parameters unset defaults them to their respective luma values.


Basic Command Syntax

To apply skin smoothing while preserving facial details, run the following command:

ffmpeg -i input.mp4 -vf "smartblur=luma_radius=1.5:luma_strength=0.8:luma_threshold=8" -c:v libx264 -crf 18 -c:a copy output.mp4

Using the shorthand parameter syntax:

ffmpeg -i input.mp4 -vf "smartblur=lr=1.5:ls=0.8:lt=8" -c:v libx264 -crf 18 -c:a copy output.mp4

Adjust the parameters depending on the camera resolution and desired strength:

1. Subtle, Natural Blemish Reduction (1080p)

Ideal for standard talking-head videos where texture should be retained without looking artificially filtered:

ffmpeg -i input.mp4 -vf "smartblur=lr=1.2:ls=0.5:lt=10" -c:a copy output.mp4

2. Medium Smoothing (1080p / 4K)

Softens pores and minor wrinkles while keeping eyes and mouth sharp:

ffmpeg -i input.mp4 -vf "smartblur=lr=2.0:ls=0.8:lt=8:cr=1.5:cs=0.5:ct=10" -c:a copy output.mp4

3. Heavy Smoothing (Airbrushed Look)

Creates a stronger beauty-filter effect for close-ups:

ffmpeg -i input.mp4 -vf "smartblur=lr=3.0:ls=1.0:lt=5" -c:a copy output.mp4

Tips for Better Results

  • Calibrate lt first: If high-contrast details like eyelashes look blurry, increase luma_threshold (e.g., from 8 to 12). If blemishes are not smoothing out, decrease luma_threshold (e.g., from 8 to 5).
  • Scale with resolution: A 4K video requires a higher lr (around 2.5 to 3.5) to achieve the same visual softness that a 1.5 radius produces at 1080p.
  • Combine with unsharp masking: To restore clarity after smoothing, chain smartblur with an unsharp filter:
ffmpeg -i input.mp4 -vf "smartblur=lr=1.8:ls=0.7:lt=8,unsharp=5:5:0.5:5:5:0.0" -c:a copy output.mp4