unstale

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 init

@unstale/cli 0.2.8 on npm

scenedetect 0.735 changes

Breaking changes 8

  • The command now ignores fade-outs shorter than 0.1s by default; use --min-out-length 0 to restore prior behavior.

    0.7.2release notes

  • The default size changed from 16 to 8, changing detector output unless the parameter is set explicitly.

    0.7.2release notes

  • The default threshold changed from 0.395 to 0.35, changing detector output unless the parameter is set explicitly.

    0.7.2release notes

  • The default bins changed from 256 to 128, changing detector output unless the parameter is set explicitly.

    0.7.2release notes

  • The default threshold changed from 0.05 to 0.20, changing detector output unless the parameter is set explicitly.

    0.7.2release notes

  • The package has been discontinued and its only release was yanked from PyPI; existing installs will not receive updates. Install scenedetect or scenedetect-headless instead.

    0.7.2release notes

  • The first frame is now classified with the CEILING rule rather than the FLOOR rule, preventing a one-frame-late leading fade and a spurious first-frame cut.

    0.7.2release notes

  • 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().

    0.7.1release notes

Deprecations 1

  • Legacy framerate argument aliases now emit a DeprecationWarning; use frame_rate instead, which takes precedence when both are provided.

    0.7.2release notes

New APIs and options 13

  • Adds a CLI option to require fades to stay below the threshold for a specified duration.

    0.7.2release notes

  • A new command exports detected cuts in # keyframe format v1 for Aegisub-compatible tools; frame numbers are approximate for VFR input.

    0.7.2release notes

  • EDL, FCPXML, FCP7 XML, and OTIO output functions now accept open text handles, string paths, or pathlib.Path values; paths are managed automatically.

    0.7.2release notes

  • Adds min_out_length to require fades to stay below the threshold for a specified duration.

    0.7.2release notes

  • Now accepts a string or pathlib.Path as the first argument and opens and closes paths automatically.

    0.7.2release notes

  • Adds a helper to extend a scene list so its first and last scenes reach given lower and upper bounds.

    0.7.1release notes

  • Now accepts a list of paths as input, enabling multiple videos to be opened as a concatenated stream.

    0.7.1release notes

  • Now accepts a list of paths as input, enabling detection across multiple videos.

    0.7.1release notes

  • Adds a backend keyword argument accepting "opencv", "pyav", or "moviepy"; it defaults to "opencv", matching prior behavior.

    0.7.1release notes

  • 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.

    0.7.1release notes

  • 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.

    0.7.1release notes

  • Adds a stream that concatenates multiple videos into one continuous stream with a monotonic PTS timeline.

    0.7.1release notes

  • Maps spans on the global concatenated timeline back to per-source local times.

    0.7.1release notes

Behavior and default changes 2

  • -f, --frame-rate, and --framerate are aliases; if multiple forms are given, the last value is used.

    0.7.2release notes

  • The PyAV backend skips corrupt frames during read and continues decoding, giving up only after 8 consecutive decode failures.

    0.7.1release notes

Tooling 1

  • Official Docker images are published to GitHub Container Registry with the full CLI, all backends, and external tools including ffmpeg and mkvmerge.

    0.7.1release notes

Fixes and other changes 10

  • Prevents scenes shorter than min_scene_len from being emitted when window_width is large.

    0.7.2release notes

  • Frame-based minimum scene lengths no longer drop cuts exactly that many frames apart at NTSC framerates.

    0.7.2release notes

  • Works around an intermittent Windows exit segfault when opening PNG image sequences with opencv-python 4.14 or 5.0.

    0.7.2release notes

  • The progress bar now reaches 100% when processing VFR videos with either the OpenCV or PyAV backend.

    0.7.2release notes

  • Fixes a TypeError when opening videos with the PyAV backend on PyAV 19.0 or newer.

    0.7.2release notes

  • Fixes the PyAV backend's duration calculation fallback.

    0.7.2release notes

  • The backend now releases its opened file handle when the stream is garbage collected, avoiding a ResourceWarning under python -X dev.

    0.7.2release notes

  • The Windows distribution now bundles PyAV 19 and FFmpeg 9.0.

    0.7.2release notes

  • 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.

    0.7.1release notes

  • Fixes image sequence inputs when using OpenCV 5.0.

    0.7.1release notes