scenedetect-core 0.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- scenedetect_core-0.7.1/LICENSE +28 -0
- scenedetect_core-0.7.1/PKG-INFO +106 -0
- scenedetect_core-0.7.1/README.md +137 -0
- scenedetect_core-0.7.1/docs/LATEST_VERSION +1 -0
- scenedetect_core-0.7.1/docs/Makefile +20 -0
- scenedetect_core-0.7.1/docs/_static/favicon.ico +0 -0
- scenedetect_core-0.7.1/docs/_static/pyscenedetect.css +34 -0
- scenedetect_core-0.7.1/docs/_static/pyscenedetect_logo.png +0 -0
- scenedetect_core-0.7.1/docs/_static/pyscenedetect_logo_small.png +0 -0
- scenedetect_core-0.7.1/docs/_templates/navigation.html +10 -0
- scenedetect_core-0.7.1/docs/api/backends.rst +21 -0
- scenedetect_core-0.7.1/docs/api/common.rst +9 -0
- scenedetect_core-0.7.1/docs/api/detector.rst +9 -0
- scenedetect_core-0.7.1/docs/api/detectors.rst +53 -0
- scenedetect_core-0.7.1/docs/api/migration_guide.rst +290 -0
- scenedetect_core-0.7.1/docs/api/output.rst +9 -0
- scenedetect_core-0.7.1/docs/api/platform.rst +9 -0
- scenedetect_core-0.7.1/docs/api/scene_manager.rst +9 -0
- scenedetect_core-0.7.1/docs/api/stats_manager.rst +9 -0
- scenedetect_core-0.7.1/docs/api/video_stream.rst +9 -0
- scenedetect_core-0.7.1/docs/api.rst +106 -0
- scenedetect_core-0.7.1/docs/cli/backends.rst +50 -0
- scenedetect_core-0.7.1/docs/cli/config_file.rst +66 -0
- scenedetect_core-0.7.1/docs/cli.rst +909 -0
- scenedetect_core-0.7.1/docs/conf.py +172 -0
- scenedetect_core-0.7.1/docs/generate_cli_docs.py +284 -0
- scenedetect_core-0.7.1/docs/index.rst +65 -0
- scenedetect_core-0.7.1/docs/make.bat +36 -0
- scenedetect_core-0.7.1/packaging/package-info.rst +50 -0
- scenedetect_core-0.7.1/pyproject.toml +170 -0
- scenedetect_core-0.7.1/scenedetect/__init__.py +213 -0
- scenedetect_core-0.7.1/scenedetect/__main__.py +60 -0
- scenedetect_core-0.7.1/scenedetect/_cli/__init__.py +1865 -0
- scenedetect_core-0.7.1/scenedetect/_cli/commands.py +367 -0
- scenedetect_core-0.7.1/scenedetect/_cli/config.py +832 -0
- scenedetect_core-0.7.1/scenedetect/_cli/context.py +567 -0
- scenedetect_core-0.7.1/scenedetect/_cli/controller.py +223 -0
- scenedetect_core-0.7.1/scenedetect/_fan_out.py +244 -0
- scenedetect_core-0.7.1/scenedetect/_thirdparty/__init__.py +14 -0
- scenedetect_core-0.7.1/scenedetect/_thirdparty/simpletable.py +326 -0
- scenedetect_core-0.7.1/scenedetect/backends/__init__.py +127 -0
- scenedetect_core-0.7.1/scenedetect/backends/concat.py +387 -0
- scenedetect_core-0.7.1/scenedetect/backends/moviepy.py +295 -0
- scenedetect_core-0.7.1/scenedetect/backends/opencv.py +538 -0
- scenedetect_core-0.7.1/scenedetect/backends/pyav.py +436 -0
- scenedetect_core-0.7.1/scenedetect/common.py +837 -0
- scenedetect_core-0.7.1/scenedetect/detector.py +224 -0
- scenedetect_core-0.7.1/scenedetect/detectors/__init__.py +72 -0
- scenedetect_core-0.7.1/scenedetect/detectors/adaptive_detector.py +143 -0
- scenedetect_core-0.7.1/scenedetect/detectors/content_detector.py +243 -0
- scenedetect_core-0.7.1/scenedetect/detectors/hash_detector.py +151 -0
- scenedetect_core-0.7.1/scenedetect/detectors/histogram_detector.py +168 -0
- scenedetect_core-0.7.1/scenedetect/detectors/threshold_detector.py +191 -0
- scenedetect_core-0.7.1/scenedetect/detectors/transnet_v2.py +210 -0
- scenedetect_core-0.7.1/scenedetect/frame_timecode.py +22 -0
- scenedetect_core-0.7.1/scenedetect/output/__init__.py +674 -0
- scenedetect_core-0.7.1/scenedetect/output/image.py +535 -0
- scenedetect_core-0.7.1/scenedetect/output/video.py +389 -0
- scenedetect_core-0.7.1/scenedetect/platform.py +422 -0
- scenedetect_core-0.7.1/scenedetect/scene_detector.py +22 -0
- scenedetect_core-0.7.1/scenedetect/scene_manager.py +737 -0
- scenedetect_core-0.7.1/scenedetect/stats_manager.py +314 -0
- scenedetect_core-0.7.1/scenedetect/video_splitter.py +22 -0
- scenedetect_core-0.7.1/scenedetect/video_stream.py +222 -0
- scenedetect_core-0.7.1/scenedetect.cfg +387 -0
- scenedetect_core-0.7.1/scenedetect_core.egg-info/PKG-INFO +106 -0
- scenedetect_core-0.7.1/scenedetect_core.egg-info/SOURCES.txt +84 -0
- scenedetect_core-0.7.1/scenedetect_core.egg-info/dependency_links.txt +1 -0
- scenedetect_core-0.7.1/scenedetect_core.egg-info/requires.txt +31 -0
- scenedetect_core-0.7.1/scenedetect_core.egg-info/top_level.txt +1 -0
- scenedetect_core-0.7.1/setup.cfg +4 -0
- scenedetect_core-0.7.1/tests/test_api.py +183 -0
- scenedetect_core-0.7.1/tests/test_backend_opencv.py +71 -0
- scenedetect_core-0.7.1/tests/test_backend_pyav.py +93 -0
- scenedetect_core-0.7.1/tests/test_benchmark_evaluator.py +322 -0
- scenedetect_core-0.7.1/tests/test_cli.py +1435 -0
- scenedetect_core-0.7.1/tests/test_concat.py +177 -0
- scenedetect_core-0.7.1/tests/test_detectors.py +248 -0
- scenedetect_core-0.7.1/tests/test_fan_out.py +236 -0
- scenedetect_core-0.7.1/tests/test_output.py +517 -0
- scenedetect_core-0.7.1/tests/test_platform.py +40 -0
- scenedetect_core-0.7.1/tests/test_scene_manager.py +263 -0
- scenedetect_core-0.7.1/tests/test_stats_manager.py +198 -0
- scenedetect_core-0.7.1/tests/test_timecode.py +557 -0
- scenedetect_core-0.7.1/tests/test_vfr.py +437 -0
- scenedetect_core-0.7.1/tests/test_video_stream.py +398 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (C) 2014, Brandon Castellano
|
|
4
|
+
|
|
5
|
+
Redistribution and use in source and binary forms, with or without
|
|
6
|
+
modification, are permitted provided that the following conditions are met:
|
|
7
|
+
|
|
8
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
9
|
+
list of conditions and the following disclaimer.
|
|
10
|
+
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
12
|
+
this list of conditions and the following disclaimer in the documentation
|
|
13
|
+
and/or other materials provided with the distribution.
|
|
14
|
+
|
|
15
|
+
3. Neither the name of the copyright holder nor the names of its
|
|
16
|
+
contributors may be used to endorse or promote products derived from
|
|
17
|
+
this software without specific prior written permission.
|
|
18
|
+
|
|
19
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: scenedetect-core
|
|
3
|
+
Version: 0.7.1
|
|
4
|
+
Summary: The detection pipeline for PySceneDetect (core library, minimal dependencies).
|
|
5
|
+
Author-email: Brandon Castellano <brandon248@gmail.com>
|
|
6
|
+
License-Expression: BSD-3-Clause
|
|
7
|
+
Project-URL: Homepage, https://www.scenedetect.com
|
|
8
|
+
Project-URL: Documentation, https://www.scenedetect.com/docs/
|
|
9
|
+
Project-URL: Source, https://github.com/Breakthrough/PySceneDetect
|
|
10
|
+
Project-URL: Issues, https://github.com/Breakthrough/PySceneDetect/issues
|
|
11
|
+
Keywords: video,computer-vision,analysis
|
|
12
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Environment :: Console :: Curses
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
17
|
+
Classifier: Intended Audience :: System Administrators
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: Multimedia :: Video
|
|
25
|
+
Classifier: Topic :: Multimedia :: Video :: Conversion
|
|
26
|
+
Classifier: Topic :: Multimedia :: Video :: Non-Linear Editor
|
|
27
|
+
Classifier: Topic :: Utilities
|
|
28
|
+
Requires-Python: >=3.10
|
|
29
|
+
Description-Content-Type: text/x-rst
|
|
30
|
+
License-File: LICENSE
|
|
31
|
+
Requires-Dist: numpy
|
|
32
|
+
Provides-Extra: opencv
|
|
33
|
+
Requires-Dist: opencv-python; extra == "opencv"
|
|
34
|
+
Provides-Extra: opencv-headless
|
|
35
|
+
Requires-Dist: opencv-python-headless; extra == "opencv-headless"
|
|
36
|
+
Provides-Extra: pyav
|
|
37
|
+
Requires-Dist: av>=9.2; extra == "pyav"
|
|
38
|
+
Provides-Extra: moviepy
|
|
39
|
+
Requires-Dist: moviepy; extra == "moviepy"
|
|
40
|
+
Provides-Extra: dev
|
|
41
|
+
Requires-Dist: av>=9.2; extra == "dev"
|
|
42
|
+
Requires-Dist: click!=8.3.0,~=8.0; extra == "dev"
|
|
43
|
+
Requires-Dist: moviepy; extra == "dev"
|
|
44
|
+
Requires-Dist: opencv-python; extra == "dev"
|
|
45
|
+
Requires-Dist: platformdirs; extra == "dev"
|
|
46
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
47
|
+
Requires-Dist: pytest-rerunfailures; extra == "dev"
|
|
48
|
+
Requires-Dist: tqdm; extra == "dev"
|
|
49
|
+
Provides-Extra: docs
|
|
50
|
+
Requires-Dist: Sphinx==7.0.1; extra == "docs"
|
|
51
|
+
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
|
|
52
|
+
Provides-Extra: website
|
|
53
|
+
Requires-Dist: mkdocs==1.5.2; extra == "website"
|
|
54
|
+
Requires-Dist: jinja2>=3.1.6; extra == "website"
|
|
55
|
+
Dynamic: license-file
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
PySceneDetect
|
|
59
|
+
==========================================================
|
|
60
|
+
|
|
61
|
+
Video Scene Cut Detection and Analysis Tool
|
|
62
|
+
----------------------------------------------------------
|
|
63
|
+
|
|
64
|
+
.. image:: https://img.shields.io/pypi/status/scenedetect.svg
|
|
65
|
+
:target: https://github.com/Breakthrough/PySceneDetect
|
|
66
|
+
|
|
67
|
+
.. image:: https://img.shields.io/github/release/Breakthrough/PySceneDetect.svg
|
|
68
|
+
:target: https://github.com/Breakthrough/PySceneDetect
|
|
69
|
+
|
|
70
|
+
.. image:: https://img.shields.io/pypi/l/scenedetect.svg
|
|
71
|
+
:target: https://www.scenedetect.com/copyright/
|
|
72
|
+
|
|
73
|
+
.. image:: https://img.shields.io/github/stars/Breakthrough/PySceneDetect.svg?style=social&label=View%20on%20Github
|
|
74
|
+
:target: https://github.com/Breakthrough/PySceneDetect
|
|
75
|
+
|
|
76
|
+
----------------------------------------------------------
|
|
77
|
+
|
|
78
|
+
Documentation: https://www.scenedetect.com/docs
|
|
79
|
+
|
|
80
|
+
Github Repo: https://github.com/Breakthrough/PySceneDetect/
|
|
81
|
+
|
|
82
|
+
Install: ``pip install --upgrade scenedetect`` (or ``scenedetect-headless`` for servers)
|
|
83
|
+
|
|
84
|
+
Packages: `scenedetect <https://pypi.org/project/scenedetect/>`_ (CLI + ``opencv-python``), `scenedetect-headless <https://pypi.org/project/scenedetect-headless/>`_ (CLI + ``opencv-python-headless``), and `scenedetect-core <https://pypi.org/project/scenedetect-core/>`_ (library only, minimal dependencies, bring your own OpenCV variant). All provide the same ``scenedetect`` module -- install only one.
|
|
85
|
+
|
|
86
|
+
----------------------------------------------------------
|
|
87
|
+
|
|
88
|
+
**PySceneDetect** is a tool for detecting shot changes in videos, and can automatically split videos into separate clips. PySceneDetect is free and open-source software, and has several detection methods to find fast-cuts and threshold-based fades.
|
|
89
|
+
|
|
90
|
+
For example, to split a video: ``scenedetect -i video.mp4 split-video``
|
|
91
|
+
|
|
92
|
+
You can also use the Python API (`docs <https://www.scenedetect.com/docs/latest/>`_) to do the same:
|
|
93
|
+
|
|
94
|
+
.. code-block:: python
|
|
95
|
+
|
|
96
|
+
from scenedetect import detect, AdaptiveDetector, split_video_ffmpeg
|
|
97
|
+
scene_list = detect('my_video.mp4', AdaptiveDetector())
|
|
98
|
+
split_video_ffmpeg('my_video.mp4', scene_list)
|
|
99
|
+
|
|
100
|
+
----------------------------------------------------------
|
|
101
|
+
|
|
102
|
+
Licensed under BSD 3-Clause (see the ``LICENSE`` file for details).
|
|
103
|
+
|
|
104
|
+
Copyright (C) 2014 Brandon Castellano.
|
|
105
|
+
All rights reserved.
|
|
106
|
+
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Breakthrough/PySceneDetect/main/website/pages/img/pyscenedetect_logo_small_darkmode.png">
|
|
4
|
+
<img alt="PySceneDetect" src="https://raw.githubusercontent.com/Breakthrough/PySceneDetect/main/website/pages/img/pyscenedetect_logo_small.png">
|
|
5
|
+
</picture>
|
|
6
|
+
|
|
7
|
+
# Video Cut Detection and Analysis Tool
|
|
8
|
+
|
|
9
|
+
[](https://github.com/Breakthrough/PySceneDetect/actions)
|
|
10
|
+
[](https://pypi.python.org/pypi/scenedetect/)
|
|
11
|
+
[](https://pypi.python.org/pypi/scenedetect/)
|
|
12
|
+
[](https://scenedetect.com/copyright/)
|
|
13
|
+
|
|
14
|
+
----------------------------------------------------------
|
|
15
|
+
|
|
16
|
+
### Latest Release: v0.7 (May 3, 2026)
|
|
17
|
+
|
|
18
|
+
**Website**: [scenedetect.com](https://www.scenedetect.com)
|
|
19
|
+
|
|
20
|
+
**Quickstart Example**: [scenedetect.com/cli/](https://www.scenedetect.com/cli/)
|
|
21
|
+
|
|
22
|
+
**Documentation**: [scenedetect.com/docs/](https://www.scenedetect.com/docs/)
|
|
23
|
+
|
|
24
|
+
**Discord**: https://discord.gg/H83HbJngk7
|
|
25
|
+
|
|
26
|
+
----------------------------------------------------------
|
|
27
|
+
|
|
28
|
+
**Quick Install**:
|
|
29
|
+
|
|
30
|
+
pip install scenedetect --upgrade
|
|
31
|
+
|
|
32
|
+
Requires ffmpeg/mkvmerge for video splitting support. Windows builds (MSI installer/portable ZIP) can be found on [the download page](https://scenedetect.com/download/). A Docker image with all dependencies included is available as [`ghcr.io/breakthrough/pyscenedetect`](https://github.com/Breakthrough/PySceneDetect/pkgs/container/pyscenedetect).
|
|
33
|
+
|
|
34
|
+
----------------------------------------------------------
|
|
35
|
+
|
|
36
|
+
**Quick Start (Command Line)**:
|
|
37
|
+
|
|
38
|
+
Split input video on each fast cut using `ffmpeg`:
|
|
39
|
+
|
|
40
|
+
scenedetect -i video.mp4 split-video
|
|
41
|
+
|
|
42
|
+
Save some frames from each cut:
|
|
43
|
+
|
|
44
|
+
scenedetect -i video.mp4 save-images
|
|
45
|
+
|
|
46
|
+
Skip the first 10 seconds of the input video:
|
|
47
|
+
|
|
48
|
+
scenedetect -i video.mp4 time -s 10s
|
|
49
|
+
|
|
50
|
+
More examples can be found throughout [the documentation](https://www.scenedetect.com/docs/latest/cli.html).
|
|
51
|
+
|
|
52
|
+
**Quick Start (Docker)**:
|
|
53
|
+
|
|
54
|
+
The same commands work without installing anything using [the official Docker image](https://github.com/Breakthrough/PySceneDetect/pkgs/container/pyscenedetect), which includes all dependencies (`ffmpeg`/`mkvmerge` included). Mount the folder containing your videos and use it for input/output paths:
|
|
55
|
+
|
|
56
|
+
docker run --rm -v "$(pwd):/files" ghcr.io/breakthrough/pyscenedetect -i /files/video.mp4 split-video -o /files
|
|
57
|
+
|
|
58
|
+
**Quick Start (Python API)**:
|
|
59
|
+
|
|
60
|
+
To get started, there is a high level function in the library that performs content-aware scene detection on a video (try it from a Python prompt):
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
from scenedetect import detect, ContentDetector
|
|
64
|
+
scene_list = detect('my_video.mp4', ContentDetector())
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`scene_list` will now be a list containing the start/end times of all scenes found in the video. There also exists a two-pass version `AdaptiveDetector` which handles fast camera movement better, and `ThresholdDetector` for handling fade out/fade in events.
|
|
68
|
+
|
|
69
|
+
Try calling `print(scene_list)`, or iterating over each scene:
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
from scenedetect import detect, ContentDetector
|
|
73
|
+
scene_list = detect('my_video.mp4', ContentDetector())
|
|
74
|
+
for i, scene in enumerate(scene_list):
|
|
75
|
+
print(' Scene %2d: Start %s / Frame %d, End %s / Frame %d' % (
|
|
76
|
+
i+1,
|
|
77
|
+
scene[0].get_timecode(), scene[0].frame_num,
|
|
78
|
+
scene[1].get_timecode(), scene[1].frame_num,))
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
We can also split the video into each scene if `ffmpeg` is installed (`mkvmerge` is also supported):
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
from scenedetect import detect, ContentDetector, split_video_ffmpeg
|
|
85
|
+
scene_list = detect('my_video.mp4', ContentDetector())
|
|
86
|
+
split_video_ffmpeg('my_video.mp4', scene_list)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
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://www.scenedetect.com/docs/latest/api.html):
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
from scenedetect import open_video, SceneManager, split_video_ffmpeg
|
|
93
|
+
from scenedetect.detectors import ContentDetector
|
|
94
|
+
from scenedetect.video_splitter import split_video_ffmpeg
|
|
95
|
+
|
|
96
|
+
def split_video_into_scenes(video_path, threshold=27.0):
|
|
97
|
+
# Open our video, create a scene manager, and add a detector.
|
|
98
|
+
video = open_video(video_path)
|
|
99
|
+
scene_manager = SceneManager()
|
|
100
|
+
scene_manager.add_detector(
|
|
101
|
+
ContentDetector(threshold=threshold))
|
|
102
|
+
scene_manager.detect_scenes(video, show_progress=True)
|
|
103
|
+
scene_list = scene_manager.get_scene_list()
|
|
104
|
+
split_video_ffmpeg(video_path, scene_list, show_progress=True)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
See [the documentation](https://www.scenedetect.com/docs/latest/api.html) for more examples.
|
|
108
|
+
|
|
109
|
+
**Benchmark**:
|
|
110
|
+
|
|
111
|
+
We evaluate the performance of different detectors in terms of accuracy and processing speed. See [www.scenedetect.com/benchmarks](https://www.scenedetect.com/benchmarks/) for results, or the [benchmark report](benchmark/README.md) for details on the datasets and methodology.
|
|
112
|
+
|
|
113
|
+
## Reference
|
|
114
|
+
|
|
115
|
+
- [Documentation](https://www.scenedetect.com/docs/) (covers application and Python API)
|
|
116
|
+
- [CLI Example](https://www.scenedetect.com/cli/)
|
|
117
|
+
- [Config File](https://www.scenedetect.com/docs/0.6.4/cli/config_file.html)
|
|
118
|
+
|
|
119
|
+
## Help & Contributing
|
|
120
|
+
|
|
121
|
+
Please submit any bugs/issues or feature requests to [the Issue Tracker](https://github.com/Breakthrough/PySceneDetect/issues). Before submission, ensure you search through existing issues (both open and closed) to avoid creating duplicate entries.
|
|
122
|
+
Pull requests are welcome and encouraged. PySceneDetect is released under the BSD 3-Clause license, and submitted code should be compliant.
|
|
123
|
+
|
|
124
|
+
For help or other issues, you can join [the official PySceneDetect Discord Server](https://discord.gg/H83HbJngk7), submit an issue/bug report [here on Github](https://github.com/Breakthrough/PySceneDetect/issues), or contact me via [my website](https://bcastell.com/about/).
|
|
125
|
+
|
|
126
|
+
## Code Signing
|
|
127
|
+
|
|
128
|
+
This program uses free code signing provided by [SignPath.io](https://signpath.io?utm_source=foundation&utm_medium=github&utm_campaign=PySceneDetect), and a free code signing certificate by the [SignPath Foundation](https://signpath.org?utm_source=foundation&utm_medium=github&utm_campaign=PySceneDetect)
|
|
129
|
+
|
|
130
|
+
## License
|
|
131
|
+
|
|
132
|
+
BSD-3-Clause; see [`LICENSE`](LICENSE) and [`THIRD-PARTY.md`](THIRD-PARTY.md) for details.
|
|
133
|
+
|
|
134
|
+
----------------------------------------------------------
|
|
135
|
+
|
|
136
|
+
Copyright (C) 2014 Brandon Castellano.
|
|
137
|
+
All rights reserved.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.7.1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line.
|
|
5
|
+
SPHINXOPTS =
|
|
6
|
+
SPHINXBUILD = sphinx-build
|
|
7
|
+
SPHINXPROJ = PySceneDetect
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR = _build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
Binary file
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.sig {
|
|
2
|
+
padding-bottom: 8px;
|
|
3
|
+
}
|
|
4
|
+
.field-list {
|
|
5
|
+
padding-bottom: 8px;
|
|
6
|
+
}
|
|
7
|
+
.class {
|
|
8
|
+
padding-bottom: 12px;
|
|
9
|
+
padding-top: 4px;
|
|
10
|
+
}
|
|
11
|
+
.function {
|
|
12
|
+
padding-bottom: 12px;
|
|
13
|
+
padding-top: 12px;
|
|
14
|
+
}
|
|
15
|
+
.data {
|
|
16
|
+
padding-bottom: 12px;
|
|
17
|
+
padding-top: 12px;
|
|
18
|
+
}
|
|
19
|
+
.method {
|
|
20
|
+
padding-bottom: 12px;
|
|
21
|
+
padding-top: 12px;
|
|
22
|
+
}
|
|
23
|
+
.attribute {
|
|
24
|
+
padding-bottom: 12px;
|
|
25
|
+
padding-top: 12px;
|
|
26
|
+
}
|
|
27
|
+
.exception {
|
|
28
|
+
padding-bottom: 12px;
|
|
29
|
+
padding-top: 12px;
|
|
30
|
+
}
|
|
31
|
+
.property {
|
|
32
|
+
padding-bottom: 12px;
|
|
33
|
+
padding-top: 12px;
|
|
34
|
+
}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<h3>{{ _('Navigation') }}</h3>
|
|
2
|
+
{{ toctree(maxdepth=2, includehidden=theme_sidebar_includehidden, collapse=theme_sidebar_collapse) }}
|
|
3
|
+
{% if theme_extra_nav_links %}
|
|
4
|
+
<hr />
|
|
5
|
+
<ul>
|
|
6
|
+
{% for text, uri in theme_extra_nav_links.items() %}
|
|
7
|
+
<li class="toctree-l1"><a href="{{ uri }}">{{ text }}</a></li>
|
|
8
|
+
{% endfor %}
|
|
9
|
+
</ul>
|
|
10
|
+
{% endif %}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
.. _scenedetect-backends:
|
|
3
|
+
|
|
4
|
+
--------------
|
|
5
|
+
Video Backends
|
|
6
|
+
--------------
|
|
7
|
+
|
|
8
|
+
.. automodule:: scenedetect.backends
|
|
9
|
+
:members:
|
|
10
|
+
|
|
11
|
+
.. automodule:: scenedetect.backends.opencv
|
|
12
|
+
:members:
|
|
13
|
+
|
|
14
|
+
.. automodule:: scenedetect.backends.pyav
|
|
15
|
+
:members:
|
|
16
|
+
|
|
17
|
+
.. automodule:: scenedetect.backends.moviepy
|
|
18
|
+
:members:
|
|
19
|
+
|
|
20
|
+
.. automodule:: scenedetect.backends.concat
|
|
21
|
+
:members:
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
|
|
2
|
+
.. _scenedetect-detectors:
|
|
3
|
+
|
|
4
|
+
---------
|
|
5
|
+
Detectors
|
|
6
|
+
---------
|
|
7
|
+
|
|
8
|
+
.. automodule:: scenedetect.detectors
|
|
9
|
+
|
|
10
|
+
AdaptiveDetector
|
|
11
|
+
================
|
|
12
|
+
|
|
13
|
+
.. automodule:: scenedetect.detectors.adaptive_detector
|
|
14
|
+
:no-members:
|
|
15
|
+
|
|
16
|
+
.. autoclass:: scenedetect.detectors.adaptive_detector.AdaptiveDetector
|
|
17
|
+
:members:
|
|
18
|
+
|
|
19
|
+
ContentDetector
|
|
20
|
+
===============
|
|
21
|
+
|
|
22
|
+
.. automodule:: scenedetect.detectors.content_detector
|
|
23
|
+
:no-members:
|
|
24
|
+
|
|
25
|
+
.. autoclass:: scenedetect.detectors.content_detector.ContentDetector
|
|
26
|
+
:members:
|
|
27
|
+
|
|
28
|
+
HashDetector
|
|
29
|
+
============
|
|
30
|
+
|
|
31
|
+
.. automodule:: scenedetect.detectors.hash_detector
|
|
32
|
+
:no-members:
|
|
33
|
+
|
|
34
|
+
.. autoclass:: scenedetect.detectors.hash_detector.HashDetector
|
|
35
|
+
:members:
|
|
36
|
+
|
|
37
|
+
HistogramDetector
|
|
38
|
+
=================
|
|
39
|
+
|
|
40
|
+
.. automodule:: scenedetect.detectors.histogram_detector
|
|
41
|
+
:no-members:
|
|
42
|
+
|
|
43
|
+
.. autoclass:: scenedetect.detectors.histogram_detector.HistogramDetector
|
|
44
|
+
:members:
|
|
45
|
+
|
|
46
|
+
ThresholdDetector
|
|
47
|
+
=================
|
|
48
|
+
|
|
49
|
+
.. automodule:: scenedetect.detectors.threshold_detector
|
|
50
|
+
:no-members:
|
|
51
|
+
|
|
52
|
+
.. autoclass:: scenedetect.detectors.threshold_detector.ThresholdDetector
|
|
53
|
+
:members:
|