Release Notes
In addition to some perfromance improvements with the load-scenes
command, this release of PySceneDetect includes a significant amount of bugfixes. Thanks to everyone who contributed to the release, including those who filed bug reports and helped with debugging!
Program Changes:
- [bugfix] Fix crash for some WebM videos when using
save-images
with--backend pyav
#355 - [bugfix] Correct
--duration
and--end
for presentation time when specified as frame numbers #341 - [bugfix] Progress bar now has correct frame accounting when
--duration
or--end
are set #341 - [bugfix] Only allow
load-scenes
to be specified once, and disallow with otherdetect-*
commands #347 - [bugfix] Disallow
-s
/--start
being larger than-e
/--end
for thetime
command - [bugfix] Fix
detect-adaptive
not respecting--min-scene-len
for the first scene - [general] Comma-separated timecode list is now only printed when the
list-scenes
command is specified #356 - [general] Several changes to
[list-scenes]
config file options:- Add
display-scenes
anddisplay-cuts
options to control output - Add
cut-format
to control formatting of cut points #349- Valid values:
frames
,timecode
,seconds
- Valid values:
- Add
- [general] Increase progress bar indent to improve visibility and visual alignment
- [improvement] The
s
suffix for setting timecode values in seconds is no longer required (values without decimal places are still interpreted as frame numbers) - [improvement]
load-scenes
now skips detection, generating output much faster #347 (thanks @wjs018 for the initial implementation)
API Changes:
- [bugfix] Fix
AttributeError
thrown when accessingaspect_ratio
on certain videos usingVideoStreamAv
#355 - [bugfix] Fix circular imports due to partially initialized module for some development environments #350
- [bugfix] Fix
SceneManager.detect_scenes
warning whenduration
orend_time
are specified as timecode strings #346 - [bugfix] Ensure correct string conversion behavior for
FrameTimecode
when rounding is enabled #354 - [bugfix] Fix
AdaptiveDetector
not respectingmin_scene_len
for the first scene - [feature] Add
output_dir
argument tosplit_video_ffmpeg
andsplit_video_mkvmerge
functions to set output directory #298 - [feature] Add
formatter
argument tosplit_video_ffmpeg
to allow formatting filenames via callback [#359](https://github.com/
/issues/359) - [general] The
frame_img
argument toSceneDetector.process_frame()
is now required - [general] Remove
TimecodeValue
fromscenedetect.frame_timecode
(usetyping.Union[int, float, str]
) - [general] Remove
MotionDetector
andscenedetect.detectors.motion_detector
module (will be reintroduced afterSceneDetector
interface is stable) - [improvement]
scenedetect.stats_manager
module improvements:- The
StatsManager.register_metrics()
method no longer throws any exceptions - Add
StatsManager.metric_keys
property to query registered metric keys - Deprecate
FrameMetricRegistered
andFrameMetricNotRegistered
exceptions (no longer used)
- The
- [improvement] When converting strings representing seconds to
FrameTimecode
, thes
suffix is now optional, and whitespace is ignored (note that values without decimal places are still interpreted as frame numbers) - [improvement] The
VideoCaptureAdapter
inscenedetect.backends.opencv
now attempts to report duration if known