VHS Home Video Scene Detection With PySceneDetect
A typical VHS tape recorded over a decade of family life has hundreds of distinct moments buried in it โ birthday parties, holidays, random Tuesday afternoons in the backyard. Finding a specific one means scrubbing through an hour of footage hoping you land in the right place.
Scene detection solves this. It automatically identifies where one scene ends and another begins โ usually at camera cuts or significant changes in the frame โ and splits your footage into individual clips. Instead of one 90-minute file, you get 200 clips, each a distinct moment.
What Is PySceneDetect?
PySceneDetect is a free, open-source Python tool that analyzes video frame-by-frame and detects scene boundaries. It works by looking for sudden changes in color, brightness, or content between frames โ the kind of change that happens when someone stops filming and starts again.
For VHS footage this works surprisingly well, even accounting for tape noise and the slightly washed-out look of old video.
Installation
pip install scenedetect[opencv]
You'll also need ffmpeg installed. On Mac: brew install ffmpeg. On Windows, grab it from ffmpeg.org and add it to your PATH.
Basic Scene Detection
To detect scenes in a video file:
scenedetect -i "1990_summer.mp4" detect-content list-scenes
This outputs a CSV file listing the start time, end time, and duration of every detected scene. For a 90-minute tape you might get 150โ300 scenes depending on how actively the camera was used.
Splitting Into Clips
To actually split the video into individual clip files:
scenedetect -i "1990_summer.mp4" detect-content split-video
This creates a folder of MP4 files, one per scene. Each file is named with its scene number and timestamp, like 1990_summer-Scene-001-00-00-00.mp4.
Tuning for VHS Footage
VHS tape noise can cause false positives โ random frame glitches getting detected as scene changes. A few adjustments help:
scenedetect -i "1990_summer.mp4" detect-content \
--threshold 35 --min-scene-len 3s split-video
--threshold 35โ higher values require a bigger visual change to trigger a scene break (default is 27; 30โ40 works well for VHS)--min-scene-len 3sโ ignores any "scene" shorter than 3 seconds, filtering out noise glitches
What to Do With the Clips
Once you have individual scene clips, you can:
- Run Whisper on each one for per-scene transcription
- Extract a thumbnail frame for a visual gallery
- Name and organize clips manually by person or event
- Share specific clips directly without sending the full tape
Combining scene detection with transcription (see our Whisper guide) gives you a fully indexed archive โ every moment findable by what was said or shown.
The Time Investment
Scene detection itself is fast โ a 90-minute tape processes in a few minutes on most modern computers. The manual step is reviewing the output and naming things meaningfully. For a collection of 20โ30 tapes, expect to spend a few evenings getting everything organized.
Skip the Command Line
If you have the time and hardware, scene detection is a genuinely satisfying project โ there's something magical about watching a pile of old tapes become a searchable archive. If you'd rather skip straight to the organized gallery, Tape Memories runs scene detection, transcription, and AI descriptions automatically on every tape you upload. No setup required.
Try It Free at Tape Memories โ