Skip to content

Commit fd455a0

Browse files
committed
[release] 0.6-dev2
1 parent eab349e commit fd455a0

14 files changed

Lines changed: 43 additions & 40 deletions

File tree

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ Video Scene Cut Detection and Analysis Tool
88

99
----------------------------------------------------------
1010

11-
### Version: v0.6-dev (TBD)
11+
### Latest Release: v0.6-dev2 (March 6, 2022)
1212

1313
**Website**: http://www.scenedetect.com
1414

15-
**Getting Started**: [Usage Example](https://pyscenedetect.readthedocs.io/en/latest/examples/usage-example/)
15+
**Getting Started**: [Usage Example](https://scenedetect.com/examples/usage-example/)
1616

1717
**Documentation**: http://manual.scenedetect.com
1818

@@ -22,11 +22,11 @@ Video Scene Cut Detection and Analysis Tool
2222

2323
**Quick Install**: To install PySceneDetect via `pip` with all dependencies:
2424

25-
pip install scenedetect[opencv]
25+
pip install scenedetect[opencv] --pre
2626

27-
For servers, you can use the headless (non-GUI) version of OpenCV by installing `scenedetect[opencv-headless]`. To enable video splitting support, you will also need to have `mkvmerge` or `ffmpeg` installed - see the documentation on [Video Splitting Support](https://pyscenedetect.readthedocs.io/en/latest/examples/video-splitting/) for details.
27+
For servers, you can use the headless (non-GUI) version of OpenCV by installing `scenedetect[opencv-headless]`. To enable video splitting support, you will also need to have `mkvmerge` or `ffmpeg` installed - see the documentation on [Video Splitting Support](https://scenedetect.com/examples/video-splitting/) for details.
2828

29-
Requires Python modules `click`, `numpy`, OpenCV `cv2`, and (optional) `tqdm` for displaying progress. For details, see the [dependencies on the downloads page](https://pyscenedetect.readthedocs.io/en/latest/download/#dependencies).
29+
Requires Python modules `click`, `numpy`, OpenCV `cv2`, and (optional) `tqdm` for displaying progress. For details, see the [dependencies on the downloads page](https://scenedetect.com/download/#dependencies).
3030

3131
----------------------------------------------------------
3232

@@ -44,7 +44,7 @@ To show a summary of all other options and commands:
4444

4545
scenedetect help
4646

47-
You can find more examples [on the website](https://pyscenedetect.readthedocs.io/en/latest/examples/usage-example/) or [in the manual](https://pyscenedetect.readthedocs.io/projects/Manual/en/latest/cli/global_options.html).
47+
You can find more examples [on the website](https://scenedetect.com/examples/usage-example/) or [in the manual](https://manual.scenedetect.com/en/v0.6-dev2/cli/global_options.html).
4848

4949
**Quick Start (Python API)**:
5050

@@ -75,7 +75,7 @@ scene_list = detect('my_video.mp4', ContentDetector())
7575
split_video_ffmpeg('my_video.mp4', scene_list)
7676
```
7777

78-
For more advanced usage, the API is highly configurable, and can easily integrate with any pipeline. This includes using different detection algorithms, splitting the input video, and much more. The following example shows how to implement a function similar to the above, but using [the `scenedetect` API](https://pyscenedetect.readthedocs.io/projects/Manual/en/latest/api.html):
78+
For more advanced usage, the API is highly configurable, and can easily integrate with any pipeline. This includes using different detection algorithms, splitting the input video, and much more. The following example shows how to implement a function similar to the above, but using [the `scenedetect` API](https://manual.scenedetect.com/en/v0.6-dev2/api.html):
7979

8080
```python
8181
from scenedetect import open_video, SceneManager, split_video_ffmpeg
@@ -93,12 +93,12 @@ def split_video_into_scenes(video_path, threshold=27.0):
9393
split_video_ffmpeg(video_path, scene_list, show_progress=True)
9494
```
9595

96-
See [the manual](https://pyscenedetect.readthedocs.io/projects/Manual/en/latest/api.html) for the
96+
See [the manual](https://manual.scenedetect.com/en/v0.6-dev2/api.html) for the
9797
full PySceneDetect API documentation.
9898

9999
----------------------------------------------------------
100100

101-
PySceneDetect is a command-line tool and Python library, which uses OpenCV to analyze a video to find each shot change (or "cut"/"scene"). If `ffmpeg` or `mkvmerge` is installed, the video can also be split into scenes automatically. A frame-by-frame analysis can also be generated for a video, to help with determining optimal threshold values or detecting patterns/other analysis methods for a particular video. See [the Usage documentation](https://pyscenedetect.readthedocs.io/en/latest/examples/usage/) for details.
101+
PySceneDetect is a command-line tool and Python library, which uses OpenCV to analyze a video to find each shot change (or "cut"/"scene"). If `ffmpeg` or `mkvmerge` is installed, the video can also be split into scenes automatically. A frame-by-frame analysis can also be generated for a video, to help with determining optimal threshold values or detecting patterns/other analysis methods for a particular video. See [the Usage documentation](https://scenedetect.com/examples/usage/) for details.
102102

103103
There are two main detection methods PySceneDetect uses: `detect-threshold` (comparing each frame to a set black level, useful for detecting cuts and fades to/from black), and `detect-content` (compares each frame sequentially looking for changes in content, useful for detecting fast cuts between video scenes, although slower to process). Each mode has slightly different parameters, and is described in detail below.
104104

@@ -110,9 +110,9 @@ For help or other issues, you can join [the official PySceneDetect Discord Serve
110110
Usage
111111
----------------------------------------------------------
112112

113-
- [Basic Usage](https://pyscenedetect.readthedocs.io/en/latest/examples/usage/)
114-
- [PySceneDetect Manual](https://pyscenedetect-manual.readthedocs.io/en/latest/), covers `scenedetect` command and Python API
115-
- [Example: Detecting and Splitting Scenes in Movie Clip](https://pyscenedetect.readthedocs.io/en/latest/examples/usage-example/)
113+
- [Basic Usage](https://scenedetect.com/en/latest/examples/usage/)
114+
- [PySceneDetect Manual](https://manual.scenedetect.com/io/en/latest/), covers `scenedetect` command and Python API
115+
- [Example: Detecting and Splitting Scenes in Movie Clip](https://scenedetect.com/examples/usage-example/)
116116

117117

118118
Features & Roadmap

docs/changelog.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ PySceneDetect Releases
44

55
## PySceneDetect 0.6
66

7-
### 0.6 (TBD)
7+
### 0.6-dev2 (March 6, 2022)
88

99
#### Release Notes
1010

11+
**This is a pre-release of the upcoming PySceneDetect v0.6.**
12+
1113
PySceneDetect v0.6 is a **major breaking change** including better performance, configuration file support, and a more ergonomic API. The new **minimum Python version is now 3.6**. See the [Migration Guide](https://manual.scenedetect.com/v0.6/api/migration_guide.html) for information on how to port existing applications to the new API. Most users will see performance improvements after updating, and changes to the command-line are not expected to break most workflows.
1214

1315
The main goals of v0.6 are reliability and performance. To achieve this required several breaking changes. The video input API was refactored, and *many* technical debt items were addressed. This should help the eventual transition to the first planned stable release (v1.0) where the goal is an improved scene detection API.

docs/download.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,27 @@ PySceneDetect requires at least Python 3.6 or higher.
1111

1212
<div class="important">
1313
<h4 class="wy-text-neutral"><span class="fa fa-angle-double-down wy-text-info"></span> Including OpenCV (recommended):</h4>
14-
<h3 class="wy-text-neutral"><tt>pip install scenedetect[opencv]</tt></h3>
14+
<h3 class="wy-text-neutral"><tt>pip install --pre scenedetect[opencv]</tt></h3>
1515
<h4 class="wy-text-neutral"><span class="fa fa-angle-down wy-text-info"></span> Including Headless OpenCV :</h4>
16-
<h3 class="wy-text-neutral"><tt>pip install scenedetect[opencv-headless]</tt></h3>
16+
<h3 class="wy-text-neutral"><tt>pip install --pre scenedetect[opencv-headless]</tt></h3>
1717
</div>
1818

1919
PySceneDetect is available via `pip` as [the `scenedetect` package](https://pypi.org/project/scenedetect/). See below for instructions on installing a non-pip version of OpenCV. To ensure you have all the requirements installed, open a `python` interpreter, and ensure you can run `import cv2` without any errors.
2020

2121
### Windows Build (64-bit Only) &nbsp; <span class="wy-text-neutral"><span class="fa fa-windows"></span></span>
2222

2323
<div class="important">
24-
<h3 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.5.6</b></h3>
25-
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>August 15, 2021</b></h4>
26-
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.5.6/PySceneDetect-0.5.6-win64.exe" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Installer</b>&nbsp;&nbsp;(recommended)</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.5.6/PySceneDetect-0.5.6-win64-portable.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Portable .zip</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="../examples/usage/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
24+
<h3 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.6-dev2</b></h3>
25+
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>March 6, 2022</b></h4>
26+
<a href="https://github.com/Breakthrough/PySceneDetect/releases/download/v0.6-dev2/PySceneDetect-0.6-dev2-win64-portable.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Portable .zip</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="../examples/usage/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
2727
</div>
2828

2929
### Python Installer (All Platforms) &nbsp; <span class="wy-text-neutral"><span class="fa fa-windows"></span> &nbsp; <span class="fa fa-linux"></span> &nbsp; <span class="fa fa-apple"></span></span></h3>
3030

3131
<div class="important">
32-
<h4 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.5.6.1</b></h4>
33-
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>October 11, 2021</b></h4>
34-
<a href="https://github.com/Breakthrough/PySceneDetect/archive/v0.5.6.1.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Source</b>&nbsp;&nbsp;.zip</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="https://github.com/Breakthrough/PySceneDetect/archive/v0.5.6.1.tar.gz" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Source</b>&nbsp;&nbsp;.tar.gz</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="../examples/usage/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
32+
<h4 class="wy-text-neutral"><span class="fa fa-forward wy-text-info"></span> Latest Release: <b class="wy-text-neutral">v0.6-dev2</b></h4>
33+
<h4 class="wy-text-neutral"><span class="fa fa-calendar wy-text-info"></span>&nbsp; Release Date:&nbsp; <b>March 6, 2022</b></h4>
34+
<a href="https://github.com/Breakthrough/PySceneDetect/archive/v0.6-dev2.zip" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Source</b>&nbsp;&nbsp;.zip</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="https://github.com/Breakthrough/PySceneDetect/archive/v0.6-dev2.tar.gz" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Source</b>&nbsp;&nbsp;.tar.gz</a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="../examples/usage/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
3535
</div>
3636

3737
To install from source, download and extract the latest release to a location of your choice, and make sure you have the appropriate [system requirements](#dependencies) installed before continuing. PySceneDetect can be installed by running the following command in the location of the extracted files (don't forget `sudo` if you're installing system-wide):

docs/examples/usage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ scenedetect help
1414
```
1515

1616
<div class="important">
17-
The complete PySceneDetect Command-Line Interface (CLI) Reference <span class="fa fa-book"> can be found in the <a href="http://pyscenedetect-manual.readthedocs.io/" alt="Manual Link">PySceneDetect Manual</a>, located at <a href="http://pyscenedetect-manual.readthedocs.io/" alt="Manual Link">pyscenedetect-manual.readthedocs.io/</a>.
17+
The complete PySceneDetect Command-Line Interface (CLI) Reference <span class="fa fa-book"> can be found in the <a href="http://manual.scenedetect.com/en/0.6-dev2/" alt="Manual Link">PySceneDetect Manual</a>, located at <a href="http://manual.scenedetect.com/0.6-dev2/" alt="Manual Link">manual.scenedetect.com/0.6-dev2/</a>.
1818
</div>
1919

2020

docs/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Unlike calling `pip install opencv-python`, the above commands will download and
2222

2323
#### How can I enable video splitting support?
2424

25-
To enable video splitting support, you will also need to have `mkvmerge` or `ffmpeg` installed on your system. See the documentation on [Video Splitting Support](https://pyscenedetect.readthedocs.io/en/latest/examples/video-splitting/) after installation for details.
25+
To enable video splitting support, you will also need to have `mkvmerge` or `ffmpeg` installed on your system. See the documentation on [Video Splitting Support](https://scenedetect.com/examples/video-splitting/) after installation for details.
2626

2727

2828
#### How can I fix the error `Cannot split video due to too many scenes`?

docs/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<h4 class="wy-text-info">Intelligent scene cut detection and video splitting tool.</h4>
44

55
<div class="important">
6-
<h3 class="wy-text-neutral"><span class="fa fa-info-circle wy-text-info"></span>&nbsp; Latest Release: <b>v0.5.6.1</b> (October 11, 2021)</h3>
7-
<a href="download/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Download</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="changelog/" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-reorder"></span>&nbsp; <b>Changelog</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="http://pyscenedetect-manual.readthedocs.io/" class="btn btn-warning" style="margin-bottom:8px;" role="button"><span class="fa fa-gear"></span>&nbsp; <b>Manual</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="examples/usage-example/" class="btn btn-danger" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
6+
<h3 class="wy-text-neutral"><span class="fa fa-info-circle wy-text-info"></span>&nbsp; Latest Release: <b>v0.6-dev2</b> (March 6, 2022)</h3>
7+
<a href="download/" class="btn btn-success" style="margin-bottom:8px;" role="button"><span class="fa fa-download"></span>&nbsp; <b>Download</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="changelog/" class="btn btn-info" style="margin-bottom:8px;" role="button"><span class="fa fa-reorder"></span>&nbsp; <b>Changelog</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="http://pyscenedetect-manual.readthedocs.io/en/v0.6-dev2/" class="btn btn-warning" style="margin-bottom:8px;" role="button"><span class="fa fa-gear"></span>&nbsp; <b>Manual</b></a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="examples/usage-example/" class="btn btn-danger" style="margin-bottom:8px;" role="button"><span class="fa fa-book"></span>&nbsp; <b>Getting Started</b></a>
88
<br/>
99
See the changelog for the latest release notes and known issues.
1010
</div>

docs/reference/command-line.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11

22
## PySceneDetect CLI Reference
33

4-
The `scenedetect` command reference is available as part of [the PySceneDetect Manual](http://pyscenedetect-manual.readthedocs.io/):
4+
The `scenedetect` command reference is available as part of [the PySceneDetect Manual](http://manual.scenedetect.com/):
55

6-
- [`scenedetect` Options](http://pyscenedetect-manual.readthedocs.io/en/latest/cli/global_options.html)
7-
- [Command Reference](http://pyscenedetect-manual.readthedocs.io/en/latest/cli/commands.html)
8-
- [Detector Reference](http://pyscenedetect-manual.readthedocs.io/en/latest/cli/detectors.html)
6+
- [`scenedetect` Options](http://manual.scenedetect.com/en/0.6-dev2/cli/global_options.html)
7+
- [Command Reference](http://manual.scenedetect.com/en/0.6-dev2/cli/commands.html)
8+
- [Detector Reference](http://manual.scenedetect.com/en/0.6-dev2/cli/detectors.html)
99

1010
You can also run `scenedetect help all` locally for the full `scenedetect command reference.

docs/reference/detection-methods.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The threshold-based scene detector (`detect-threshold`) is how most traditional
1919

2020
# Creating New Detection Algorithms
2121

22-
All scene detection algorithms must inherit from [the base `SceneDetector` class](https://pyscenedetect.readthedocs.io/projects/Manual/en/latest/api/scene_detector.html). Note that the current SceneDetector API is under development and expected to change somewhat before v1.0 is released, so make sure to pin your `scenedetect` dependency to the correct API version (e.g. `scenedetect < 0.6`, `scenedetect < 0.7`, etc...).
22+
All scene detection algorithms must inherit from [the base `SceneDetector` class](https://manual.scenedetect.com/en/v0.6-dev2/api/scene_detector.html). Note that the current SceneDetector API is under development and expected to change somewhat before v1.0 is released, so make sure to pin your `scenedetect` dependency to the correct API version (e.g. `scenedetect < 0.6`, `scenedetect < 0.7`, etc...).
2323

2424
Creating a new scene detection method can be as simple as implementing the `process_frame` function, and optionally `post_process`:
2525

@@ -45,7 +45,7 @@ class CustomDetector(SceneDetector):
4545

4646
`process_frame` is called on every frame in the input video, which will be called after the final frame of the video is passed to `process_frame`. This may be useful for multi-pass algorithms, or detectors which are waiting on some condition but still wish to output an event on the final frame.
4747

48-
For example, a detector may output at most 1 cuts for every call to `process_frame`, it may output the entire scene list in `post_process`, or a combination of both. Note that the latter will not work in cases where a live video stream or camera input device is being used. See the [API documentation for the `SceneDetector` class](https://pyscenedetect.readthedocs.io/projects/Manual/en/latest/api/scene_detector.html#scenedetect.scene_detector.SceneDetector) for details. Alternatively, you can call `help(SceneDetector)` from a Python REPL. For examples of actual detection algorithm implementations, see the source files in the `scenedetect/detectors/` directory (e.g. `threshold_detector.py`, `content_detector.py`).
48+
For example, a detector may output at most 1 cuts for every call to `process_frame`, it may output the entire scene list in `post_process`, or a combination of both. Note that the latter will not work in cases where a live video stream or camera input device is being used. See the [API documentation for the `SceneDetector` class](https://manual.scenedetect.com/en/v0.6-dev2/api/scene_detector.html#scenedetect.scene_detector.SceneDetector) for details. Alternatively, you can call `help(SceneDetector)` from a Python REPL. For examples of actual detection algorithm implementations, see the source files in the `scenedetect/detectors/` directory (e.g. `threshold_detector.py`, `content_detector.py`).
4949

5050
Processing is done by calling the `process_frame(...)` function for all frames in the video, followed by `post_process(...)` (optional) after the final frame. Scene cuts are detected and added to the passed list object in both cases.
5151

0 commit comments

Comments
 (0)