Skip to content

Releases: cansik/sharp-frame-extractor

Version 2.0.0

13 Jan 09:16
10ff4a1

Choose a tag to compare

Prebuilt package version 2.0.0.

  • Refactored the core extractor into a proper library API (new SharpFrameExtractor class) and updated the CLI entrypoint so it's easier to embed in other tools
  • Reworked the CLI around simpler sampling modes (e.g., target frame count vs. fixed time interval) and introduced a two-pass pipeline for more memory-efficient analysis and faster processing
  • Improved sharpness scoring (Tenengrad/Sobel-based focus measure) to pick better “best frame per block” results, especially in challenging motion/blur segments
  • Replaced hardcoded PNG file writes with pluggable output handlers so consumers can customize how/where frames are exported
  • Added async file writing in the default file output handler to increase throughput when exporting large frame sets
  • Reduced memory use for multi-worker extraction via shared-memory-backed NumPy arrays and a per-job shared memory pool (less copying, lower peak RAM)
  • Further lowered memory footprint by decoupling stream block sizing from interval length and adding psutil for memory-aware behavior
  • Fixed concurrency and resource-retention issues (e.g., worker future handling and a CLI memory leak) to improve long-run stability
  • Improved CLI UX with more informative, colorful progress reporting via Rich (plus minor cleanup/formatting fixes)

Version 2.0.0-rc.2

08 Jan 12:27
13720f1

Choose a tag to compare

Version 2.0.0-rc.2 Pre-release
Pre-release

Prebuilt package version 2.0.0-rc.2.

  • Refactored the extractor so it can be used cleanly as a library (new SharpFrameExtractor class plus updated CLI entrypoint), making it easier to embed in other tools
  • Added pluggable output handlers instead of hardcoded PNG writes, allowing consumers to customize how and where frames are exported
  • Implemented async file writing support in the default file output handler, improving throughput when exporting large numbers of frames
  • Introduced shared memory backing for NumPy arrays and a per-job shared memory pool, reducing copying and lowering overall memory usage for multi-worker extraction
  • Reduced memory footprint by decoupling stream block size from interval length, and added psutil to support memory-aware behavior
  • Fixed a concurrency issue in worker future handling and ensured completed futures are cleared to avoid retaining references
  • Fixed a CLI memory leak by @dna-topoisomerase in #3
  • Improved CLI UX with colorful progress bars using a custom Rich progress column
  • Minor CLI import formatting cleanup

New Contributors

Version 2.0.0-rc.1

04 Jan 18:51
5dee873

Choose a tag to compare

Version 2.0.0-rc.1 Pre-release
Pre-release

Prebuilt package version 2.0.0-rc.1.

Version 1.6.6

02 Oct 07:23

Choose a tag to compare

  • Added command line alias sfextract
  • Limited CPU usage by default to 1/4 of the available CPUs

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.6

Version 1.6.5

07 May 14:49

Choose a tag to compare

Add option to extract all frames from the video --all.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.5

Version 1.6.4

24 Apr 16:05

Choose a tag to compare

Fixed missing requirements.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.4

Version 1.6.3

22 Apr 10:41

Choose a tag to compare

Fixes None extraction bug.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.3

Version 1.6.2

21 Apr 10:58

Choose a tag to compare

This release removes the CPU estimation with the RAM size and adds a good looking progress bar.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.2

Version 1.6.1

18 Apr 22:47

Choose a tag to compare

Small bugfixes.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.1

Version 1.6.0

18 Apr 22:39

Choose a tag to compare

Finally it's possible to use sharp-frame-extractor as a runnable module python -m sharp_frame_extractor --help.

To install use the following command:

pip install git+https://github.com/cansik/sharp-frame-extractor.git@1.6.0