Stepping through a generated video, frame by frame
Generated video hides its failures between the frames you notice. How timecoded notes, frame stepping and a review log turn a watch into an inspection.
ES6 QA AI editorial · 11 November 2026 · 10 min read
Open the tool: Video frame scrubberPlayback hides what stepping reveals
Watching a generated clip is a poor inspection method, for the same reason that reading quickly is a poor proofreading method: the system you are judging is designed to be consumed continuously, and continuity covers discontinuities.
Stepping through changes that. A hand that has six fingers for two frames, a logo that resolves into a different word, a background object that changes sides between shots: all of those are invisible at speed and unmissable when you move ten frames at a time.
Timecode is what makes the finding useful. A note that says the hand looks wrong at the end is unactionable; a note that says 00:04.320, right hand, four fingers visible is something an editor can cut around or a vendor can fix.
And a review is usually a shared activity. The person watching is rarely the person who can regenerate the clip, so the output of the session has to be a list of moments rather than an impression.
The four things to check while you step
Anatomy and objects first, since they are the failures everyone knows about and the easiest to confirm: fingers, teeth, ears, the number of buttons on a shirt, the leg of a chair that disappears behind a table.
Then text. Signs, labels, screens, product packaging. Generated video renders type as a shape, and at ten frames a second the shape looks like a word; stopped on a single frame it is a smear of plausible letterforms. Any text that a viewer is meant to read needs to be verified at its clearest frame, not at the frame where it happens to look best.
Then continuity. Objects that move without being touched, shadows that change direction, a person whose clothing changes between cuts. Continuity errors are the ones that break the illusion rather than the ones that look like mistakes, and they are almost impossible to catch in playback.
Then physics: reflections, liquid, hair, cloth. Does the reflection in a window move when the subject moves? Does the fabric fold where a body would fold it? Generated motion is convincing in aggregate and incoherent in detail.
- Hands, faces, teeth, and countable details.
- On-screen text at its clearest frame.
- Continuity of props, shadows and clothing.
- Reflections, cloth and other physical expectations.
Building a review log that survives the handoff
A log entry should carry three things: a timecode, the region of the frame, and the observation. Anything less and the note has to be re-explained, which means it has to be re-found.
Keep observations factual. Four fingers on the right hand is a fact; looks weird is not. The second note forces the next person to re-watch the clip to understand it, and by then they will have their own opinion about what is wrong.
Mark severity as you go, because a session produces more notes than a fix list can hold. Anatomical errors in a hero shot and a slightly soft reflection in the background of a wide shot are not the same finding, and treating them the same is how a useful review becomes a demoralising one.
Keep the log with the deliverable. If the clip ships, the log is the record that it was inspected; if it does not, the log is what makes the next generation cheaper, because the failures cluster and the next take will fail in similar places.
Cut points and what editors inherit
A generated clip is rarely used whole. It is trimmed, looped, cut against music and intercut with other footage, and every one of those operations moves the boundary of what a viewer sees. An artifact at 00:04.320 may never appear if the cut lands at 00:04.100.
That is not a reason to skip the inspection, it is a reason to record severity and position together. A finding two frames before a natural cut is a note for the editor; the same finding in the middle of a held shot is a regeneration request.
Loops are the case people forget. A clip intended to loop must match its own first and last frame, and generated video almost never does: the subject drifts a few pixels, the lighting shifts, and the seam is visible every time the loop restarts. Step to the first and last frames and compare them directly.
For social formats, also check the safe area. A finding at the extreme edge of a 16:9 frame may be cropped out entirely in a vertical repost, and a hand near the frame edge is exactly where the crop will land.
Timing the inspection to the budget
Frame-by-frame review is expensive in attention, so spend it where the shot matters. A ten-second hero clip deserves a full pass; a background loop behind a text overlay deserves a glance at four moments and a check of the loop seam.
Work in three passes. A playthrough for first impressions, a stepped pass over the segments that carry the message or the product, and a final pass on the frames nearest the cut points and the loop boundary. Most sessions do not need the third pass at all.
Record the cost as well as the finding. Ten minutes to reject a clip that needs regenerating is a bargain; forty minutes on a background element nobody will look at is a habit worth breaking.
And keep the log even when the clip passes. The absence of findings on a clip you inspected is a record, and it is the thing that lets you say with a straight face that the asset was checked rather than assumed.
The parts of a video the frames do not show
A video is a picture track and an audio track that have to agree. Lip sync drift of a hundred milliseconds is invisible in a still and maddening in playback; a music cue that lands a beat late is a frame-level fact and an aesthetic problem.
Subtitles and captions are a second text problem. They come from a transcript, the transcript comes from the audio, and both can disagree with what is on screen: a name spelled correctly in the caption and wrongly on the sign behind it is a discrepancy somebody will notice.
Then the metadata and the export settings. Frame rate, colour space, bitrate and duration caps get enforced by every platform differently, and a clip that passed inspection can be rejected on upload or silently re-encoded into visibly worse quality.
Check all three at the end of the pass rather than the start, because they are cheaper to verify once the picture has been accepted than to diagnose alongside it.
A pass that fits the length of the clip
A six-second clip can be inspected completely: forty frames at a time, twice, and you have seen every frame. A minute-long clip cannot, which means the inspection has to be sampled rather than exhaustive, and the sample has to be chosen deliberately.
Sample the first two seconds, the last two seconds, every cut, and every point where the subject's hands are visible. Those five categories find most of what matters, and they take about a quarter of the time a full pass would.
Record which parts were sampled. An honest note that says frames were checked at 0.5, 2.0 and 6.4 seconds is more useful than a claim that the clip was reviewed, and it lets the next person check the parts you did not.
For the clips that will carry a campaign, pay for the exhaustive pass anyway. The cost of a missed artifact on a hero video is measured in takedowns, not in minutes.
What frame inspection cannot prove
It cannot tell you whether the clip depicts something true. A generated scene of a real place, event or person can pass every continuity check and still be a fabrication with real consequences. Frame accuracy and factual accuracy are unrelated properties.
It says nothing about audio. Lip sync, music licensing and voice quality are separate checks, and a clip that passes visually can fail entirely on its soundtrack.
And it cannot make a decision about disclosure. If the clip shows a product doing something it does not do, or a person saying something they did not say, the inspection is not the control that prevents publication. A caption and an approval are.
Treat the pass as the cheapest way to catch the failures that make a clip unusable, then route the ones that make it unfair, unsafe or untrue to somebody with the authority to say no.
These rules are the same ones the console runs. Check a file against them now.