Revolutionize Your Video Surveillance with a Web-Based Open-Source NVR with Object Detection

Revolutionize Your Video Surveillance with a Web-Based Open-Source NVR with Object Detection

This is an open-source web-site self-hosted network video recorder (NVR) web application that allows you to monitor your IP security camera network, record camera feeds to your computer's hard drive, and monitor motion events through a web app.

It supports one or multiple cameras, offers object detection tagging/filtering, and continuously monitors hard drives by deleting the oldest video segments when almost full.

The app uses HTTP Live Streaming (HLS) is a widely used protocol developed by Apple that will serve your stream better to a multitude of devices. HLS will take your stream, break it into chunks, and serve it via a specialized playlist

Object Detection

In addition, if your cameras motion sensor triggers a detection, the app will take a still of the detection, and run a Object Detection process, to tag the still with the objects in the picture. You can then use these tags to filter and review your motion events. This is very useful to avoid false positives, like the sun going behind a cloud, or a rain shower.


Using the settings menu, you first select the disk you will be using to stream real-time video from the cameras, and if you want to use the auto-deletion featre to prevent the disk from filling up, then if you want to use the object detection feature. Then you can add your cameras

Install / Setup / Run

The benifit of this app, its, its open-source, and it can be installed on any comodity h/w running linux (a free o/s operating system), techincal savvy users should be able to get this working.

Build & Run Web App

Ensure you have nodejs (recommended version >= 16 LTS) and ffmpeg (latest version) installed.

Clone this repo onto a Linux machine, then build the app by running these commands:

# install dependencies
npm i

# build typescript server
npx tsc

# build fromend
npm run-script build

To manually run the server

node ./lib/index.js

Then open a browser and navigate to http://<hostname>:8080. You are free to use a proxy like nginx and add TLS/DNS, authenitcation, then expose your app to the internet so you can monitor your home when away


Not listed.

Resources & Download

GitHub - khowling/open-source-nvr: Open Source NVR
Open Source NVR. Contribute to khowling/open-source-nvr development by creating an account on GitHub.

Read more