关于 ffmpeg-noise-reduction
这是面向 FFmpeg 音视频降噪工作流的参考指南,适合处理低光、高 ISO、胶片颗粒、压缩伪影及录音噪声。指南列出多种视频与音频滤镜,并提供参数调节和组合处理示例。
主要功能
- 01使用多种滤镜降低视频噪声
- 02通过 Vulkan 或 OpenCL 加速降噪
- 03清理音频噪声、点击声与削波
- 04调整降噪强度、阈值和处理平面
- 05组合视频、音频增强滤镜
适用场景
- 01清理低光或高 ISO 视频
- 02减少胶片颗粒和压缩伪影
- 03降低采访录音中的背景噪声
- 04在编码前批量处理噪声素材
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill ffmpeg-noise-reduction安装后在 Claude Code 中输入/ffmpeg-noise-reduction确认已加载。
详细介绍
关键指南
Windows 文件路径要求
强制要求:在 Windows 上始终使用反斜杠表示文件路径
在 Windows 上使用 Edit 或 Write 工具时,必须在文件路径中使用反斜杠(\),而非正斜杠(/)。
快速参考
| 任务 | 滤镜 | 命令模式 |
|---|---|---|
| 视频降噪(最佳) | nlmeans | -vf nlmeans=s=3:p=7:r=15 |
| 视频降噪(快速) | hqdn3d | -vf hqdn3d=4:3:6:4.5 |
| GPU 视频降噪 | nlmeans_vulkan | -vf nlmeans_vulkan |
| 音频降噪 | afftdn | -af afftdn=nf=-25 |
| 自适应时域降噪 | atadenoise | -vf atadenoise |
何时使用此技能
适用于降噪工作流:
- 清理弱光或高 ISO 拍摄的素材
- 去除胶片颗粒
- 减少压缩伪影
- 清理音频录音
- 清理广播信号
- 编码前预处理
FFmpeg 降噪(2025)
视频和音频降噪滤镜综合指南。
视频降噪
nlmeans - 非局部均值(质量最佳)
质量最高的软件降噪器,采用非局部均值算法。
# Basic denoising
ffmpeg -i noisy.mp4 -vf "nlmeans" output.mp4
# Medium denoising (good default)
ffmpeg -i noisy.mp4 -vf "nlmeans=s=3.0:p=7:r=15" output.mp4
# Strong denoising (very noisy footage)
ffmpeg -i noisy.mp4 -vf "nlmeans=s=5.0:p=7:r=15" output.mp4
# Light denoising (preserve detail)
ffmpeg -i noisy.mp4 -vf "nlmeans=s=1.5:p=5:r=9" output.mp4
# Denoise only chroma (preserve luma detail)
ffmpeg -i noisy.mp4 -vf "nlmeans=s=3.0:sc=5.0:p=7:r=15" output.mp4
参数:
| 参数 | 描述 | 默认值 | 范围 |
|---|---|---|---|
s | 降噪强度(sigma) | 1.0 | 0-30 |
p | 块大小 | 7 | 1-99(奇数) |
pc | 色度块大小 | 0(与 p 相同) | 1-99 |
r | 搜索窗口大小 | 15 | 1-99(奇数) |
rc | 色度搜索窗口大小 | 0(与 r 相同) | 1-99 |
强度参考:
| s 值 | 适用情况 |
|---|---|
| 1.0-2.0 | 轻微噪声,保留细节 |
| 2.0-4.0 | 中等噪声(常见情况) |
| 4.0-6.0 | 严重噪声,弱光环境 |
| 6.0+ | 极重噪声(画质损失) |
nlmeans_opencl - GPU 加速的 NLMeans
OpenCL 加速版本,速度快得多。
# OpenCL denoising
ffmpeg -i noisy.mp4 \
-vf "hwupload,nlmeans_opencl=s=3:p=7:r=15,hwdownload,format=yuv420p" \
output.mp4
# Strong denoising with OpenCL
ffmpeg -i noisy.mp4 \
-vf "hwupload,nlmeans_opencl=s=5:p=7:r=21,hwdownload,format=yuv420p" \
output.mp4
nlmeans_vulkan - Vulkan 加速的 NLMeans(FFmpeg 8.0+)
使用 Vulkan 实现跨平台 GPU 加速。
# Vulkan denoising
ffmpeg -init_hw_device vulkan \
-i noisy.mp4 \
-vf "hwupload,nlmeans_vulkan=s=3:p=7:r=15,hwdownload,format=yuv420p" \
output.mp4
# Full Vulkan pipeline
ffmpeg -init_hw_device vulkan=vk \
-filter_hw_device vk \
-hwaccel vulkan -hwaccel_output_format vulkan \
-i noisy.mp4 \
-vf "nlmeans_vulkan=s=3" \
-c:v h264_vulkan output.mp4
hqdn3d - 高质量 3D 降噪器(快速)
速度快于 nlmeans,适用于中等噪声,效果良好。
# Default settings
ffmpeg -i noisy.mp4 -vf "hqdn3d" output.mp4
# Custom settings (luma_spatial:chroma_spatial:luma_tmp:chroma_tmp)
ffmpeg -i noisy.mp4 -vf "hqdn3d=4:3:6:4.5" output.mp4
# Strong spatial denoising
ffmpeg -i noisy.mp4 -vf "hqdn3d=8:6:6:4" output.mp4
# Strong temporal denoising (for static scenes)
ffmpeg -i noisy.mp4 -vf "hqdn3d=4:3:12:9" output.mp4
# Light denoising
ffmpeg -i noisy.mp4 -vf "hqdn3d=2:1.5:3:2" output.mp4
参数:
| 参数 | 描述 | 默认值 | 范围 |
|---|---|---|---|
luma_spatial | 亮度空间强度 | 4.0 | 0-255 |
chroma_spatial | 色度空间强度 | 3.0 | 0-255 |
luma_tmp | 亮度时域强度 | 6.0 | 0-255 |
chroma_tmp | 色度时域强度 | 4.5 | 0-255 |
atadenoise - 自适应时域平均
保留运动的时域降噪器。
# Basic temporal denoising
ffmpeg -i noisy.mp4 -vf "atadenoise" output.mp4
# Stronger denoising
ffmpeg -i noisy.mp4 -vf "atadenoise=0a=0.1:0b=0.2:1a=0.1:1b=0.2:2a=0.1:2b=0.2" output.mp4
# Adjust threshold and planes
ffmpeg -i noisy.mp4 -vf "atadenoise=s=9:p=5" output.mp4
参数:
| 参数 | 描述 | 默认值 |
|---|---|---|
0a、1a、2a | 平面 0、1、2 的阈值 A | 0.02 |
0b、1b、2b | 平面 0、1、2 的阈值 B | 0.04 |
s | 参与平均的帧数 | 9 |
p | 要处理的平面 | 7(全部) |
vaguedenoiser - 小波降噪器
使用小波变换进行降噪。
# Basic wavelet denoising
ffmpeg -i noisy.mp4 -vf "vaguedenoiser" output.mp4
# Adjust threshold
ffmpeg -i noisy.mp4 -vf "vaguedenoiser=threshold=3:method=soft" output.mp4
# Stronger denoising
ffmpeg -i noisy.mp4 -vf "vaguedenoiser=threshold=6:nsteps=6" output.mp4
参数:
| 参数 | 描述 | 默认值 | 取值 |
|---|---|---|---|
threshold | 降噪阈值 | 2 | 0-inf |
method | 阈值处理方法 | hard | hard、soft、garrote |
nsteps | 分解步数 | 6 | 1-32 |
percent | 完整降噪程度的百分比 | 85 | 0-100 |
fftdnoiz - 基于 FFT 的降噪
频域降噪。
# Basic FFT denoising
ffmpeg -i noisy.mp4 -vf "fftdnoiz" output.mp4
# Adjust sigma
ffmpeg -i noisy.mp4 -vf "fftdnoiz=sigma=8" output.mp4
# Strong denoising
ffmpeg -i noisy.mp4 -vf "fftdnoiz=sigma=15:block=32:overlap=0.8" output.mp4
owdenoise - 过完备小波降噪器
另一种基于小波的方案。
# Basic wavelet denoising
ffmpeg -i noisy.mp4 -vf "owdenoise" output.mp4
# Adjust depth and strength
ffmpeg -i noisy.mp4 -vf "owdenoise=depth=10:ls=3:cs=3" output.mp4
removegrain - RemoveGrain
经典的颗粒/噪声去除工具(来自 AviSynth)。
# Mode 1 (basic)
ffmpeg -i noisy.mp4 -vf "removegrain=m0=1" output.mp4
# Different modes for different noise types
ffmpeg -i noisy.mp4 -vf "removegrain=m0=17:m1=17:m2=17" output.mp4
音频降噪
afftdn - FFT 降噪器(推荐)
使用 FFT 进行强力音频降噪。
# Basic audio denoising
ffmpeg -i noisy_audio.mp4 -af "afftdn" output.mp4
# Specify noise floor
ffmpeg -i noisy_audio.mp4 -af "afftdn=nf=-25" output.mp4
# Stronger noise reduction
ffmpeg -i noisy_audio.mp4 -af "afftdn=nf=-20:nt=w" output.mp4
# With noise profile (sample noise-only section first)
ffmpeg -i noisy_audio.mp4 -af "afftdn=nr=10:nf=-30:nt=w:om=o" output.mp4
# Adaptive noise floor
ffmpeg -i noisy_audio.mp4 -af "afftdn=nt=c:om=o:bn=9" output.mp4
参数:
| 参数 | 描述 | 默认值 | 范围 |
|---|---|---|---|
nr | 降噪量(dB) | 12 | 0.01-97 |
nf | 噪声底限(dB) | -50 | -80 至 -20 |
nt | 噪声类型 | w | w=白噪声、v=黑胶唱片、s=虫胶唱片、c=自定义 |
bn | 噪声频带数 | 15 | 3-33 |
rf | 残余底限(dB) | -38 | -80 至 -20 |
om | 输出模式 | o | i=输入、o=输出、n=噪声 |
anlmdn - 非局部均值音频降噪器
视频 nlmeans 的音频版本。
# Basic NLM audio denoising
ffmpeg -i noisy_audio.mp4 -af "anlmdn" output.mp4
# Adjust strength
ffmpeg -i noisy_audio.mp4 -af "anlmdn=s=0.0001" output.mp4
# Stronger denoising
ffmpeg -i noisy_audio.mp4 -af "anlmdn=s=0.001:p=0.01" output.mp4
参数:
| 参数 | 描述 | 默认值 |
|---|---|---|
s | 降噪强度 | 0.00001 |
p | 图块半径 | 0.002 |
r | 搜索半径 | 0.006 |
m | 输出模式 | o(输出) |
adeclick - 去除咔嗒声/爆音
去除音频中的脉冲噪声。
# Remove clicks
ffmpeg -i clicked_audio.mp4 -af "adeclick" output.mp4
# Adjust parameters
ffmpeg -i clicked_audio.mp4 -af "adeclick=w=55:o=75" output.mp4
adeclip - 去除削波
修复削波音频。
# Fix clipping
ffmpeg -i clipped_audio.mp4 -af "adeclip" output.mp4
组合工作流
低光视频增强
# Denoise + brighten + contrast
ffmpeg -i dark_noisy.mp4 \
-vf "nlmeans=s=4:p=7:r=15,eq=brightness=0.1:contrast=1.2:saturation=1.1" \
-c:v libx264 -crf 18 \
enhanced.mp4
采访素材清理(视频 + 音频)
# Clean both video and audio noise
ffmpeg -i interview.mp4 \
-vf "hqdn3d=3:2:4:3" \
-af "afftdn=nf=-30:nr=10,loudnorm" \
-c:v libx264 -crf 20 \
-c:a aac -b:a 192k \
interview_clean.mp4
胶片颗粒去除
# Strong nlmeans for film grain
ffmpeg -i grainy_film.mp4 \
-vf "nlmeans=s=5:p=7:r=21" \
-c:v libx264 -crf 18 -preset slow \
degrained.mp4
# Preserve some grain (artistic choice)
ffmpeg -i grainy_film.mp4 \
-vf "nlmeans=s=2.5:p=5:r=11" \
-c:v libx264 -crf 18 \
light_degrain.mp4
压缩伪影去除
# Remove blocking artifacts from highly compressed video
ffmpeg -i compressed.mp4 \
-vf "hqdn3d=2:1.5:3:2,unsharp=5:5:0.3:5:5:0" \
-c:v libx264 -crf 18 \
cleaner.mp4
GPU 加速批处理
#!/bin/bash
# Process multiple noisy videos with GPU
for video in noisy_*.mp4; do
output="clean_${video}"
ffmpeg -init_hw_device vulkan \
-i "$video" \
-vf "hwupload,nlmeans_vulkan=s=3,hwdownload,format=yuv420p" \
-c:v libx264 -crf 18 \
"$output"
done
滤镜对比
视频降噪速度与质量
| 滤镜 | 质量 | 速度 | GPU 选项 | 最适合 |
|---|---|---|---|---|
nlmeans | 极佳 | 慢 | 是(OpenCL/Vulkan) | 最终输出 |
hqdn3d | 良好 | 快 | 否 | 实时处理、预览 |
atadenoise | 良好 | 中等 | 否 | 静态场景 |
vaguedenoiser | 良好 | 中等 | 否 | 混合内容 |
fftdnoiz | 良好 | 中等 | 否 | 周期性噪声 |
音频降噪对比
| 滤镜 | 质量 | 速度 | 最适合 |
|---|---|---|---|
afftdn | 极佳 | 快 | 通用场景 |
anlmdn | 良好 | 中等 | 语音 |
adeclick | 专用 | 快 | 咔嗒声/爆音 |
参数调节技巧
视频降噪
- 从保守设置开始 - 先使用 s=2-3,根据需要调高
- 保留边缘 - 降低图块尺寸(p=5)可保留更多细节
- 在样片上测试 - 先处理 10 秒片段
- 考虑使用 GPU - nlmeans_opencl/vulkan 的速度快 5-10 倍
- 匹配内容 - 静态场景可承受更强的时域降噪
音频降噪
- 确定噪声底 - 聆听安静片段
- 选择合适的类型 - 白噪声、黑胶噪声或自定义类型
- 不要过度处理 - 伪影可能比噪声更糟
- 检查残留 - 使用 om=n 聆听被移除的声音
最佳实践
- 在编码前降噪 - 噪声不易压缩
- 保留一些纹理 - 过度降噪会显得不自然
- 匹配源素材质量 - 不要对干净的素材降噪
- 有 GPU 时使用 GPU - 可大幅提升速度
- 谨慎组合滤镜 - 多个降噪器可能造成伪影
- 测试不同滤镜 - 结果取决于内容
本指南介绍 2025 年的降噪方法。有关视频分析和检测,请参阅 ffmpeg-video-analysis。有关硬件加速,请参阅 ffmpeg-hardware-acceleration。
评论
支持 Markdown