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.

https://github.com/breakthrough/dvr-scan

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

interactive archival projection generic sequences observability autograding hacking shellcodes modular
Last synced: 6 months ago · JSON representation

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
Created about 9 years ago · Last pushed 6 months ago
Metadata Files
Readme License

README.md

DVR-Scan Logo

: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:

main app window

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

example of region editor

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

example of bounding boxes

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

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

All Time
  • Total Commits: 491
  • Total Committers: 9
  • Avg Commits per committer: 54.556
  • Development Distribution Score (DDS): 0.077
Past Year
  • Commits: 93
  • Committers: 4
  • Avg Commits per committer: 23.25
  • Development Distribution Score (DDS): 0.065
Top Committers
Name Email 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
bug (40) status: completed (33) improvement (25) feature (20) known issue (9) status: duplicate (7) technical item (6) help wanted (5) status: awaiting response (5) video-corruption (4) discussion (3) community feedback requested (3) awaiting response (3) feedback required (2) duplicate (1) won't fix (1) in progress (1) status: in progress (1) good first issue (1) status: rejected (1) status: won't fix (1)
Pull Request Labels
feature (12) dependencies (8) improvement (2) github_actions (2) technical item (2) python (2) bug (1) status: completed (1)

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).

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 818 Last month
Rankings
Stargazers count: 3.7%
Forks count: 6.3%
Average: 8.2%
Downloads: 9.3%
Dependent packages count: 10.0%
Dependent repos count: 11.6%
Maintainers (1)
Last synced: 6 months ago
pypi.org: dvr-scan-headless

Tool for finding and extracting motion events in video files (e.g. security camera footage).

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 128 Last month
Rankings
Stargazers count: 4.0%
Forks count: 6.7%
Dependent packages count: 8.7%
Average: 17.0%
Dependent repos count: 48.7%
Maintainers (1)
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • numpy *
  • opencv-contrib-python <=4.2.0.32
  • opencv-contrib-python *
  • opencv-python *
  • opencv-python <=4.2.0.32
  • pytest *
  • screeninfo *
  • tqdm *
requirements_headless.txt pypi
  • 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 *
.github/workflows/check-code-format.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
Dockerfile docker
  • ubuntu latest build
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/update-site.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
pyproject.toml pypi
setup.py pypi
.github/workflows/build-windows.yml actions
  • 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
website/requirements.txt pypi
  • jinja2 ==3.1.3
  • mkdocs ==1.5.2
  • mkdocs-material ==9.1.21