https://github.com/breakthrough/dvr-scan
:vhs: Tool for extracting scenes with motion from videos (e.g. security camera or DVR footage). Written in Python, uses OpenCV.
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.6%) to scientific vocabulary
Keywords from Contributors
Repository
:vhs: Tool for extracting scenes with motion from videos (e.g. security camera or DVR footage). Written in Python, uses OpenCV.
Basic Info
- Host: GitHub
- Owner: Breakthrough
- License: other
- Language: Python
- Default Branch: main
- Homepage: http://www.dvr-scan.com/
- Size: 50.1 MB
Statistics
- Stars: 457
- Watchers: 19
- Forks: 57
- Open Issues: 46
- Releases: 18
Metadata Files
README.md

:vhs: Find and extract motion events in videos.
Latest Release: v1.8.1 (August 27, 2025)
Website: dvr-scan.com
User Guide: dvr-scan.com/guide
Documentation: dvr-scan.com/docs
Discord: discord.gg/69kf6f2Exb
DVR-Scan is a command-line application that automatically detects motion events in video files (e.g. security camera footage). DVR-Scan looks for areas in footage containing motion, and saves each event to a separate video clip. DVR-Scan is free and open-source software, and works on Windows, Linux, and Mac.
Quick Install
pip install dvr-scan --upgrade
Windows builds (installer + portable) are also available on the Downloads page.
Quickstart (UI)
Start DVR-Scan (run dvr-scan-app or click the app shortcut), Add your input videos, and hit Start:

See the User Guide for a more comprehensive overview.
Quickstart (CLI)
Scan video.mp4 (separate clips for each event):
dvr-scan -i video.mp4
Select a region to scan using the region editor:
dvr-scan -i video.mp4 -r

Select a region to scan using command line (list of points as X Y):
dvr-scan -i video.mp4 -a 50 50 100 50 100 100 100 50
Draw boxes around motion:
dvr-scan -i video.mp4 -bb

Use ffmpeg to extract events:
dvr-scan -i video.mp4 -m ffmpeg
See the documentation for a complete list of all command-line and configuration file options which can be set. You can also type dvr-scan --help for an overview of command line options. Some program options can also be set using a config file.
Copyright © 2016-2025 Brandon Castellano. All rights reserved. Licensed under BSD 2-Clause (see the LICENSE file for details).
Owner
- Name: Brandon Castellano
- Login: Breakthrough
- Kind: user
- Location: Canada
- Company: Google
- Website: https://www.bcastell.com
- Repositories: 24
- Profile: https://github.com/Breakthrough
Software engineer with experience in embedded development, computer vision and operating systems. Currently at Google, working on Fuchsia.
GitHub Events
Total
- Create event: 38
- Release event: 10
- Issues event: 58
- Watch event: 70
- Delete event: 25
- Issue comment event: 75
- Push event: 244
- Pull request review comment event: 2
- Pull request review event: 6
- Pull request event: 35
- Fork event: 8
Last Year
- Create event: 38
- Release event: 10
- Issues event: 58
- Watch event: 70
- Delete event: 25
- Issue comment event: 75
- Push event: 244
- Pull request review comment event: 2
- Pull request review event: 6
- Pull request event: 35
- Fork event: 8
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Brandon Castellano | b****8@g****m | 453 |
| Andy Verstraeten | a****n@M****l | 20 |
| dependabot[bot] | 4****] | 5 |
| KlucsikKP | k****n@g****m | 4 |
| goatzillax | 1****x | 2 |
| Stephen Kempin | S****n | 2 |
| Ryan Sears | r****n@c****o | 2 |
| Felix Scheffer | m****l@f****e | 2 |
| Ron Gross | r****g@s****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 153
- Total pull requests: 34
- Average time to close issues: 7 months
- Average time to close pull requests: 11 days
- Total issue authors: 78
- Total pull request authors: 10
- Average comments per issue: 3.37
- Average comments per pull request: 0.62
- Merged pull requests: 23
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 39
- Pull requests: 25
- Average time to close issues: about 1 month
- Average time to close pull requests: 8 days
- Issue authors: 14
- Pull request authors: 5
- Average comments per issue: 1.0
- Average comments per pull request: 0.24
- Merged pull requests: 16
- Bot issues: 0
- Bot pull requests: 4
Top Authors
Issue Authors
- Breakthrough (47)
- millerthegorilla (5)
- ocram (4)
- sundeepgoel72 (4)
- stevegilbert23 (3)
- myscho15 (3)
- vaskokj (3)
- reubenfirmin (3)
- celmi (3)
- 9812ga98sd (2)
- mmokrejs (2)
- lublak (2)
- goatzillax (2)
- washinoboku (2)
- dassio (2)
Pull Request Authors
- Breakthrough (20)
- dependabot[bot] (8)
- goatzillax (4)
- felixscheffer (3)
- google-labs-jules[bot] (2)
- frafra (2)
- andy-verstraeten (2)
- Fitblip (1)
- elvis-epx (1)
- chibbert (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 946 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 2
(may contain duplicates) - Total versions: 19
- Total maintainers: 1
pypi.org: dvr-scan
Tool for finding and extracting motion events in video files (e.g. security camera footage).
- Homepage: https://www.dvr-scan.com/
- Documentation: https://www.dvr-scan.com/docs
- License: BSD 2-Clause License
-
Latest release: 1.8.1
published 6 months ago
Rankings
Maintainers (1)
pypi.org: dvr-scan-headless
Tool for finding and extracting motion events in video files (e.g. security camera footage).
- Homepage: https://www.dvr-scan.com/
- Documentation: https://www.dvr-scan.com/docs
- License: BSD 2-Clause License
-
Latest release: 1.8.1
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- numpy *
- opencv-contrib-python <=4.2.0.32
- opencv-contrib-python *
- opencv-python *
- opencv-python <=4.2.0.32
- pytest *
- screeninfo *
- tqdm *
- numpy *
- opencv-contrib-python-headless <=4.2.0.32
- opencv-contrib-python-headless *
- opencv-python-headless *
- opencv-python-headless <=4.2.0.32
- pytest *
- tqdm *
- actions/checkout v3 composite
- actions/setup-python v3 composite
- ubuntu latest build
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- actions/checkout v3 composite
- actions/download-artifact v3 composite
- actions/setup-python v4 composite
- actions/upload-artifact v3 composite
- dsaltares/fetch-gh-release-asset 1.1.1 composite
- jinja2 ==3.1.3
- mkdocs ==1.5.2
- mkdocs-material ==9.1.21