Skip to content

Releases: Breakthrough/PySceneDetect

PySceneDetect v0.6-dev2

07 Mar 03:02

Choose a tag to compare

PySceneDetect v0.5.6.1

12 Oct 01:38

Choose a tag to compare

Fixes crash when using detect-content or detect-adaptive with latest version of OpenCV (thanks @bilde2910). Does not affect the Windows distributions, for the installer/portable version continue to download v0.5.6.

PySceneDetect v0.5.6

15 Aug 23:32

Choose a tag to compare

Release Notes

  • New detection algorithm: detect-adaptive which works similar to detect-content, but with reduced false negatives during fast camera movement (thanks @scarwire and @wjs018)
  • Images generated by save-images can now be resized via the command line
  • Statsfiles now work properly with detect-threshold
  • Removed the -p/--min-percent option from detect-threshold
  • Add new option -l/--luma-only to detect-content/detect-adaptive to only consider brightness channel (useful for greyscale videos)

Changelog

  • [feature] New adaptive content detector algorithm detect-adaptive (#153, thanks @scarwire and @wjs018)
  • [feature] Images generated with the save-images command (scene_manager.save_images() function in the Python API) can now be scaled or resized (#160 and PR #203, thanks @wjs018)
    • Images can be resized by a constant scaling factory using -s/--scale (e.g. --scale 0.5 shrinks the height/width by half)
    • Images can be resized to a specified height (-h/--height) and/or width (-w/--width), in pixels; if only one is specified, the aspect ratio of the original video is kept
  • [api] Calling seek() on a VideoManager will now respect the end time if set
  • [api] The split_video_ functions now return the exit code of invoking ffmpeg or mkvmerge (#209, thanks @AdrienLF)
  • [api] Removed the min_percent argument from ThresholdDetector as was not providing any performance benefit for the majority of use cases (#178)
  • [bugfix] The detect-threshold command now works properly with a statsfile (#211, thanks @jeremymeyers)
  • [bugfix] Fixed crash due to unhandled TypeError exception when using non-PyPI OpenCV packages from certain Linux distributions (#220)
  • [bugfix] A warning is now displayed for videos which may not be decoded correctly, esp. VP9 (#86, thanks @wjs018)
  • [api] A named logger is now used for both API and CLI logging instead of the root logger (#205)

Known Issues

  • Variable framerate videos (VFR) are not fully supported, and will yield incorrect timestamps (#168)
  • The -l/--add-last-scene option in detect-threshold cannot be disabled
  • Image sequences or URL inputs are not supported by the save-images or split-video commands (in v0.6 save-images works with image sequences)
  • Due to the use of truncation for frame number calculation, FrameTimecode objects may be off-by-one when constructed using a float value (#268, fixed in v0.6)

PySceneDetect v0.5.5

17 Jan 23:39

Choose a tag to compare

Release Notes

  • One of the last major updates before transitioning to the new v1.0.x API
  • The --min-scene-len/-m option is now global rather than per-detector
  • There is a new global option --drop-short-scenes to go along with -m
  • Removed first row from statsfiles so it is a valid CSV file
  • The progress bar now correctly resizes when the terminal is resized
  • Image sequences and URLs are now supported for input via the CLI/API
  • Images exported using the save-images command are now resized to match the display aspect ratio
  • A new flag -s/--skip-cuts has been added to the list-scenes command to allow standardized processing
  • The functionality of save-images is now accessible via the Python API through the save_images() function in scenedetect.scene_manager
  • Under the save-images command, renamed --image-frame-margin to --frame-margin, added short option -m, and increased the default value from 0 to 1 due to instances of the last frame of a video being occasionally missed (set -m 0 to restore original behaviour)

Changelog

Full changelog can be found here on Github.

Known Issues

  • Image sequences or URL inputs are not supported by the save-images or split-video commands
  • Variable framerate videos (VFR) are not fully supported, and will yield incorrect timestamps (#168)

PySceneDetect v0.5.4

15 Sep 03:16

Choose a tag to compare

Release Notes

  • Improved performance when using time and save-images commands
  • Improved performance of detect-threshold when using a small minimum percent
  • Fix crash when using detect-threshold with a statsfile
  • Fix crash when using save-images command under Python 2.7
  • Support for Python 3.3 and 3.4 has been deprecated (see below)
  • Version number on PyPI for this release is v0.5.4.1

Changelog

Full changelog can be found here on Github.

Known Issues

  • Variable framerate videos are not supported properly currently (#168), a warning may be added in the next release to indicate when a VFR video is detected, until this can be properly resolved (#168)
  • In certain cases, video files which will not load will fail silently, with PySceneDetect reporting that it processed 0 frames. Better error handling/messaging is planned for these cases as part of #179

PySceneDetect v0.5.3

12 Jul 15:17

Choose a tag to compare

Release Notes

  • Resolved long-standing bug where split-video command would duplicate certain frames at the beginning/end of the output (#93)
  • This was determined to be caused by copying (instead of re-encoding) the audio track, causing extra frames to be brought in when the audio samples did not line up on a frame boundary (thank you @joshcoales for your assistance)
  • Default behavior is to now re-encode audio tracks using the aac codec when using split-video (it can be overriden in both the command line and Python interface)
  • Improved timestamp accuracy when using split-video command to further reduce instances of duplicated or off-by-one frame issues
  • Fixed application crash when using the -l/--logfile argument

Changelog

Full changelog can be found here on Github.

Known Issues

  • Seeking through long videos is inefficient, causing the time and save-images command to take a long time to run. This will be resolved in the next release (see #98)
  • The save-images command causes PySceneDetect to crash under Python 2.7 (see #174)
  • Using detect-threshold with a statsfile causes PySceneDetect to crash (see #122)
  • Variable framerate videos are not supported properly currently (#168), a warning may be added in the next release to indicate when a VFR video is detected, until this can be properly resolved (#168)
  • Videos with multiple audio tracks may not work correctly, see this comment on #179 for a workaround using ffmpeg or mkvmerge

PySceneDetect v0.5.2

29 Mar 18:25

Choose a tag to compare

Minor release including only additions and bugfixes (thanks to everyone who contributed to this release!). Changelog:

  • [enhancement] --min-duration now accepts a timecode in addition to frame number (#128, thanks @tonycpsu)
  • [feature] Add --image-frame-margin option to save-images command to ignore a number of frames at the start/end of a scene (#129, thanks @tonycpsu)
  • [bugfix] --min-scene-len option was not respected by first scene (#105, thanks @charlesvestal)
  • [bugfix] Splitting videos with an analyzed duration only splits within analyzed area (#106, thanks @charlesvestal)
  • [bugfix] Improper start timecode applied to the split-video command when using ffmpeg (#93, thanks @typoman)
  • [bugfix] Added links and filename sanitation to html output (#139 and #140, thanks @wsj018)
  • [bugfix] UnboundLocalError in detect_scenes when frame_skip is larger than 0 (#126, thanks @twostarxx)

PySceneDetect v0.5.1.1

03 Aug 23:24

Choose a tag to compare

  • minor re-release of v0.5.1, includes updated setup.py which returns OpenCV to an optional dependency

  • to install from pip now with all dependencies:

    pip install scenedetect[opencv,progress_bar]

  • to install only PySceneDetect: (separate OpenCV installation required)

    pip install scenedetect

  • the release notes of v0.5.1 have been modified to include the prior command

  • no change to PySceneDetect program version

  • [feature] add get_duration method to VideoManager (#109, thanks @arianaa30)


This change was made to support platforms where the opencv-python package is unavailable, and to allow using a non-pip version of OpenCV (e.g. a binary install or building from source). See #73 for why the original fix was implemented, and #111 for details on what prompted this re-release.

PySceneDetect v0.5.1

20 Jul 23:28

Choose a tag to compare

  • [feature] Add new export-html command to the CLI (thanks @wjs018)
  • [bugfix] VideoManager read function failed on multiple videos (thanks @ivan23kor)
  • [bugfix] Fix crash when no scenes are detected (#79, thanks @raj6996)
  • [bugfix] Fixed OpenCV not getting installed due to missing dependency (#73)
  • [enhance] When no scenes are detected, the whole video is now returned instead of nothing (thanks @piercus)
  • Removed Windows installer due to binary packages now being available, and to streamline the release process (see #102 for more information). When you type pip install scenedetect[opencv,progress_bar], all dependencies will be installed.

PySceneDetect v0.5

31 Aug 06:31

Choose a tag to compare

You can install via pip:

pip install scenedetect

There is now a manual published at manual.scenedetect.com. See the main project page for details on installing dependencies.

The Windows build should be released within a week or so.

Changelog

  • major release, includes stable Python API with examples and updated documentation
  • numerous changes to command-line interface with addition of sub-commands (see the new manual for updated usage information)
  • [feature] videos are now split using ffmpeg by default, resulting in frame-perfect cuts (can still use mkvmerge by specifying the -c/--copy argument to the split-video command)
  • [enhance] image filename numbers are now consistent with those of split video scenes (PR #39, thanks @e271828-)
  • [enhance] 5-10% improvement in processing performance due to reduced memory copy operations (PR #40, thanks [@elcombato] (#40))
  • [enhance] updated exception handling to raise proper standard exceptions (PR #37, thanks @talkain)
  • several fixes to the documentation, including improper dates and outdated CLI arguments (PR #26 and #, thanks [@elcombato] (#26), and @colelawrence)
  • numerous other PRs and issues/bug reports that have been fixed - there are too many to list individually here, so I want to extend a big thank you to everyone who contributed to making this release better
  • [enhance] add Sphinx-generated API documentation (available at: http://manual.scenedetect.com)
  • [project] move from BSD 2-clause to 3-clause license