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-imageswith--backend pyav#355 - [bugfix] Correct 
--durationand--endfor presentation time when specified as frame numbers #341 - [bugfix] Progress bar now has correct frame accounting when 
--durationor--endare set #341 - [bugfix] Only allow 
load-scenesto be specified once, and disallow with otherdetect-*commands #347 - [bugfix] Disallow 
-s/--startbeing larger than-e/--endfor thetimecommand - [bugfix] Fix 
detect-adaptivenot respecting--min-scene-lenfor the first scene - [general] Comma-separated timecode list is now only printed when the 
list-scenescommand is specified #356 - [general] Several changes to 
[list-scenes]config file options:- Add 
display-scenesanddisplay-cutsoptions to control output - Add 
cut-formatto 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 
ssuffix for setting timecode values in seconds is no longer required (values without decimal places are still interpreted as frame numbers) - [improvement] 
load-scenesnow skips detection, generating output much faster #347 (thanks @wjs018 for the initial implementation) 
API Changes:
- [bugfix] Fix 
AttributeErrorthrown when accessingaspect_ratioon certain videos usingVideoStreamAv#355 - [bugfix] Fix circular imports due to partially initialized module for some development environments #350
 - [bugfix] Fix 
SceneManager.detect_sceneswarning whendurationorend_timeare specified as timecode strings #346 - [bugfix] Ensure correct string conversion behavior for 
FrameTimecodewhen rounding is enabled #354 - [bugfix] Fix 
AdaptiveDetectornot respectingmin_scene_lenfor the first scene - [feature] Add 
output_dirargument tosplit_video_ffmpegandsplit_video_mkvmergefunctions to set output directory #298 - [feature] Add 
formatterargument tosplit_video_ffmpegto allow formatting filenames via callback [#359](https://github.com/
/issues/359) - [general] The 
frame_imgargument toSceneDetector.process_frame()is now required - [general] Remove 
TimecodeValuefromscenedetect.frame_timecode(usetyping.Union[int, float, str]) - [general] Remove 
MotionDetectorandscenedetect.detectors.motion_detectormodule (will be reintroduced afterSceneDetectorinterface is stable) - [improvement] 
scenedetect.stats_managermodule improvements:- The 
StatsManager.register_metrics()method no longer throws any exceptions - Add 
StatsManager.metric_keysproperty to query registered metric keys - Deprecate 
FrameMetricRegisteredandFrameMetricNotRegisteredexceptions (no longer used) 
 - The 
 - [improvement] When converting strings representing seconds to 
FrameTimecode, thessuffix is now optional, and whitespace is ignored (note that values without decimal places are still interpreted as frame numbers) - [improvement] The 
VideoCaptureAdapterinscenedetect.backends.opencvnow attempts to report duration if known