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
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
# build typescript server
# build fromend
npm run-script build
To manually run the server
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