Updated beta release, only bugfixes to API, several modifications/changes to CLI commands. Summary of major API changes:
- Modify definition of end timecode returned by
scenedetect.SceneManager.get_scene_list()method fromN, whereNis the last frame shown in the scene, toN+1. This now means that the end timecode/frame equals the start timecode/frame of the next adjacent scene. Also note that this is also the definition expected from the external tools used to export video when specifying thesplit-videocommand, improving compatibility with third-party tools. - If the
frame_skipoption is specified to be greater than 0 when using ascenedetect.SceneManager, it is now explicitly disallowed to use ascenedetect.StatsManagerwith theSceneManager. If quicker processing speed is required, users should set thedownscale_factorviaset_downscale_factor(downscale_factor=None). If nodownscale_factoris passed (i.e.downscale_factorisNone), the downscale factor will be computed automatically based on the resolution of the source material, which provides a balance of performance and accuracy for most videos. - Removed unnecessary
new_timeargument fromFrameTimecodeobject, and modify second argumentfpsso it can also be aFrameTimecodeobject from which the framerate is copied, allowing creation of new timecodes from existing ones to follow a much more intuitive syntax.
Summary of major CLI changes from v0.5-beta:
- Fix erroneous output given by default
split-videomode. The new default mode forsplit-videois what-p/--preciseused to be, but somewhat faster, with an additional-h/--high-qualityflag to increase output video quality at expense of time, thus the default mode forsplit-videois slower than it used to be, but significantly more accurate in terms of where output videos are split - The
split-videoflag-m/--mkvmergehas been changed to-c/--copyto better indicate what is happening, and requires mkvmerge, which produces output files significantly faster, but at the expense of frame-perfect accuracy when splitting. - Fix erroneous output given by
split-video -c/--copy. - Changed
split-videooption-f/--ffmpeg-argsto-a/--override-argsto prevent conflicts with new options - Add
split-videooption-o/--output DIRto specify output directory as well as-f/--filename NAMEto specify output filename, which allows the use of the macros$VIDEO_NAMEand$SCENE_NUMBERinNAME
Several updates to other commands as well; use the help command to list all available commands, and the help [command] command to view the options/flags for a particular command (or alternatively help all to show the entire PySceneDetect help/reference manual). Also fixed setup.py (thanks @ishandutta2007).