ffmpeg-noise-reduction
Complete FFmpeg noise reduction and denoising for video and audio. PROACTIVELY activate for: (1) Video denoising (nlmeans, hqdn3d, vaguedenoiser), (2) Hardware-accelerated denoising (nlmeans_opencl, nlmeans_vulkan), (3) Audio noise reduction (afftdn, anlmdn), (4) Film grain removal, (5) Low-light footage enhancement, (6) Compression artifact removal, (7) Broadcast noise reduction, (8) Clean audio recordings. Provides: Denoising filters, parameter tuning, hardware acceleration, quality/speed tradeoffs.
What this skill does
## CRITICAL GUIDELINES ### Windows File Path Requirements **MANDATORY: Always Use Backslashes on Windows for File Paths** When using Edit or Write tools on Windows, you MUST use backslashes (`\`) in file paths, NOT forward slashes (`/`). --- ## Quick Reference | Task | Filter | Command Pattern | |------|--------|-----------------| | Video denoising (best) | `nlmeans` | `-vf nlmeans=s=3:p=7:r=15` | | Video denoising (fast) | `hqdn3d` | `-vf hqdn3d=4:3:6:4.5` | | GPU video denoising | `nlmeans_vulkan` | `-vf nlmeans_vulkan` | | Audio denoising | `afftdn` | `-af afftdn=nf=-25` | | Adaptive temporal | `atadenoise` | `-vf atadenoise` | ## When to Use This Skill Use for **noise reduction workflows**: - Cleaning low-light or high-ISO footage - Removing film grain - Reducing compression artifacts - Cleaning audio recordings - Broadcast signal cleanup - Pre-processing before encoding --- # FFmpeg Noise Reduction (2025) Comprehensive guide to video and audio denoising filters. ## Video Denoising ### nlmeans - Non-Local Means (Best Quality) The highest quality software denoiser, using non-local means algorithm. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | Range | |-----------|-------------|---------|-------| | `s` | Denoising strength (sigma) | 1.0 | 0-30 | | `p` | Patch size | 7 | 1-99 (odd) | | `pc` | Patch size for chroma | 0 (same as p) | 1-99 | | `r` | Research window size | 15 | 1-99 (odd) | | `rc` | Research window for chroma | 0 (same as r) | 1-99 | **Strength guidelines:** | s value | Use case | |---------|----------| | 1.0-2.0 | Light noise, preserve detail | | 2.0-4.0 | Moderate noise (typical) | | 4.0-6.0 | Heavy noise, low light | | 6.0+ | Extreme noise (quality loss) | ### nlmeans_opencl - GPU-Accelerated NLMeans OpenCL accelerated version, much faster. ```bash # 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-Accelerated NLMeans (FFmpeg 8.0+) Cross-platform GPU acceleration using Vulkan. ```bash # 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 - High Quality 3D Denoiser (Fast) Faster than nlmeans with good results for moderate noise. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | Range | |-----------|-------------|---------|-------| | `luma_spatial` | Luma spatial strength | 4.0 | 0-255 | | `chroma_spatial` | Chroma spatial strength | 3.0 | 0-255 | | `luma_tmp` | Luma temporal strength | 6.0 | 0-255 | | `chroma_tmp` | Chroma temporal strength | 4.5 | 0-255 | ### atadenoise - Adaptive Temporal Averaging Temporal denoiser that preserves motion. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | |-----------|-------------|---------| | `0a`, `1a`, `2a` | Threshold A for planes 0,1,2 | 0.02 | | `0b`, `1b`, `2b` | Threshold B for planes 0,1,2 | 0.04 | | `s` | Number of frames to average | 9 | | `p` | Planes to process | 7 (all) | ### vaguedenoiser - Wavelet Denoiser Uses wavelet transform for denoising. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | Values | |-----------|-------------|---------|--------| | `threshold` | Denoising threshold | 2 | 0-inf | | `method` | Thresholding method | hard | hard, soft, garrote | | `nsteps` | Decomposition steps | 6 | 1-32 | | `percent` | Percent of full denoising | 85 | 0-100 | ### fftdnoiz - FFT-Based Denoising Frequency domain denoising. ```bash # 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 - Overcomplete Wavelet Denoiser Another wavelet-based option. ```bash # 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 Classic grain/noise removal (from AviSynth). ```bash # 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 ``` --- ## Audio Denoising ### afftdn - FFT Denoiser (Recommended) Powerful audio noise reduction using FFT. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | Range | |-----------|-------------|---------|-------| | `nr` | Noise reduction (dB) | 12 | 0.01-97 | | `nf` | Noise floor (dB) | -50 | -80 to -20 | | `nt` | Noise type | w | w=white, v=vinyl, s=shellac, c=custom | | `bn` | Number of noise bands | 15 | 3-33 | | `rf` | Residual floor (dB) | -38 | -80 to -20 | | `om` | Output mode | o | i=input, o=output, n=noise | ### anlmdn - Non-Local Means Audio Denoiser Audio equivalent of video nlmeans. ```bash # 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 ``` **Parameters:** | Parameter | Description | Default | |-----------|-------------|---------| | `s` | Denoising strength | 0.00001 | | `p` | Patch radius | 0.002 | | `r` | Research radius | 0.006 | | `m` | Output mode | o (o
Related in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.