Denoise a Video

Pick a video, choose a strength and denoiser — grain and noise are smoothed away in your browser, nothing is uploaded.

Try:
Denoised video

Clean up a grainy, noisy video

Pick a video, choose how hard to denoise its picture and which denoiser to use, and get the same clip back with the grain and sensor noise smoothed away. Everything runs with ffmpeg inside your browser tab — nothing is uploaded, and the tool is free.

Because a denoise filter rewrites every frame, the picture is re-encoded to H.264 (-crf 20, visually near-transparent). The audio is left untouched (stream-copied) whenever the container can hold H.264/AAC — mp4, mov, m4v and mkv keep their container; other inputs (e.g. webm) are converted to MP4 and the audio re-encoded to AAC.

Denoiser and strength

Start moderate and raise it only until the grain is gone — over-denoising a video (smeared texture, "plastic" faces) is the usual mistake.

Worked example

You have night-clip.mp4, a hand-held phone clip shot in low light that's full of colour speckle. Load it, leave Denoiser on hqdn3d, and set Strength to 45. You get night-clip-denoised.mp4 — the same footage with the speckle cleaned up and the picture re-encoded to H.264. If faces look a little soft, drop the strength; if heavy grain remains and you'd rather keep edges crisp, switch the Denoiser to nlmeans and try 40.

On the command line the same job is gizza video-denoise --method hqdn3d --strength 45 night-clip.mp4, and the page URL /tools/video-denoise/?method=hqdn3d&strength=45 deep-links to the same pre-filled settings.

Notes and limits

FAQ

Is my video uploaded to a server?

No — ffmpeg runs inside your browser tab, so the file never leaves your device. Nothing is uploaded and nothing is stored.

What's the difference between hqdn3d and nlmeans?

hqdn3d is a fast 3D denoiser that smooths across both neighbouring pixels and successive frames (temporal + spatial) — a great general-purpose default. nlmeans (non-local means) is spatial-only and much slower, but it matches similar patches across the frame, so it holds onto edges and texture better on heavy noise. If hqdn3d looks smeared, try nlmeans; if you want speed, stay on hqdn3d.

What strength should I use?

Start around 30 (the default) and raise it only until the grain is gone. High values (60+) remove more noise but can make the picture look soft or "plastic", so increase gradually and stop when it looks clean.

Will denoising reduce the video quality?

The picture is re-encoded to H.264 at -crf 20, which is visually near-transparent, so the quality loss from encoding is negligible. The bigger factor is strength: over-denoising smears fine detail, so keep it as low as the footage allows. Audio is stream-copied untouched (except when a webm input is converted to MP4, where it's re-encoded to AAC).

Which formats can I use, and how big can the file be?

Anything ffmpeg can read — mp4, mov, m4v, mkv and webm are the common cases. mp4/mov/m4v/mkv keep their container; other inputs (e.g. webm) come out as MP4. The input and output are each capped at 25 MB.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool video-denoise 'url=https://example.com/input' 'method=hqdn3d' 'strength=30'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/video-denoise/?url=https://example.com/input&method=hqdn3d&strength=30

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.