Open-source NVR & Viewer

Previously I was using a Hikvision NVR, but this was limited to outputting the video grid to either the VGA or HDMI outputs on the back of the unit. There was a special “Channel Zero” which could stream the video grid but it was very low resolution. I had a need to show this video grid at multiple locations around my house.

I did try to create a grid view in my homeassistant UI, but found a custom html page to be more useful

in order to solve this I created 2 projects, a viewer and a recorder.

The viewer project suits my needs by allowing the video grid to be displayed on a webbrowser. Tested on Chromium, Chrome & Firefox on linux, this viewer is currently running on Raspberry PI 4’s connected to 3 televisions ar required around the house.

Now that the viewer has replaced the Hikvision nvr, I needed to also actually record the video, and as such the recorder project was born.

Currently both projects are Hikvision oriented as that’s the hardware that I have, but I tried to write it in a way that allows other types/brands to be easily incorporated.

Also the recorder is pretty basic as far as video retention goes, its just doing continuous recording with a simple n-day retention scheme that suits my 4gb drive. I’m hoping to add more sophisticated retentions such as motion and/or linecross retentions.
In order to keep things simple, browsing recorded video is just done by accessing the file system, which works good enough for me.

I’ve only got a very basic integration with homeassistant so far with the viewer containing a simple mqtt client that receives messages for a particular camera. This allows arbitrary messages to be shown on the specifc camera window. I use it to show a message on the front door camera when somebody rings the doorbell.

Please take a look