Skip to content

Add scene cut detection plugin - #351

Open
timpecter wants to merge 4 commits into
AcademySoftwareFoundation:developfrom
timpecter:feature/scene-cut-detector-plugin
Open

timpecter wants to merge 4 commits into
AcademySoftwareFoundation:developfrom
timpecter:feature/scene-cut-detector-plugin

Conversation

@timpecter

Copy link
Copy Markdown

Summary

Adds a Python Scene Cut Detector plugin for xSTUDIO.

  • Adds Detect Scene Cuts... to the playlist media-item context menu.
  • Detects hard scene cuts using an ffmpeg subprocess and numpy frame differences.
  • Creates a new Timeline with one sub-clip per detected scene.
  • Adds a QML settings dialog for detector mode, threshold, and minimum scene length.

Testing

  • Built and deployed with COPY_PY_PLUGIN_scene_cut_detector.
  • Verified plugin loading in the Windows dev build.
  • Tested ffmpeg/numpy detection against a MOV source.
  • Tested timeline creation, clip insertion, and repeated splitting against a running xSTUDIO instance.
  • Built on Windows with Visual Studio 2022, Qt 6.5.3, vcpkg, and NSIS.

This is an initial implementation for review and requires ffmpeg on PATH.

@linux-foundation-easycla

linux-foundation-easycla Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

CLA Signed
The committers listed above are authorized under a signed CLA.

@timpecter
timpecter marked this pull request as ready for review September 24, 2026 18:09
@timpecter

Copy link
Copy Markdown
Author

Scene detect plugin

@timpecter timpecter closed this Sep 24, 2026
@timpecter timpecter reopened this Sep 28, 2026
Adds a Detect Scene Cuts command to the playlist media-item context
menu. Analyses the selected source video for hard scene cuts (via an
ffmpeg subprocess + numpy frame-difference detector, avoiding a
dependency on compiled Python video-decoding extensions) and builds a
new Timeline with the source split into one sub-clip per detected
scene. Includes a small QML settings dialog to configure detector type,
cut threshold, and minimum scene length.

Signed-off-by: timpecter <timpecter@hotmail.com>
## Summary

Adds a Python Scene Cut Detector plugin for xSTUDIO.

The plugin:

- Adds a `Detect Scene Cuts...` command to the playlist media-item context menu.
- Detects hard scene cuts by piping downscaled grayscale frames from `ffmpeg` and comparing consecutive frames with `numpy`.
- Creates a new Timeline containing the selected source media split into one sub-clip per detected scene.
- Provides a QML settings dialog for detector mode, cut threshold, and minimum scene length.
- Uses the existing xSTUDIO Python plugin and Timeline APIs.

## Testing

- Built and deployed the Python plugin with `COPY_PY_PLUGIN_scene_cut_detector`.
- Verified the plugin loads in the Windows dev build.
- Tested the detector against a `.mov` source using `ffmpeg` and `numpy`.
- Tested Timeline creation, media registration, clip insertion, and repeated splitting against a running xSTUDIO instance.
- Built on Windows with Visual Studio 2022, Qt 6.5.3, vcpkg, and NSIS.

## Notes

This is an initial local implementation for review. The plugin requires `ffmpeg` to be available on `PATH`.

Signed-off-by: timpecter <timpecter@hotmail.com>
Signed-off-by: timpecter <timpecter@hotmail.com>
Signed-off-by: timpecter <timpecter@hotmail.com>
@timpecter
timpecter force-pushed the feature/scene-cut-detector-plugin branch from b88b2b6 to 3409602 Compare September 28, 2026 16:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant