Releases: cansik/sharp-frame-extractor
Releases · cansik/sharp-frame-extractor
Version 2.0.0
Prebuilt package version 2.0.0.
- Refactored the core extractor into a proper library API (new
SharpFrameExtractorclass) 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
psutilfor 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
Prebuilt package version 2.0.0-rc.2.
- Refactored the extractor so it can be used cleanly as a library (new
SharpFrameExtractorclass 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
psutilto 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
- @dna-topoisomerase made their first contribution in #3
Version 2.0.0-rc.1
Prebuilt package version 2.0.0-rc.1.
Version 1.6.6
- 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
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
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
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
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
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
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