Overview of Features

  Content-Aware Scene Detection

    Detects breaks in-between content, not only when the video fades to black (although a threshold mode is available as well for those cases).

  Compatible With Many External Tools

    The detected scene boundaries/cuts can be exported in a variety of formats, with the default type (comma-separated HH:MM:SS.nnn values) being ready to copy-and-paste directly into other tools (such as ffmpeg, mkvmerge, etc...) for splitting and/or re-encoding the video.

  Statistical Video Analysis

    Can output a spreadsheet-compatible file for analyzing trends in a particular video file, to determine the optimal threshold values to use with specific scene detection methods/algorithms.

  Extendible and Embeddable

    Written in Python, and designed with an easy-to-use and extendable API, PySceneDetect is ideal for embedding into other programs, or to implement custom methods/algorithms of scene detection for specific applications (e.g. analyzing security camera footage).

Features in Current Release

  • exports list of scenes to .CSV file and terminal (both timecodes and frame numbers) with list-scenes command
  • exports timecodes in standard format (HH:MM:SS.nnn), comma-separated for easy copy-and-paste into external tools and analysis with spreadsheet software
  • statistics/analysis mode to export frame-by-frame video metrics (--stats/-s statsfile.csv)
  • output-suppression (quiet) mode for better automation with external scripts/programs (-v quiet)
  • user-selectable subsampling for improved performance (-d/--downscale)
  • user-selectable frame skipping for improved performance (-fs, not recommended)
  • save an image of the first and last frame of each detected scene via the save-images command
  • ability to specify starting/ending times via time command (--start/-s and --end/-e), and/or set duration for processing (--duration/-d)
  • user-definable fade bias to shift scenes between fade in/out points (threshold mode only)

Scene Detection Methods

  • threshold scene detection (detect-threshold): analyzes video for changes in average frame intensity/brightness
  • content-aware scene detection (detect-content): based on changes between frames in the HSV color space

For a detailed explanation of how a particular scene detection method/algorithm works, see the Scene Detection Method Details Section in the Documentation & Reference.


Version Roadmap

Future version roadmaps are now tracked as milestones (link). Specific issues/features that are queued up for the very next release will have the backlog tag, and issues/features being worked on will have the status: in progress tag. Also note that bug reports as well as additional feature requests can be submitted via the issue tracker; read the Bug Reports and Contributing page for details.

Planned Features for Future Releases

The following are features being planned or developed for future releases of PySceneDetect:

  • automatic threshold detection for the current scene detection methods (can simply be an ouptut message indicating "Predicted Best Threshold: X")
  • optional suppression of short-length flashes/bursts of light [#35]
  • support for using multiple --input videos and the split-video command without the -c/--copy flag [#71]
  • colour histogram-based scene detection algorithm in the HSV/HSL colourspace [#53]
  • perceptual hash based scene detection
  • improve robustness of content-aware detection by combining with edge detection (similar to MATLAB-based scene change detector)
  • adaptive bias for fade in/out interpolation
  • multithreaded implementation of detection algorithms for improved performance
  • GUI for easier previewing and threshold setting (will be GTK+ 3 based via PyGObject)
  • export scenes in chapter/XML format
  • additional timecode formats