How to redact faces in cctv / security footage locally
- Step 1Load the export on Pro + Media — Face blur is Pro + Media tier and runs fully in-browser (not streamable). Drop a single MP4, MOV, MKV, WebM, AVI, M4V, or TS export — up to 100 GB, which fits long CCTV clips. Nothing uploads off the machine.
- Step 2Use a high sample rate for moving subjects — People walk through a CCTV view quickly. Use 10–15 Hz so a subject crossing the frame is detected at several positions and the blur tracks them. The default 4 Hz can leave gaps on fast movement; range is 1–15.
- Step 3Set strength and padding for thorough cover — Use strength near 40–50 and padding 0.35–0.45. CCTV often shows people from above, so padding helps cover the tops of heads that the box doesn't fully capture. The radius is clamped per region so small faces are still handled.
- Step 4Run the detect + blur pass — Expect a one-time detector warm-up, then the sample loop, then the single-pass encode to H.264 MP4. CCTV detection often finds fewer faces than you'd hope — that's the lens and resolution, not a bug.
- Step 5Verify and manually redact the misses — This is the critical CCTV step. Scrub the result and redact every face the AI missed — small/distant figures, high-angle heads, low-light faces — using video-redactor for those exact rectangles and time ranges. Don't disclose on auto-blur alone.
- Step 6Scrub metadata before disclosure — If you're responding to a subject-access request or a disclosure, run metadata-scrubber so the released file carries no incidental device/timestamp data beyond what's intended, and keep the unredacted original archived.
Why CCTV is hard for auto-detection
The factors that depress recall, and the mitigation in this tool.
| CCTV factor | Effect on detection | Mitigation |
|---|---|---|
| Wide-angle lens → small faces | Faces below the model's effective size are missed | Higher sample rate; manual redaction for distant figures |
| High camera angle → tops of heads | Frontal model gets a weak signal | Higher padding to cover the head; manual patch |
| Low light / IR night mode | Reduced detection confidence | Verify night segments carefully; redact manually |
| Low resolution / compression | Less facial detail to detect | Auto-blur what's found; manual for the rest |
Suggested CCTV settings
Conservative, thorough defaults for surveillance footage — within the tool's real ranges.
| Control | CCTV value | Default |
|---|---|---|
| Sample rate | 10–15 Hz | 4 Hz |
| Blur strength | 40–50 | 25 |
| Padding | 0.35–0.45 | 0.25 |
Tier access
Pro + Media required; 100 GB ceiling suits long exports.
| Tier | Access | Max file | Batch |
|---|---|---|---|
| Free / Pro | Blocked | — | — |
| Pro + Media | Full | 100 GB | 50 |
| Developer | Full | 100 GB | Unlimited |
Cookbook
Surveillance-specific recipes. The constant: auto-blur first, then verify and manually redact, because CCTV defeats AI detection more than any other source.
Subject-access request — blur everyone but the requester
A SAR requires you to disclose footage of the requester while protecting other people in frame. Auto-blur all, then... note there's no allow-list, so the requester is blurred too — handle their visibility via manual redaction strategy.
Reality: face-blur blurs EVERY detected face (no allow-list).
For a SAR where the requester must be visible:
Option A: blur all, then in your edit reveal the requester
region — out of scope for this tool.
Option B: use video-redactor to blur only the OTHER
people, leaving the requester visible.
For general anonymisation (no one visible): face-blur fits.Corridor camera, person walks through
A single subject crossing the view. High sample rate keeps the blur on them as they move.
Input: cam-corridor.mkv (low light)
Options: sampleHz 15 · strength 45 · padding 0.4
Verify: the dim end of the corridor — detection may drop
there; patch with video-redactor if a face shows.Wide-angle entrance — many small faces
A fish-eye entrance cam makes faces tiny. Expect the detector to miss the smallest and the twelve-track cap in busy moments.
Options: sampleHz 12 · strength 50 · padding 0.45 Console may show: capped to 12 most-detected Approach: auto handles the closer faces; manually redact the small/distant ones near the lens edges.
Long continuous export, single file
The 100 GB ceiling means you usually don't have to split a long CCTV export before blurring.
Input: 24h-export.mp4 (large, long)
Note: allowed up to 100 GB on Pro + Media; processing
time scales with length. Consider splitting the
day into segments with video-splitter if you only
need a window, to cut detection time.Clean disclosure file
Strip incidental metadata so the released footage reveals only the intended content.
Original (archived, unredacted) -> face-blur -> verify -> video-redactor (patch misses) -> metadata-scrubber (device/timestamp tidy-up) -> disclosed copy
Edge cases and what actually happens
Many faces missed due to size/angle/light
Expected limitationCCTV is the short-range model's worst case: small wide-angle faces, high camera angles, IR night mode, and low resolution all reduce recall. The tool blurs only what it detects. Treat auto-blur as a first pass and manually redact the rest with video-redactor before disclosure.
No faces detected at all
ErrorLow-quality CCTV often yields 'No faces detected. Try lowering the sample rate or use a clearer source.' If faces are present but too small/dark for the model, the fallback is full manual redaction with video-redactor.
You need one person to stay visible (SAR)
Not supported hereThere's no allow-list — every detected face is blurred. For a subject-access request where the requester must be visible while others are hidden, use video-redactor to blur only the other people, since this tool can't selectively keep one face.
Twelve-track cap on a busy camera
By designOnly the twelve most-detected clusters are blurred. A busy entrance can exceed that, leaving low-hit faces visible. Raise the sample rate so more faces accumulate hits, then verify and manually redact remaining figures.
High camera angle leaves the top of the head visible
ExpectedThe box is tight around the detected face; from above, a hat or crown can sit outside it. Raise padding (0.4+) to extend the blur upward, and verify.
Output is MP4, not the camera's original format
By designOutput is always H.264 MP4 — there's no codec/container choice. If a disclosure must match the original container, transcode the redacted MP4 with video-transcoder and document it.
Very long export takes significant time
ExpectedDetection and the CRF-20 re-encode run in your browser and scale with duration. A 24-hour export is allowed (within 100 GB) but slow. Trim to the relevant window first with video-splitter to cut detection time.
Night-mode segment under-detects
Expected limitationIR/low-light footage lowers detection confidence, so night segments are the likeliest to have missed faces. Review them with extra care and redact manually where needed.
Frequently asked questions
Does CCTV footage stay on-prem?
Yes. Both detection (TensorFlow.js) and blur (FFmpeg.wasm) run in your browser on your machine. The surveillance footage never reaches a third-party server, which is essential for GDPR-sensitive security data.
Why does it miss so many CCTV faces?
CCTV is the hardest case for any face detector: wide-angle lenses make faces small, high camera angles show the tops of heads, lighting is poor, and footage is often low-resolution. The short-range model finds the clearer faces; you must verify and manually redact the rest with video-redactor.
Can I keep one person visible for a subject-access request?
Not with this tool — it blurs every detected face and has no allow-list. For a SAR where the requester must be visible while others are protected, use video-redactor to blur only the other people.
What settings work best for CCTV?
High sample rate (10–15 Hz) for moving subjects, high strength (40–50), and padding 0.35–0.45 to cover high-angle heads. Then verify and patch misses manually.
How long an export can it handle?
Up to 100 GB per file on Pro + Media (and Developer), which fits long continuous CCTV exports. Processing time scales with length; trim to the relevant window with video-splitter to save time.
Is the audio preserved?
Yes — where the camera records audio, it's stream-copied unchanged (-c:a copy). Only the video is re-encoded to bake in the blur.
Is a blur strong enough for disclosure?
Use the maximum strength, or the mosaic in face-pixelate, for a harder, clearly-deliberate redaction. A low-strength blur can be partially reversed, so match the setting to the sensitivity of the disclosure.
What output format do I get?
Always H.264 MP4 with +faststart. There's no container choice; transcode afterward with video-transcoder if a specific format is required for disclosure.
Should I strip metadata before releasing the footage?
Usually yes — run metadata-scrubber so the disclosed file carries no incidental device/timestamp data beyond what's intended, and keep the unredacted original archived securely.
Which tier is required?
Pro + Media (£19/month) or higher. The tool needs full-frame access and isn't streamable, so Free and Pro are blocked.
Can I batch several camera exports?
Yes — Pro + Media allows up to 50 files per job (Developer unlimited). Each export is detected and blurred independently; verify each output.
What if faces are too small even at high sample rate?
If wide-angle distance makes faces below the model's effective size, auto-detection won't find them no matter the sample rate. Redact those figures manually with video-redactor — it's the reliable path for tiny CCTV faces.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.