# What changed in scenedetect

> 35 changes in scenedetect 0.7 from its official release notes, upgrade guides and advisories: 8 breaking, 1 deprecations, 13 new APIs and options. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/pypi/scenedetect/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## scenedetect 0.7

### Breaking changes

- The command now ignores fade-outs shorter than 0.1s by default; use `--min-out-length 0` to restore prior behavior. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The default size changed from 16 to 8, changing detector output unless the parameter is set explicitly. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The default threshold changed from 0.395 to 0.35, changing detector output unless the parameter is set explicitly. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The default bins changed from 256 to 128, changing detector output unless the parameter is set explicitly. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The default threshold changed from 0.05 to 0.20, changing detector output unless the parameter is set explicitly. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- 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.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- 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.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- 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.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)

### Deprecations

- Legacy `framerate` argument aliases now emit a `DeprecationWarning`; use `frame_rate` instead, which takes precedence when both are provided. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)

### New APIs and options

- Adds a CLI option to require fades to stay below the threshold for a specified duration. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- A new command exports detected cuts in `# keyframe format v1` for Aegisub-compatible tools; frame numbers are approximate for VFR input. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- 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.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Adds `min_out_length` to require fades to stay below the threshold for a specified duration. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Now accepts a string or `pathlib.Path` as the first argument and opens and closes paths automatically. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Adds a helper to extend a scene list so its first and last scenes reach given lower and upper bounds. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Now accepts a list of paths as input, enabling multiple videos to be opened as a concatenated stream. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Now accepts a list of paths as input, enabling detection across multiple videos. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Adds a backend keyword argument accepting "opencv", "pyav", or "moviepy"; it defaults to "opencv", matching prior behavior. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- 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.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- 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.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Adds a stream that concatenates multiple videos into one continuous stream with a monotonic PTS timeline. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Maps spans on the global concatenated timeline back to per-source local times. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)

### Behavior and default changes

- `-f`, `--frame-rate`, and `--framerate` are aliases; if multiple forms are given, the last value is used. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The PyAV backend skips corrupt frames during read and continues decoding, giving up only after 8 consecutive decode failures. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)

### Tooling

- Official Docker images are published to GitHub Container Registry with the full CLI, all backends, and external tools including ffmpeg and mkvmerge. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)

### Fixes and other changes

- Prevents scenes shorter than `min_scene_len` from being emitted when `window_width` is large. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Frame-based minimum scene lengths no longer drop cuts exactly that many frames apart at NTSC framerates. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Works around an intermittent Windows exit segfault when opening PNG image sequences with `opencv-python` 4.14 or 5.0. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The progress bar now reaches 100% when processing VFR videos with either the OpenCV or PyAV backend. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Fixes a `TypeError` when opening videos with the PyAV backend on PyAV 19.0 or newer. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- Fixes the PyAV backend's duration calculation fallback. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The backend now releases its opened file handle when the stream is garbage collected, avoiding a `ResourceWarning` under `python -X dev`. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- The Windows distribution now bundles PyAV 19 and FFmpeg 9.0. (0.7.2) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.2)
- 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.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
- Fixes image sequence inputs when using OpenCV 5.0. (0.7.1) — [release notes](https://github.com/Breakthrough/PySceneDetect/releases/tag/v0.7.1)
