This is the MozFace team. You blur a face in a video, play it back, and halfway through the mosaic has slid off the face. It is the single most common failure in video editing. This article covers why it happens and how to stop it.
Why the mosaic slips
A video is a sequence of still images. At 30fps that is 30 images per second — 1,800 in a single minute. Blurring a video means deciding what to cover in every one of those images.
But your subject does not hold still. People walk, turn, crouch. Hold the camera in your hand and the whole frame drifts on its own. An area you lined up perfectly on one frame no longer fits the next. Reuse that first position all the way to the end and, unsurprisingly, the face is exposed partway through.
Keyframes, and where they run out
Most video editors solve this with keyframes. You mark the position at 0 seconds, mark it again at 3 seconds, and the app interpolates the movement in between.
For someone walking in a straight line at a steady pace, that tracks cleanly. The trouble is that people do not move in straight lines. They stop, change direction, bend down to pick something up. Each of those needs another point, and the more complex the motion, the more the work multiplies.
Multiple people make it worse. Three people walking in three directions means three separate sets of keyframes to manage. The longer the clip, the more rounds of checking and fixing it takes.
Face tracking removes the positioning work
The other approach is face tracking. Rather than you telling the app where the face is, the app finds faces in the footage and follows where each one goes over time.
That is how MozFace works. Load a video and faces are detected automatically, with the position of each face recorded as it changes through the clip. When a subject crosses from one side of the frame to the other, the mosaic travels with them. You never place a keyframe.
Several people are handled the same way. Each detected face is tracked independently, so three people moving separately does not become three times the work. The more people in the clip, the wider the gap with doing it by hand.
Start from "everyone is hidden"
Just as important as the tracking is the order of the work. In MozFace, editing begins with every detected face already blurred. From there you tap to reveal only the people you are happy to show.
An exposed face is what happens when you forget to hide someone. If everyone is hidden from the start, there is nothing left to forget. And because a video can only be checked by playing it through, having the default state fall on the safe side is worth more here than it is with photos.
Where tracking struggles
Automatic tracking is not infallible. A face turned fully away, hidden behind someone or something, in very low light, or smeared by motion blur may not register as a face at all. Play the clip through once before exporting, paying particular attention to someone crossing the frame, sharp camera movements, and a face turning back toward the camera. Anything not detected as a face can still be covered by placing a region manually. Whether the finished video is appropriate to publish is your own call to make.
MozFace
Faces in your video are detected and blurred automatically, tracked as they move. No keyframes. Tap to reveal only who you want to show. Everything runs on your device.
Learn more about blurring faces in videoFrequently asked questions
Does the mosaic follow the face without keyframes?
Yes. MozFace tracks how each detected face moves through the clip, so the mosaic follows the subject. There is no manual positioning step.
Can it handle several people moving separately?
Each detected face is tracked independently, so adding more people does not mean repositioning them one at a time.
Will a face turned away still be blurred?
A face turned fully away, obscured by an object, or in very low light may not be detected. Play the clip through before exporting and, where needed, place a region manually to cover it.
Is my video sent anywhere?
No. Detection through export runs entirely on your device, so your video is never sent to an external server.