Skip to content

Releases: Breakthrough/PySceneDetect

PySceneDetect v0.5-beta-1

07 Aug 02:04

Choose a tag to compare

Pre-release

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 from N, where N is the last frame shown in the scene, to N+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 the split-video command, improving compatibility with third-party tools.
  • If the frame_skip option is specified to be greater than 0 when using a scenedetect.SceneManager, it is now explicitly disallowed to use a scenedetect.StatsManager with the SceneManager. If quicker processing speed is required, users should set the downscale_factor via set_downscale_factor(downscale_factor=None). If no downscale_factor is passed (i.e. downscale_factor is None), 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_time argument from FrameTimecode object, and modify second argument fps so it can also be a FrameTimecode object 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-video mode. The new default mode for split-video is what -p/--precise used to be, but somewhat faster, with an additional -h/--high-quality flag to increase output video quality at expense of time, thus the default mode for split-video is slower than it used to be, but significantly more accurate in terms of where output videos are split
  • The split-video flag -m/--mkvmerge has been changed to -c/--copy to 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-video option -f/--ffmpeg-args to -a/--override-args to prevent conflicts with new options
  • Addsplit-video option -o/--output DIR to specify output directory as well as -f/--filename NAME to specify output filename, which allows the use of the macros $VIDEO_NAME and $SCENE_NUMBER in NAME

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).

PySceneDetect v0.5-beta

01 Aug 20:25

Choose a tag to compare

Pre-release

Beta release of PySceneDetect v0.5 with significantly refactored API and CLI. Users are encouraged to upgrade to the v0.5-beta as soon as possible. The release of v0.5 will break existing scripts/programs; both the command-line interface and Python API have changed significantly to support future development.

Try scenedetect help or scenedetect help all to get started. See the updated README.md for updated quickstart information.

When the final version of v0.5 is released, beta users can upgrade seamlessly. The final release distribution of PySceneDetect v0.5 will be made available some time this month, including source/binary distributions.

This is a source-only distribution, and can only be run locally via the scenedetect.py script. To install the beta, download v0.5-beta-1 or newer (via setup.py install - the version will show up as v0.5-dev). Requires ffmpeg or mkvmerge to enable support for the split-video command.

Includes unit tests using pytest (to run, type pytest -v).

PySceneDetect v0.4

14 Jan 05:48

Choose a tag to compare

This latest release includes integrated video splitting via mkvmerge if installed on the system (included with Windows builds). Note, this update changes the behaviour of the -o / --output option. Overview of changes:

  • specifying -o OUTPUT_FILE.mkv will now automatically split the input video, generating a new video clip for each detected scene in sequence, starting with OUTPUT_FILE-001.mkv
  • CSV file output is now specified with the -co / --csv-output option (note, used to be -o in versions of PySceneDetect < 0.4)

The specific components distributed with the Windows binaries are Python 3.4.4, OpenCV 3.1.0, Numpy 1.11.2, and mkvmerge 9.7.1.

PySceneDetect v0.3.6

12 Jan 07:56

Choose a tag to compare

This release includes some performance improvements, internal application structure changes, and a new lightweight installer for Windows that doesn't require an existing Python environment (a portable version is also available). The recommended installation method for Linux and Mac users is to download the source distribution and run sudo setup.py install in the location of the extracted files (once you have installed the prerequisite OpenCV and Numpy packages for Python).

  • [enhance] speed improvement when using --frameskip option
  • [internal] moved application state and shared objects to a consistent interface (the SceneManager object) to greatly reduce the number of required arguments for certain API functions
  • [enhance] added installer for Windows builds (64-bit only currently)

The specific components distributed with the Windows binaries are Python 3.4.4, OpenCV 3.1.0, and Numpy 1.11.2.

PySceneDetect v0.3.5

03 Aug 00:24

Choose a tag to compare

This release includes some minor bug-fixes, as well as includes a portable build for 64-bit Windows users that don't want to install a Python environment (download PySceneDetect-XYZ-win64.zip and run scenedetect.exe from a command prompt; note you may need to add the folder to your %PATH% variable manually.).

  • [enhance] initial release of portable build for Windows (64-bit only), including all dependencies
  • [bugfix] fix unrelated exception thrown when video could not be loaded
  • [internal] fix variable name typo in API documentation

The specific components distributed with the Windows binaries are Python 3.4.4, OpenCV 3.1.0, and Numpy 1.11.2.

PySceneDetect v0.3.4

09 Feb 01:34

Choose a tag to compare

This release improves the performance of content detection mode, adds a new command line option for selecting fade bias (threshold mode only), and includes various other improvements. List of changes included:

  • [enhance] added scene length, in seconds, to output file (-o) for easier integration with ffmpeg/libav
  • [enhance] improved performance of content detection mode by caching intermediate HSV frames in memory (approx. 2x faster)
  • [enhance] show timecode values in terminal when using extended output (-l)
  • [feature] add fade bias option (-fb / --fade-bias) to command line (threshold mode only)

PySceneDetect v0.3.3

28 Jan 03:35

Choose a tag to compare

This release marks the first stable release, includes several bugfixes, and is now available on PyPI. Changes:

  • [bugfix] scenes are now written correctly to specified output file when using -o flag (fixes #11)
  • [bugfix] fix indexing exception when using multiple scene detectors and outputting statistics
  • [internal] distribute package on PyPI, version move from beta to stable
  • [internal] add function to convert frame number to formatted timecode
  • [internal] move file and statistic output to Python csv module

PySceneDetect v0.3.2 [beta]

26 Jan 08:08

Choose a tag to compare

This release adds image preview generation and duration (start/stop time) setting via four new command-line arguments (click here to view some examples):

  • [feature] added -si / --save-images flag to enable saving the first and last frames of each detected scene as an image, saved in the current working directory with the original video filename as the output prefix
  • [feature] added command line options for setting start and end times for processing (-st and -et)
  • [feature] added command line option to specify maximum duration to process (-dt, overrides -et)

PySceneDetect v0.3.1 [beta]

23 Jan 07:05

Choose a tag to compare

New release with two new command line options - down sampling and frame skipping - both focused on performance/efficiency.

  • [feature] added downscaling/subsampling option (-df / --downscale_factor) to improve performance on higher resolution videos
  • [feature] added frameskip option (-fs / --frame_skip) to improve performance on high framerate videos, at expense of frame accuracy and possible inaccurate scene cut prediction
  • [enhance] added setup.py to allow for one-line installation (just run python setup.py install after downloading and extracting PySceneDetect)
  • [internal] additional API functions to remove requirement on passing OpenCV video objects, and allow just a file path instead

PySceneDetect v0.3 [beta]

08 Jan 15:59

Choose a tag to compare

The first major release of PySceneDetect, including all major features and functions. See the new USAGE.md file for helpful tips on how to use the new detection modes, and for optimal threshold values to try.

Changes from CHANGELOG.md include:

  • major release, includes improved detection algorithms and complete internal code refactor
  • [feature] content-aware scene detection using HSV-colourspace based algorithm (use -d content)
  • [enhance] added CLI flags to allow user changes to more algorithm properties
  • [internal] re-implemented threshold-based scene detection algorithm under new interface
  • [internal] major code refactor including standard detection algorithm interface and API