av-scenechange
Estimates frames in a video where a scenecut would be ideal
0.24.1
23M downloads/mo
#1965 most downloaded on crates.io
rust-av/av-scenechange
What this package is like to depend on
Last release 2 months ago
22 Jun 2026
Release timing varies
gaps range from 9 days to 4 months
Nearly every release is documented
notes for 38 of 38 stable releases
3 versions withdrawn
withdrawn after publishing
7 years old
41 releases · first in 2019
14 releases in the last 12 months
see the full history below
Release timeline
41 releases · Nov 2019 to Jun 2026Releases
latest 41-
0.24.122 Jun 2026Release notes
Open source →What's Changed
- Update CI and fix rust-toolchain usage by @FreezyLemon in #207
- chore: bump av-decoders by @FreezyLemon in #208
- add maybe-rayon and "threading" feature by @FreezyLemon in #206
- Remove thiserror dependency by @fintelia in #205
- Limit cpufeatures dependency to x86_64 by @felixonmars in #209
- bump rand to 0.8.6 by @FreezyLemon in #212
- remove pastey dependency by @FreezyLemon in #211
- Pass CI by @FreezyLemon in #213
- refactor: simplify asm build script by @shssoichiro in #215
- chore: replace semisafe with native unsafe methods by @shssoichiro in #216
- Update deploy workflow by @FreezyLemon in #217
New Contributors
- @fintelia made their first contribution in #205
- @felixonmars made their first contribution in #209
Full Changelog: v0.23.0...v0.24.1
Release notes
Open source →- perf: change to debug_assert in hot paths
- perf: optimize away checks for invalid block size
-
0.24.021 Jun 2026Release notes
Open source →- chore!: bump MSRV to 1.95
- chore!: update
v_frameto 0.7.0 - feat: add
threadingCargo feature, enabled by default, to allow builds withoutrayon - feat: add tracing spans and switch tracing output from Chrome traces to Perfetto
- perf: elide more bounds checks in intra/inter analysis paths
- refactor: remove dead sub-pixel motion estimation and motion compensation code
- chore: update
av-decodersto 0.11.0 and other dependencies - chore: remove unused dependencies including
pasteyandthiserror - chore: limit
cpufeaturesdependency to x86_64 targets
-
0.23.023 Feb 2026Release notes
Open source →- feat: add
static_simdCargo feature - chore!: bump MSRV to 1.89 (required for
target_feature = "avx512*")
- feat: add
-
0.22.220 Feb 2026Release notes
Open source →What's Changed
- Make DetectionResults Deserialize by @MCOfficer in #204
New Contributors
- @MCOfficer made their first contribution in #204
Full Changelog: v0.22.1...v0.22.2
Release notes
Open source →- feat: Make DetectionResults Deserialize
- perf: add SSE2 for
sum_8x8_block
-
0.22.130 Jan 2026Release notes
Open source →- perf: Revert NonZeroUsize changes as these actually had a negative performance impact
-
0.22.022 Jan 2026 -
0.21.220 Jan 2026Release notes
Open source →- fix: Avoid an edge case in predict_dc_intra SIMD
- perf: Use NonZeroUsize to elide many unneeded div by zero checks
- perf: Eliminate some unneeded bounds checking
-
0.21.107 Jan 2026Release notes
Open source →- Update to
v_frame0.5. This fixes breakages that occurred on HBD with some decoders.
- Update to
-
0.21.006 Jan 2026 withdrawnRelease notes
Open source →What's Changed
- Better handle licenses attached to assembly routines by @musicinmybrain in #201
- Update for v_frame 0.4 by @shssoichiro in #202
New Contributors
- @musicinmybrain made their first contribution in #201
Full Changelog: v0.20.0...v0.21.0
-
0.20.027 Dec 2025 -
0.19.206 Dec 2025Release notes
Open source →- Significantly improve threading performance by decoding on a separate thread
-
0.19.105 Dec 2025 -
0.19.004 Dec 2025 withdrawn -
0.18.030 Oct 2025 -
0.17.305 Aug 2025 -
0.17.213 Jul 2025 -
0.17.108 Jul 2025Release notes
Open source →- Make the fields on
ScenecutResultpublic so that it can actually be useful
- Make the fields on
-
0.17.001 Jul 2025Release notes
Open source →- [Breaking] Update the
analyze_next_framemethod to also return the frame scores, if present - [Breaking] Update the
DetectionResultsto also return frame scores
- [Breaking] Update the
-
0.16.028 Jun 2025Release notes
Open source →- [Breaking] Use
av_decoderscrate instead of providing our own decoder structs - [Breaking] Bump minimum rust version to 1.86
- Bump Rust edition to 2024, since the minimum Rust version had to be bumped anyway
- [Breaking] Use
-
0.15.008 Jun 2025Release notes
Open source →- [Breaking] Remove
CpuFeatureLevelstruct and params. This removes the ability to disable SIMD at runtime, but this isn't a particularly useful feature and added code complexity. - Refactor SIMD modules
- [Breaking] Remove
-
0.14.121 May 2025Release notes
Open source →- Readd support for caching intra costs
- Expose structs for advanced API users
-
0.14.021 May 2025Release notes
Open source →- [Breaking/Feature] Add
SceneDetectionSpeed::None, which will only place keyframes at fixed intervals without running dynamic detection - Migrate detection code from rav1e into this crate
- [Breaking/Feature] Add
-
0.13.028 Jan 2025Release notes
Open source →- [Breaking] Update ffmpeg-the-third to 3.x
- Update all other dependencies to latest version
-
0.12.210 Jun 2024 -
0.12.110 Jun 2024 withdrawnNothing published for this version
-
0.12.023 May 2024Release notes
Open source →- [Breaking] Move
VideoDetailsstruct fromy4mmodule todecodermodule, since it is not specific to y4m - Add support for Ffmpeg decoder (requires Cargo
ffmpegfeature, disabled by default)
- [Breaking] Move
-
0.11.022 May 2024Release notes
Open source →- Add support for Vapoursynth decoder (requires Cargo
vapoursynthfeature, disabled by default) - Breaking change required to add a wrapper enum defining which decoder is being used
- Add support for Vapoursynth decoder (requires Cargo
-
0.10.014 Jan 2024 -
0.9.024 Apr 2023 -
0.8.112 Dec 2022 -
0.7.231 Oct 2021Release notes
Open source →- Bump to the final release of rav1e 0.5
- Bump other dependencies to latest versions
- Fix another inconsistency with rav1e's scene detection
- Improve precision of FPS calculation
-
0.7.117 Sep 2021Release notes
Open source →- Fix an inconsistency with how rav1e's scene detection works
- Fix some CLI help text
-
0.7.014 Sep 2021Release notes
Open source →- Bump rav1e dependency to 0.5-beta.2, which brings a new, improved scenechange algorithm. Medium is equivalent to the old slow level, but with improvements. The fast level also has improvements. The new slow level is a new algorithm with a higher accuracy than the previous two algorithms.
- The
--fast-modeCLI argument is removed in favor of a--speedor-sargument, which takes a 0, 1, or 2 (for slow, medium, or fast). The default is 0 for slow.
-
0.6.014 Aug 2021Release notes
Open source →- Bump rav1e dependency to 0.5. This should bring significant performance improvements, but may cause breaking changes.
-
0.5.024 Feb 2021Release notes
Open source →- Bump rav1e dependency to 0.4
- Expose
new_detectoranddetect_scene_changessince these may be useful in some situations to use directly
-
0.4.215 Sep 2020 -
0.4.102 Apr 2020 -
0.4.031 Mar 2020Release notes
Open source →- [Breaking, New Feature]
detect_scene_changesreturns aDetectionOptionsstruct, which includes the list of scenecut frames, and the total count of frames in the video. The CLI output will reflect this as well. - [Breaking] Replace the default algorithm with an 8x8-block cost-based algorithm. This is more accurate in many cases.
- [Breaking] As a result of the above change, now requires nasm for compilation. No action is needed if you use a prebuilt binary.
- [Breaking] Replace the
use_chromaoption with afast_analysisoption. The new name is more accurate, as the updated algorithm will always analyze only the luma plane. - [Breaking] Move the
progress_callbackparameter fromDetectionOptionstodetect_scene_changes, since it only applies to that interface. - [New Feature] Expose the
SceneChangeDetectorstruct, which allows going frame-by-frame to analyze a clip. Needed for some use cases.detect_scene_changesis the simpler, preferred interface. - The library for inputting frame data has been replaced with one that matches rav1e.
- Simplify/optimize some internal code.
- [Breaking, New Feature]
-
0.3.002 Dec 2019Release notes
Open source →- [Breaking, New Feature] Add the ability to pass a
progress_callbackfunction to theDetectionOptions.
- [Breaking, New Feature] Add the ability to pass a
-
0.2.001 Dec 2019 -
0.1.027 Nov 2019