PRODUCT CREATIVE / PRODUCTION AND HANDOFF
Does an Empty FFmpeg Freeze Log Prove an Ad Moves Correctly?
No. An empty freezedetect log means no freeze event met the configured detection conditions. It does not prove that every product action moved correctly. A freeze shorter than the minimum duration may produce no event, while an intentionally static closing card may legitimately trigger detection.
Understand What Freezedetect Measures
FFmpeg's freezedetect compares the mean average absolute differences across frame components against a configured noise tolerance. It identifies sufficiently unchanged image content, not whether the advertised product behaves correctly.
The default minimum duration is two seconds. The default noise tolerance is -60 dB, equivalent to 0.001.
A freeze must satisfy both the difference threshold and duration condition. An empty log can therefore mean that the apparent freeze was too short, the tolerance was unsuitable, or no qualifying freeze occurred.
Decision branch: Before accepting an empty result, inspect the duration and noise settings alongside the intended video content.
| Option | Meaning and units | Default |
|---|---|---|
| noise / n | Difference tolerance, expressed in dB or as a ratio from 0 to 1 | -60 dB, equivalent to 0.001 |
| duration / d | Minimum qualifying freeze duration, in seconds | 2 seconds |
Use the FFmpeg freezedetect reference to check the threshold units and event definitions.
Interpret Event Timestamps Correctly
freeze_start is reported when a qualifying freeze has lasted for the configured minimum duration. Its value identifies the beginning of that interval. The reporting frame and the reported start time are different timestamps; the duration threshold is not an absolute position measured from the beginning of the entire video.
Hypothetical timeline, not an additional executed test: if a qualifying freeze begins at timestamp 5.0 seconds and d=0.5, notification becomes possible once the interval has lasted 0.5 seconds. The reported freeze_start describes the onset near 5.0 seconds, rather than treating 0.5 seconds as the video's freeze start. Frame timing determines the actual reporting frame.
freeze_end and freeze_duration appear on the first frame after the freeze ends. If the input ends while still frozen, that following frame may not exist, leaving a start-only event. Record the event as open at end-of-file rather than inventing an end time or interpreting it as a zero-duration freeze.
Examine the Actual Synthetic Measurements
The recorded local FFmpeg 7.1 tests used three-second synthetic 160×90 inputs at 10 fps. The table reports those metadata observations; it does not establish product-motion correctness or network playback quality.
For the static input with d=0.5, the notification was recorded at frame 5, pts_time=0.5, while freeze_start was 0. This measured distinction illustrates why the notification time must not replace the interval's start time.
The static input with d=4 never reached the required duration. The moving input's result changed when n changed from -60 dB to the ratio 1, showing why an empty log or a start event must be interpreted together with the configured tolerance.
| Recorded synthetic input | Settings | Recorded events |
|---|---|---|
| Solid blue, 3 seconds | n=-60dB; d=0.5 | freeze_start=0; reported at frame 5 / pts_time=0.5; no freeze_end |
| Solid blue, 3 seconds | n=-60dB; d=4 | No freeze events |
| Moving testsrc2, 3 seconds | n=-60dB; d=0.5 | No freeze events |
| Moving testsrc2, 3 seconds | n=1, a ratio; d=0.5 | freeze_start=0; no freeze_end |
Illustrative Exercise: Two Merchant Review Cases
Illustrative exercise — fictional advertisement scenarios, not executed product tests.
Input A ends with an approved static product-and-price card. A detected freeze may reflect the intended hold rather than a defect.
Input B shows a product mechanism that unexpectedly stops moving before its demonstration finishes. Compare the detected interval with the approved action sequence.
Decision branch: For Input A, confirm the hold is intentional. For Input B, investigate the affected interval even if the configured detector reports nothing.
Record detection settings, metadata events, and editorial decisions separately. Automated freeze detection is supporting evidence, not a substitute for semantic review.
When an interval needs editorial repair, the short-clip edit-handles guide explains a separate check before extending an edit.
Inspect the actual measurement data
These data describe the synthetic checks scoped in the article, not real-product, publishing-platform or subjective-quality acceptance.
- synthetic-freeze-detection-measurements.csv · SHA256 d8240c26a47621b15658afffe7843b7d1fa38ec9cf69f455cc7e9f0f3b9b2147
Freeze Review Record — Complete With Actual Observations
These are illustrative exercise rows. Save a copy and record your own observations; the example is not an executed acceptance test.
| Review case | Input and settings | Suspected interval | Metadata record | Playback observation | Editorial decision |
|---|---|---|---|---|---|
| A: Intended closing hold | [Fill: file/version, n with units, d in seconds] | [Fill: intended hold start/end] | [Fill: reporting timestamp, freeze_start, freeze_end/duration or open at EOF] | [Fill after playback: card content and observed hold] | [Fill: retain or change, with reason] |
| B: Interrupted product action | [Fill: file/version, n with units, d in seconds] | [Fill: suspected stop start/end] | [Fill: actual events, including none] | [Fill after playback: missing or complete action] | [Fill: investigate, repair or retain; an empty log is not approval] |
Sources and further reading
Recorded source-review dates are listed individually below. An undated source does not inherit the article’s publication date. Software and platform rules can change; check the current original before acting.
- FFmpeg Filters: freezedetect · Reviewed
Frequently asked questions
Why does a completely static three-second input produce no event with a four-second threshold?
The required minimum duration was not reached. An empty result under that configuration does not prove the input contained motion.
Does freeze_start without freeze_end mean a zero-duration freeze?
No. The ending metadata appears on the first frame after the freeze. If the sequence ends while frozen, that frame may never occur.
PREPARE ASSETS FOR YOUR NEXT STEP
Create supporting product assets in Itemlume.
Create new product creative assets in the workspace, then continue in your chosen tools. Third-party software procedures described in this guide take place in those applications; this workspace link does not imply an integration. Check current capabilities, account access and credit quotes.
Explore asset creation tools Check pricing and credits