mcpField
F
ffmpeg-noise-reduction

ffmpeg-noise-reduction

github.com/josiahsiegelクリエイティブ・メディア59128 回インストール19 週間前に更新
リポジトリ

ffmpeg-noise-reduction について

FFmpegの音声・映像ノイズ低減ワークフロー向けリファレンスです。暗所映像、フィルムグレイン、圧縮ノイズ、録音ノイズに対応し、複数のフィルターや調整例を紹介します。

主な機能

  1. 01複数のフィルターによる映像ノイズ低減
  2. 02VulkanまたはOpenCLによる処理高速化
  3. 03音声ノイズ、クリック音、クリッピングの除去
  4. 04強度、しきい値、処理プレーンの調整
  5. 05映像・音声補正フィルターの組み合わせ

活用シーン

  1. 01暗所または高ISOの映像を補正
  2. 02フィルムグレインや圧縮ノイズを低減
  3. 03インタビュー録音の背景ノイズを除去
  4. 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.00-30
pパッチサイズ71-99(奇数)
pc色差のパッチサイズ0(p と同じ)1-99
r検索ウィンドウのサイズ151-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.00-255
chroma_spatial色差の空間方向の強度3.00-255
luma_tmp輝度の時間方向の強度6.00-255
chroma_tmp色差の時間方向の強度4.50-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 のしきい値 A0.02
0b、1b、2bプレーン 0、1、2 のしきい値 B0.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ノイズ除去のしきい値20-inf
methodしきい値処理の方法hardhard、soft、garrote
nsteps分解の段階数61-32
percentノイズ除去の最大量に対する割合850-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)120.01-97
nfノイズフロア(dB)-50-80 ~ -20
ntノイズの種類ww=ホワイト、v=ビニール、s=シェラック、c=カスタム
bnノイズバンドの数153-33
rf残留ノイズフロア(dB)-38-80 ~ -20
om出力モードoi=入力、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特化型高速クリック音/ポップ音

パラメーター調整のヒント

動画のノイズ除去
  1. 控えめな設定から始める - s=2~3 から始め、必要に応じて上げます
  2. エッジを保護する - パッチサイズを小さく(p=5)すると、より多くのディテールを保持できます
  3. サンプルでテストする - まず 10 秒のクリップを処理します
  4. GPU を検討する - nlmeans_opencl/vulkan は 5~10 倍高速です
  5. コンテンツに合わせる - 静的なシーンでは、より強い時間方向のノイズ除去を適用できます
音声のノイズ除去
  1. ノイズフロアを確認する - 静かな区間を聴きます
  2. 適切なタイプを使う - ホワイトノイズ、レコードノイズ、カスタムノイズを使い分けます
  3. 処理しすぎない - アーティファクトがノイズより目立つ場合があります
  4. 残差を確認する - om=n を使って、除去される音を聴きます

ベストプラクティス

  1. エンコード前にノイズを除去する - ノイズは圧縮効率がよくありません
  2. テクスチャをある程度残す - ノイズを除去しすぎると不自然に見えます
  3. ソースの品質に合わせる - クリーンな映像のノイズは除去しないでください
  4. 利用可能な場合は GPU を使う - 大幅な速度向上が得られます
  5. フィルターは慎重に組み合わせる - 複数のノイズ除去フィルターを使うと、アーティファクトが発生する場合があります
  6. さまざまなフィルターを試す - 結果はコンテンツによって異なります

このガイドでは、2025 年向けのノイズ低減について説明しています。動画の分析と検出については、ffmpeg-video-analysis を参照してください。ハードウェアアクセラレーションについては、ffmpeg-hardware-acceleration を参照してください。

コメント