ffmpeg-noise-reduction について
FFmpegの音声・映像ノイズ低減ワークフロー向けリファレンスです。暗所映像、フィルムグレイン、圧縮ノイズ、録音ノイズに対応し、複数のフィルターや調整例を紹介します。
主な機能
- 01複数のフィルターによる映像ノイズ低減
- 02Vulkanまたは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 | ノイズ除去の強度(シグマ) | 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 を使う - 大幅な速度向上が得られます
- フィルターは慎重に組み合わせる - 複数のノイズ除去フィルターを使うと、アーティファクトが発生する場合があります
- さまざまなフィルターを試す - 結果はコンテンツによって異なります
このガイドでは、2025 年向けのノイズ低減について説明しています。動画の分析と検出については、ffmpeg-video-analysis を参照してください。ハードウェアアクセラレーションについては、ffmpeg-hardware-acceleration を参照してください。