I bought a new house last year and I decided to install some cameras to monitor the property. I tried out a couple types of consumer cameras and I didn’t like the hardware, image quality, features, or apps, and I decided to make a whole big homebrew project out of setting up a camera system. I ended up building a pretty full-featured camera system that records video 24/7 from multiple cameras and detects and records motion events and has serviceable iOS and macOS apps. Over one week of video retention is available from eight cameras, with resolutions ranging from 1080p and up, with 10 TB of storage. This post post is the first in a series, that will describe my IP camera system.
Let’s start with a high-level overall network diagram:
I wanted the network architecture to keep the cameras away from the Internet, because of the recent DDoS attacks driven by hacked cameras. I used power-over-Ethernet (POE) cameras which are powered through their network cables. I decided to use this type of camera connectivity because, cameras need wires anyway to power them, and long term, wired networks are more reliable than wireless networks. I also didn’t want the cameras to be on my home WiFi network for security and performance reasons. Finally, since the camera power comes from a central location via PoE, it can be backed up with a single UPS.
By the way, the green blocks represent a bunch of software pieces I had to build, myself, to get things to be the way that I wanted them. I learned a ton about h264 compression and gRPC along the way and had fun as well. More details to come!