A small, self-contained Python script that inspects a SEQUENCE of frames for temporal artifacts WITHOUT a reference, using three timeline checks: (1) duplicate/dropped-frame detection via the mean absolute luminance difference between consecutive frames (a near-zero difference flags a held/repeated frame; an abnormally large jump after a run of holds flags a drop); (2) pulldown-cadence detection that recognizes a repeating 3:2 (held, held, held, new, new) or 2:2 pattern from the duplicate sequen
Download free PDF

The handbook · 7 volumes
Fora Soft Video Engineering Handbook
This Python script flags duplicate frames, drops and broken 3:2 or 2:2 pulldown cadence without a reference, enough to triage judder in a pipeline. We wrote seven volumes covering the whole video stack; start with Volume 1 for frame rates and quality metrics, then Volume 3 for player stalls and QoE, with Volume 6 for AI analysis. Written by Nikolay Sapunov, CEO at Fora Soft.
Viewers complain about judder or stutter and you cannot tell if it starts at encode or playback?
Send us affected clips and your pipeline, and we will locate where frames drop or cadence breaks, with the setting that fixes it. 250+ video products shipped since 2005.