Blur Faces in a Video

Faces are found and followed through the clip, then covered for good — tracked across frames so the blur does not flicker. The footage never leaves your device.

The hard part is not finding a face. It is not losing it.

Detecting a face in one image is a solved problem, and the model here is the same one the photo tool uses. Doing it a thousand times in a row is a different problem, because the failures stop being independent. Run the detector on each frame and blur what it returns and you get a blur that strobes: found, missed, found again, twice a second. Every frame it is off is a frame with someone’s face in it, published.

So faces are followed rather than re-found. Each one becomes a track through time, and each track becomes a small number of stretches — a region and a span of seconds — laid end to end with no gaps between them. A sample the detector missed in the middle of a track is covered anyway, because the stretch spanning it does not know it was missed. That is what makes the blur steady, and it is most of the work in this tool.

It also means the detector does not have to look at every frame. Sampling a few times a second and covering the gaps by construction is what turns a minute of footage into a minute of work rather than ten.

What this cannot promise

A photo you can check. A clip you will not. If the detector never sees a face — because it is in profile the whole time, or too small, or only on screen for a moment between samples — nothing here will catch it, and there is no review step that would show you. Watch the output through before you publish it, and if the footage is sensitive enough that one missed frame would matter, treat this as a first pass rather than the last word.

For a single image, the photo version is strictly better: it is instant, it shows you every region before anything is applied, and you can draw over whatever it missed.

Covered, not hidden

The regions are replaced in the picture and the clip is then re-encoded from the result, so there is no layer to peel back and no original underneath. The re-encode is unavoidable — changing what the frames show means recompressing them — and it takes the file’s metadata with it.

Blur Faces in Video FAQ

Will it catch every face in every frame?

No, and in a video that matters far more than it does in a photo. A photo you can look at; a two-minute clip is three thousand frames and nobody checks them all. The detector finds faces looking roughly at the camera and reasonably large in frame, and misses profiles, people turned away, faces at the edge of frame and small faces in a crowd — and because it samples a few frames a second rather than every frame, a face that appears only briefly can fall between samples entirely. Watch the result through before you publish it. That is not boilerplate advice here — and when you spot something it missed, drag a box over it and give that box a time range, which is what the drawing layer is for.

Why does the blur not flicker?

Because faces are followed across frames rather than found independently in each one. Running detection per frame and blurring what it finds is the obvious approach and it strobes: a face found at 2.0 seconds and missed at 2.17 produces a blur that blinks, and every frame it is off is a frame with someone's face in it. Instead each face becomes a track, and each track becomes stretches of time with no gaps between them — so a sample the detector missed in the middle is still covered by the stretch spanning it.

How long does it take?

Roughly two to three times the length of the clip, on a typical laptop. A thirty-second video is about a minute and a half. The page tells you its estimate before you start, because a progress bar with no end in sight on a job that takes four minutes is not information. Most of that time is the re-encode, which is unavoidable: changing what the frames show means recompressing them.

Is my video uploaded?

No. The detector is a sub-megabyte model served from this site, and the frame work is done by an ffmpeg build compiled to WebAssembly — both running on your own machine. Nothing is sent anywhere. That matters more here than almost anywhere on this site: the footage worth de-identifying is usually the footage you least want on a stranger's server.

Can the blur be undone?

Not from the file you download. The covered pixels are replaced before the video is re-encoded, so there is no layer to remove and no original underneath — the same guarantee the photo tool makes. If you want to leave no doubt at all, use the solid block rather than a blur.

Can I cover something the detector will not find?

Yes. Move to the moment you care about, drag a box over it, and it is covered from there to the end of the clip — or between two times you type in, if it only needs covering for part of it. That is how you handle a face turned away, a name badge, a screen, a tattoo, anything the detector was never going to recognise. Boxes you draw are never dropped in favour of what the detector found; a detection is a guess, a box you drew is an instruction.

Why does the preview not show the blur itself?

Because producing it would mean running the whole encode to show you a preview of running the whole encode. The outline shows you where and when; the file you download is the thing to watch through. The photo tool at /blur-faces does preview the real effect, because there it costs nothing.

Should I use this or the photo tool?

Use the photo tool at /blur-faces for a single image: it is instant and it shows you every region, with the real blur applied, before anything is saved. This one cannot preview the effect — there is no single frame to review and the work takes minutes — which is exactly why the photo tool is the better choice whenever the thing you are protecting is a still.