pypi / scenedetect
scenedetect
What changed in scenedetect 0.7, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-27.
8 breaking1 deprecations13 new APIs and options2 behavior and defaults1 tooling10 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initscenedetect 0.735 changes
Breaking changes 8
The command now ignores fade-outs shorter than 0.1s by default; use
--min-out-length 0to restore prior behavior.The default size changed from 16 to 8, changing detector output unless the parameter is set explicitly.
The default threshold changed from 0.395 to 0.35, changing detector output unless the parameter is set explicitly.
The default bins changed from 256 to 128, changing detector output unless the parameter is set explicitly.
The default threshold changed from 0.05 to 0.20, changing detector output unless the parameter is set explicitly.
The package has been discontinued and its only release was yanked from PyPI; existing installs will not receive updates. Install
scenedetectorscenedetect-headlessinstead.The first frame is now classified with the
CEILINGrule rather than theFLOORrule, preventing a one-frame-late leading fade and a spurious first-frame cut.The PyAV backend normalizes presentation times by stream start time, so files with delayed starts report the first frame at position 0, consistently with other backends and seek().
Deprecations 1
Legacy
framerateargument aliases now emit aDeprecationWarning; useframe_rateinstead, which takes precedence when both are provided.
New APIs and options 13
Adds a CLI option to require fades to stay below the threshold for a specified duration.
A new command exports detected cuts in
# keyframe format v1for Aegisub-compatible tools; frame numbers are approximate for VFR input.EDL, FCPXML, FCP7 XML, and OTIO output functions now accept open text handles, string paths, or
pathlib.Pathvalues; paths are managed automatically.Adds
min_out_lengthto require fades to stay below the threshold for a specified duration.Now accepts a string or
pathlib.Pathas the first argument and opens and closes paths automatically.Adds a helper to extend a scene list so its first and last scenes reach given lower and upper bounds.
Now accepts a list of paths as input, enabling multiple videos to be opened as a concatenated stream.
Now accepts a list of paths as input, enabling detection across multiple videos.
Adds a backend keyword argument accepting "opencv", "pyav", or "moviepy"; it defaults to "opencv", matching prior behavior.
Adds --expand to extend the first and last output clips to the video bounds when scenes are detected within a time window, preventing footage outside the analysis window from being dropped.
Adds a public read-only property reporting how many frames failed to decode and were skipped; it defaults to 0 and is populated by the OpenCV and PyAV backends.
Adds a stream that concatenates multiple videos into one continuous stream with a monotonic PTS timeline.
Maps spans on the global concatenated timeline back to per-source local times.
Behavior and default changes 2
-f,--frame-rate, and--framerateare aliases; if multiple forms are given, the last value is used.The PyAV backend skips corrupt frames during read and continues decoding, giving up only after 8 consecutive decode failures.
Tooling 1
Official Docker images are published to GitHub Container Registry with the full CLI, all backends, and external tools including ffmpeg and mkvmerge.
Fixes and other changes 10
Prevents scenes shorter than
min_scene_lenfrom being emitted whenwindow_widthis large.Frame-based minimum scene lengths no longer drop cuts exactly that many frames apart at NTSC framerates.
Works around an intermittent Windows exit segfault when opening PNG image sequences with
opencv-python4.14 or 5.0.The progress bar now reaches 100% when processing VFR videos with either the OpenCV or PyAV backend.
Fixes a
TypeErrorwhen opening videos with the PyAV backend on PyAV 19.0 or newer.Fixes the PyAV backend's duration calculation fallback.
The backend now releases its opened file handle when the stream is garbage collected, avoiding a
ResourceWarningunderpython -X dev.The Windows distribution now bundles PyAV 19 and FFmpeg 9.0.
Comparisons between exact-presentation-time objects with the same frame rate now use pts and time_base, avoiding incorrect equality or ordering for distinct VFR frames that round to the same frame number.
Fixes image sequence inputs when using OpenCV 5.0.