Why a ticking clock defeats frame averaging
Most of what makes this pipeline work is that neighbouring frames contain the same background. The text is the only thing that changes, so frames before and after supply the pixels it covers. A clock breaks that: at 00:00:07 the digit occupies pixels that held a 6 a second earlier and an 8 a second later. No frame in the clip has that patch clean.
So the repair has to be spatial — reconstructed from what surrounds the digits in the same frame. That is why a timestamp over a plain surface comes out well and a timestamp over a busy one does not.
- Monospace digits on a dark plate are the easiest shape: regular spacing, straight edges, high contrast
- A timestamp over moving footage loses the spatial cue as well, and that is where it fails
- The colon blinks in some recorders, so box the full width of the widest state
Three sources, three difficulties
CCTV and dashcam burn-ins are drawn by the recorder on top of the encoded frame, usually with a solid or semi-transparent plate behind the digits. The plate is the real problem, not the digits — box the whole thing.
Screen recordings add a clock or a timecode from the capture tool, over an interface that does not move. That is the easiest case this tool has, because the background is identical in every frame.
Phone and app stamps are usually a single corner line with a stylised font and a shadow. The shadow is part of the overlay; leave it out and it stays behind as a grey outline.
Two stamps on one frame, and night footage
Plenty of footage carries a timestamp top-left and another bottom-right, or a date next to a running time. Put both boxes in one job. A second pass repairs against a frame the first pass already altered, and the result drifts away from the original.
One failure is specific to timestamps: on night footage the repair leaves a visibly clean patch where the digits were. The digits were drawn over sensor noise, and the reconstruction produces smooth pixels, so a grain-free rectangle appears in a grainy frame. Nothing in the pipeline can put the grain back — if that matters, add grain in an editor afterwards.