---
title: "PySceneDetect Cuts Videos Into Shots With 91 F1 and No GPU"
subtitle: "PySceneDetect ships five swappable shot-boundary detectors, TRECVID-style benchmarks, and a Python API that plugs cleanly into video pipelines."
url: "https://alphasignal.ai/news/pyscenedetect-cuts-videos-into-shots-with-91-f1-and-no-gpu"
author: "AlphaSignal Newsroom"
author_url: "https://alphasignal.ai/editorial-team"
company: "AlphaSignal"
company_url: "https://alphasignal.ai/company/alphasignal"
published: "2026-05-05T02:06:04.000Z"
updated: "2026-08-22T03:33:32.512Z"
type: "Repo"
topics:
  - "Video"
  - "Open Source"
subtopics:
  - "Video Editing"
  - "Video Understanding"
upvotes: 12
source_url: "https://github.com/Breakthrough/PySceneDetect"
comments: 0
truncated: true
---

# PySceneDetect Cuts Videos Into Shots With 91 F1 and No GPU

> PySceneDetect ships five swappable shot-boundary detectors, TRECVID-style benchmarks, and a Python API that plugs cleanly into video pipelines.

Cutting a long video into individual shots sounds like a solved problem until you try to do it inside a training or preprocessing pipeline. [PySceneDetect](https://github.com/Breakthrough/PySceneDetect) has quietly been that solution for years, and its latest release pairs a mature OpenCV-based library with a benchmark suite that tells you which detector to reach for and when.

The project is a [Python and OpenCV tool](https://www.scenedetect.com/) for detecting shot changes in videos, which can then automatically split the source into separate clips. It ships as both a command-line binary and an embeddable library, under a BSD-3-Clause license.

## Install once, cut anything

Getting started takes a single pip command, with optional `ffmpeg` or `mkvmerge` if you want the tool to also slice the source file into per-scene clips. A Docker image bundles the dependencies for anyone who does not want to touch their system Python.

```
pip install scenedetect --upgrade
scenedetect -i video.mp4 split-video
```

The Python API mirrors the CLI. A three-line call returns start and end timecodes for every detected shot, which you can feed into your own pipeline:

```
from scenedetect import detect, AdaptiveDetector, split_video_ffmpeg
scene_list = detect("my_video.mp4", AdaptiveDetector())
split_video_ffmpeg("my_video.mp4", scene_list)
```

## Five detectors, not one

Rather than committing to a single algorithm, PySceneDetect exposes a family of detectors you can pick between depending on the source material:

_Preview only. Full text requires an AlphaSignal Pro account._

## Sources

- [Breakthrough/PySceneDetect on GitHub](https://github.com/Breakthrough/PySceneDetect)
- [PySceneDetect Home](https://www.scenedetect.com/)
- [PySceneDetect Features](https://www.scenedetect.com/features/)
- [PySceneDetect Benchmarks](https://www.scenedetect.com/benchmarks/)
