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 - adaptive content scene detection (
detect-adaptive
): based ondetect-content
but handles fast camera movement better in some cases
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 thesplit-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