How to pixelate bystanders in street and public footage
- Step 1Drop the street clip — Drag your MP4/MOV/MKV onto the tool. Decoding is local — nothing uploads. Face pixelate needs the Pro-Media tier (100 GB / 50 files) or higher.
- Step 2Let the detector warm up once — First run shows
Loading face detectorwhile the WebGPU backend and MediaPipe model initialise. Later runs reuse the cached detector. - Step 3Raise the sample rate for foot traffic — Crowds move. Set
Sample rate (Hz)to 8–15 so a bystander who's only in frame for a second is sampled multiple times and forms a stable track instead of being skipped. - Step 4Set a strong pixel size —
Pixel size20–32 for clear anonymisation. Faces near the camera are large, so a finer mosaic can leave structure — bigger blocks remove it. - Step 5Bump padding for moving faces —
Padding (0–1), default 0.25 — raise to 0.3–0.4 so the union box comfortably contains a face that's turning or partly occluded as the person walks. - Step 6Run, then scrub for distant misses — After the MP4 downloads, watch the whole clip. Distant or profile faces the short-range model skipped won't be covered — draw manual regions over them in the video redactor.
How the tracker behaves on moving crowds
Street footage stresses the clustering logic. These are the real behaviours from the processor.
| Situation | Behaviour | Implication |
|---|---|---|
| Bystander walks across frame | One track; box = union of all positions | A wide rectangle covers the whole path — larger than the face at any instant |
| Two people pass close together | May merge if IOU > 0.2 | Could be covered by one box instead of two; both still hidden |
| Person re-enters after leaving frame | Often a new, separate track | Two boxes/time-windows for the same person — both correct |
| >12 distinct people | Only 12 most-detected tracks kept | Least-seen faces may be left visible — verify the preview |
| Face only a few pixels tall (far away) | Usually not detected | Not mosaiced; cover manually in the redactor |
Settings by street scenario
Manual recommendations — the UI has no presets.
| Scenario | Sample rate | Pixel size | Padding |
|---|---|---|---|
| Quiet street, occasional passer-by | 6 | 22 | 0.3 |
| Busy pavement, steady foot traffic | 10 | 26 | 0.35 |
| Fast pan / gimbal walk | 15 | 24 | 0.35 |
| Static tripod, people crossing close | 8 | 28 | 0.35 |
Cookbook
Street-footage scenarios with the settings that hold up, written as before → after notes.
Walking B-roll on a busy street
Gimbal walk through foot traffic. Faces appear and exit fast. High sample rate is essential so brief crossers form tracks.
Input: street_walk.mp4 (gimbal, many crossers) Settings: Sample rate 15, Pixel size 26, Padding 0.35 Result: near-camera faces mosaiced; tracks cover walk paths Check: distant faces down the street may be uncovered
Tripod shot, people crossing in foreground
Foreground crossers are large and close — perfect for the short-range model. One person walking left-to-right becomes one wide union box.
Input: corner_tripod.mp4 Settings: Sample rate 8, Pixel size 28, Padding 0.35 Filter: each crosser → 1 track → wide overlay box across path Result: clean mosaics on foreground bystanders
Crowded market — more than 12 faces
A dense scene can form more than 12 tracks; only the 12 most-detected survive. Tighten the framing or do passes, and verify.
Input: market.mp4 (dense crowd) Settings: Sample rate 12, Pixel size 24, Padding 0.3 Note: TRACK_LIMIT = 12 → least-seen faces may slip through Fix: crop tighter and re-run, or manual passes in redactor
Distant pedestrian the AI skipped
Someone far down the road is too small to detect. Cover them manually with a region in the redactor over the area they occupy.
Symptom: small distant face visible after the pass Fix: /video-tools/video-redactor → draw region over their path Reason: short-range model targets near-camera faces
Anonymise faces, keep the ambience audio
Street ambience makes the shot. Audio is copied untouched, so the soundscape survives. If a bystander says something identifying, mute just that span separately.
face-pixelate → faces mosaiced, street ambience kept If needed: /video-tools/audio-mute-region for one spoken phrase
Edge cases and what actually happens
Distant bystanders not detected
May be missedThe short-range MediaPipe model targets near-camera faces. People far down the street, only a few pixels tall, are usually not detected and not mosaiced. Always scrub street footage and cover any recognisable distant person manually with the video redactor.
Moving bystander gets a wide box
Covered (path union)Each track is one static rectangle equal to the union of every position the face occupied. A person crossing the frame is covered by a wide box spanning their whole route — they're fully anonymised, but more of the frame is mosaiced than the face alone. Reduce Padding if the box feels too large.
More than 12 people in the crowd
Capped at 12 tracksTRACK_LIMIT = 12 keeps the 12 most-detected tracks. In a busy market or protest, faces seen in only a few frames may remain visible. Tighten framing, split the shot, or do manual passes with the redactor and always verify the preview.
Two passers-by merge into one mosaic
Merge (IOU 0.2)When two faces overlap past IOU 0.2 they cluster into one track and share a single, larger box. Both are still hidden; you just get one rectangle instead of two. This is common when people walk close together.
Brief crosser missed at low sample rate
May be missedAt 4 Hz, a person who crosses in under ~0.25 s may be sampled once or never and fail to form a track. Raise Sample rate (Hz) toward 12–15 for crowd footage; detection takes longer but coverage improves.
Profile / back-of-head not detected
May be missedThe detector keys on frontal faces. Someone shown only in profile or from behind often isn't detected (and a back-of-head isn't a face anyway). If a profile face is identifiable in a frame, cover it manually.
No faces detected on an empty street
Error: no facesIf no near-camera faces appear, you get No faces detected. Expected for empty shots — but if there clearly are people (just distant), it means they were too small to detect; redact manually instead of assuming the clip is clean.
Output always MP4
By designRegardless of input container, the output is MP4 (libx264, CRF 20, +faststart) with audio copied. The street ambience is preserved exactly; transcode to another format afterward with the video transcoder if your edit needs it.
Frequently asked questions
Will it catch every bystander in a street shot?
No — and you should not assume it does. The short-range model detects near-camera faces well but frequently misses distant, profile, or tiny faces, and it keeps only the 12 most-detected tracks in a crowd. Treat the auto pass as covering the obvious foreground faces, then scrub the clip and cover anyone identifiable that was missed with the video redactor.
Why is the mosaic box bigger than the person's face?
Because each track is covered by a single static rectangle equal to the union of every position the face occupied across the shot. A bystander who walks across frame gets a wide box covering their whole path. It fully anonymises them; if it covers too much background, lower the Padding value.
What sample rate works for moving crowds?
Use a high one — 10–15 Hz. Pedestrians cross quickly, and at the default 4 Hz a brief crosser may be sampled too few times to form a track and get mosaiced. Higher sampling catches more frames per person at the cost of a longer detection stage.
How many people can it handle at once?
It keeps the 12 most-detected tracks (TRACK_LIMIT = 12). For up to about a dozen distinct people it works well. In a dense crowd, faces seen in only a few frames can be left out — tighten the framing, split the shot, or patch manually, and always verify the preview.
Does it follow a face as it moves, or cover a fixed box?
It covers a fixed box — the union of the track's positions — active for the track's time window. It does not draw a snug box that follows the face frame-by-frame. The result fully hides the person; the trade-off is that more of the frame is mosaiced than a per-frame box would be.
Can I keep the street ambience audio?
Yes. Audio is stream-copied (-c:a copy), so traffic, chatter, and ambience are byte-identical and in sync. If a bystander says something identifying, mute just that span with the audio region muter.
What about people shown only from behind or in profile?
The detector keys on frontal faces, so backs of heads aren't detected (and aren't faces) and steep profiles are often missed. If a profile face is recognisable in any frame, cover it by hand with the video redactor after the auto pass.
Is the footage uploaded?
No. Detection runs in an offscreen <video> and encoding runs in FFmpeg.wasm, both in your browser. Your raw street footage never leaves your device — useful for sensitive or unreleased B-roll.
What output do I get?
Always an MP4 (H.264, yuv420p, CRF 20, +faststart). The whole frame is re-encoded at near-lossless quality; only the detected face regions change. The input container isn't preserved; use the video transcoder to convert if your NLE needs another format.
How strong should the pixel size be?
For street footage where near faces are large, use Pixel size 20–32 so identity is removed, not just softened. The control range is 4–40. Smaller values leave a finer mosaic that may keep recognisable structure on close faces.
Which plan is required and how long can the clip be?
Pro-Media or higher (gated on Free and Pro). Pro-Media: 100 GB / 50 files; Developer: 100 GB / unlimited. There's no clip-length limit on video tools — only file size and batch count — so long walking shots are fine if the file fits.
Should I use mosaic or blur for street footage?
Mosaic reads as obviously deliberate, which is usually what you want for published street work. If you prefer a softer, depth-of-field-like look, the face blur tool uses the same auto-detection with a Gaussian-style blur and a strength control instead of pixel size.
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.