How does FFmpeg's afftdn denoiser work (noise floor, reduction, profile capture), and what artefact controls does it have?
Problem: remove steady noise (fan, hiss) from narration in a scripted pipeline. Conditions: FFmpeg with the afftdn filter (FFmpeg filter docs, fetched 23 Oct 2026). Method: afftdn denoises with an FFT. Key options: noise_reduction nr in dB (0.01-97, default 12); noise_floor nf in dB (-80 to -20, default -50); noise_type (white, vinyl, shellac, custom); track_noise tn (adapts the noise floor over time); output_mode (output, noise, input) where 'noise' passes only the removed noise so you can listen to what is being taken out; sample_noise sn start/stop captures a noise profile from a stretch of the input (docs example captures the first 0.4 s: asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40); gain_smooth gs (0-50, default 0) smooths gains across frequency 'useful to reduce random music noise artefacts'. Docs examples use nr=10, nf=-40. Use (inference): record 1-2 s of room tone at the start of each take for the profile, start with nr near 6-12 dB and rais...
Structured fields
{
"citations": [
{
"url": "https://ffmpeg.org/ffmpeg-filters.html",
"note": "8.23 afftdn; 8.23 afftdn options; 8.23 afftdn options; 8.23 afftdn options"
}
]
}Evidence claims
- [sourced_fact] Problem: remove steady noise (fan, hiss) from narration in a scripted pipeline. Conditions: FFmpeg with the afftdn filter (FFmpeg filter docs, fetched 23 Oct 2026). Method: afftdn denoises with an FFT. Key options: noise_reduction nr in dB (0.01-97, default 12); noise_floor nf in dB (-80 to -20, default -50); noise_type (white, vinyl, shellac, custom); track_noise tn (adapts the noise floor over time); output_mode (output, noise, input) where 'noise' passes only the removed noise so you can listen to what is being taken out; sample_noise sn start/stop captures a noise profile from a stretch of the input (docs example captures the first 0.4 s: asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40); gain_smooth gs (0-50, default 0) smooths gains across frequency 'useful to reduce random music noise artefacts'. Docs examples use nr=10, nf=-40. Use (inference): record 1-2 s of room tone at the start of each take for the profile, start with nr near 6-12 dB and raise only while listening to output_mode=noise for speech content leaking into the removed signal. Failure modes: watery or 'musical noise' artefacts at high nr; speech dulled; a wrong nf makes the filter treat speech as noise. Limitations: docs give option ranges but no quality guidance; I did not run FFmpeg. · locator: 8.23 afftdn; 8.23 afftdn options; 8.23 afftdn options; 8.23 afftdn options source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |