The ad factoryGuide

Detect frozen frames in a video ad render

By the Turntake teamPublished 6 min read

Short answer

Scan the rendered file for intervals with little visual change, then review each alert against the edit plan. A detector cannot distinguish an intentional still from a broken shot. Record the interval, inspect its boundaries with audio, and verify the repaired output instead of rejecting every motionless frame automatically.

Detect an interval, then make a decision

Unexpected stillness near a join can survive a render that otherwise finishes successfully. Scan the delivered file for suspicious intervals, then compare each alert with the planned action and adjacent frames. A product still or end card may be intentional, so retain the interval and review context rather than treating low visual change as a verdict.

Start with the rendered deliverable and the edit plan. Mark where still images, held frames, and end cards are intentional. Then compare alerts against those expected intervals. A hold without a clear purpose deserves review even when it was deliberately placed. A detector locates stillness; the reviewer decides whether the stillness supports the message and whether the render matches the recipe.

Two clay kitchen shots side by side: on the left the opening frame held still, on the right the same shot playing as a woman lays out sheets
A held frame next to the real motion. A freeze looks like the left side: nothing in it changes. From our clip library.

Use a threshold with a named scope

The FFmpeg: filters documentation describes freezedetect as detecting intervals with no significant change in frame content over a configured duration. Its noise tolerance and duration influence which intervals are reported. An alert therefore depends on the chosen settings as well as the picture. Small animation, compression noise, or a quiet scene can complicate the relationship between visible movement and a logged interval.

In our production in October 2026, our checklist flags unexpected freezes longer than 0.5 seconds for review. That is a house threshold, not a platform requirement or a universal standard for ad pacing. Record the threshold with the scan so another reviewer understands its scope. When a project intentionally uses a longer still, document that exception against the planned interval rather than weakening every check.

Build evidence around each alert

Keep start time, end time, duration, and the render identifier for each suspicious interval. FFmpeg can log freeze start, end, and duration information. Translate those details into a compact review queue instead of sending an editor an unexplained statement that the file has freezes. The queue should make it possible to find the same interval without replaying the whole ad repeatedly.

A hypothetical kettle sequence separates stillness with a purpose from stillness that interrupts an action. A planned closing hold can give the final instruction time to finish, while a pause during the pour needs investigation. Both may produce a detector alert. Compare the logged interval with the recipe and neighboring frames, then record whether the reviewer accepted the hold or repaired the render; the alert alone cannot decide that outcome.

  1. 01ScanRecord settings and candidate time intervals
  2. 02ContextInspect frames before, during, and after the alert
  3. 03DecideAccept the planned hold or identify a render fault
  4. 04RepeatRecheck the repaired interval in the final output
Every alert needs context and a recorded outcome before the render is accepted.
Review recordWhy retain it
Render identifierLocate the exact scanned output
Alert start and endReproduce the suspicious interval
Expected actionDistinguish planned stillness from a fault
Final outcomeShow whether the alert was accepted or repaired

Source: suggested production checklist, October 2026.

Four numbered frames at even steps through a clay shot of a woman laying four blank quotes on a kitchen table
Evidence for an alert: frames at even steps through a shot that should move. Two identical ones mean look closer. From our clip library.

Separate intentional holds from faults

An intentional hold usually has an editorial role: give the viewer time to read a result, inspect a product detail, or finish a spoken sentence. Confirm that role in the recipe and watch the whole sentence with sound. If the hold outlasts the information or arrives during an action that should continue, it may need a shorter interval even though nothing technically failed.

An unintended freeze requires a different investigation. Check whether the source ends before the planned range, whether a time adjustment extended one frame, or whether a join introduced a gap. Trim and join ad clips with FFmpeg without drift covers trim boundaries and timestamp handling. Compare the intended source range with the rendered range before adding more motion. A replacement shot can conceal the symptom while leaving the assembly defect unresolved.

Three numbered frames from an almost still clay kitchen with a kettle and a fruit bowl, taken at the start, middle and end
A deliberate hold: an empty kitchen where only the light moves. Near-identical frames are not always a fault. From our clip library.

Treat black frames as another signal

A black-frame check answers a different question from a freeze check. A dark frame may be a transition, a deliberate background, or missing picture. Use a separate review note so darkness does not become shorthand for a technical failure. Inspect adjoining frames and the intended transition, then check whether audio continues across the interval in a way the edit plan actually calls for.

Our Turntake’s production workflow review sequence pairs machine findings with frame inspection. Keep a small contact sheet or timestamped frame references for disputed intervals. These references help the editor understand the visible symptom, while the original render remains the evidence for timing and audio. A still image alone cannot show whether the pause lasted one frame or several seconds.

Review the right rendered version

Scan every delivery version that has a distinct render path. Adapt video ads to new aspect ratios shot by shot explains why portrait, square, and landscape video adaptations deserve their own checks. A crop can change the visible movement even when the source interval is shared. A format-specific overlay or transition can also create a defect absent from the approved master. Name the actual reviewed file rather than assuming the first export represents the others.

  • SignalFreeze alertReview questionShould this action or shot remain still here?
  • SignalBlack intervalReview questionIs darkness planned or is picture missing?
  • SignalWrong endingReview questionDoes the last action complete the intended beat?
  • SignalDuration mismatchReview questionDoes this file match the accepted edit recipe?
Stillness, darkness, endings, and duration need separate review questions.

Check the final frame and the audio ending even when no automatic alert appears. A shot that ends at the wrong action point may contain continuous motion and still feel unfinished. Full decoding and duration verification provide another layer of evidence. None of these checks substitutes for watching whether the final picture and spoken thought arrive at a coherent ending.

Repair the cause and repeat the interval

Once the cause is clear, choose a bounded repair. Shorten a held frame, replace an exhausted source range, fix a join, or adjust the transition. Keep the previous render for comparison until the replacement is accepted. Then scan the new output and inspect the same interval with context. A detector becoming quiet is helpful, but the picture must also match the intended action.

If the freeze follows an overly long line, the problem may begin in the script. Write UGC scripts that sound spoken covers writing spoken thoughts that fit the ad. Rewrite or divide the line when needed instead of stretching the picture merely to cover extra narration. Record whether the repair changed wording, source range, or timing so later edits do not reintroduce the original mismatch.

Close the review with an explicit outcome

Each alert should end with one of three practical outcomes: accepted intentional hold, repaired render defect, or unresolved interval with a named next check. Record who reviewed it and which output was accepted. Avoid leaving a list of raw detector messages beside an approved file; someone returning to the project cannot tell whether those messages were considered or overlooked.

ai ugc ads workflow provides the broader production sequence around this gate. Reuse the same review structure on the next ad, while keeping the motion expectation specific to its shots. The repeatable part is how evidence is recorded and checked. The creative decision still belongs to the interval, the action, and the information the viewer needs to absorb.

Who wrote this We made the ads first, for SmartSolar in Denmark, Sweden and Ireland. Then we built Turntake. Where Turntake comes from

FAQ

Does a freeze alert mean the video is broken?

No. The detector identifies low visual change over a configured duration. An intentional still or end card may trigger it. Review the interval against the edit plan with adjacent frames and audio before deciding whether the render needs repair.

Is 0.5 seconds a platform limit?

It is our October 2026 house threshold for reviewing unexpected freezes. It is not presented as a platform limit. An intentional hold can be longer when its editorial role is clear and the actual rendered interval has been reviewed.

Should I check black frames separately?

Yes. Darkness and lack of movement are different signals. A black interval may be intentional or may indicate missing picture. Inspect its boundaries and audio against the planned transition, then record a separate outcome rather than treating every dark frame as defective.

What should I send the editor after a freeze scan?

Send the exact render identifier, start and end times, duration, and a short description of the expected action. Add adjacent frame references when helpful. That gives the editor a reproducible interval and a specific question rather than an unexplained detector warning.

Sources

  1. FFmpeg: filters documentation checked 11 October 2026

Facts from the sources below were checked on the date shown. Pages change, so read the source again before you rely on it.

Early access

Your turn. Next take.

Leave your email, and we’ll write when it’s your turn.

Early access we set it up with you. Coming we’re building it.