No system will be perfect though. What if the internet connection goes down? What if the power goes out? What if the provider for the remote storage goes down?
Nest Aware charges $10–30/mo for this (https://store.nest.com/product/security/camera).
One of my cameras records 640x480 at 1 fps, saving movies at 7 fps when motion is detected. I end up using 1GB to 1.5GB per camera per day, depending on how much motion is being detected. The files saved are 7 fps videos for each event, 1 fps videos for each hour (24 videos), plus the event videos all stitched into one video.
For my purposes, this is sufficient. Other folks might want 720p or 1080p video, have more cameras, etc, and have correspondingly larger storage requirements.
Is there any open-source/documentation that is accessible to more people (not just network experts) on how to do this kind of setup?
* Remote access to your home network
* Recording and storage of video, possibly with motion detection and alerting.
* Remote storage of video/events (optional).
Each problem is "sort of" solved:
Most routers have some kind of VPN server built in. My Asus router supports PPTP, which isn't very secure, out of the box. I think some routers are starting to support OpenVPN, but without some easy wizard to set it up and distribute the profiles and certificates it would probably be beyond the average user.
A lot of NAS devices come with software to record from IP cameras. My QNAP has it, but I have no idea how good it is as I've never tried it. I know that to use more than two cameras they want you to buy extra licenses.
A lot of NAS devices can also sync folders up to various cloud storage providers. This could solve the optional remote storage requirement.
As for making it all work together, that's another story. I'm not aware of any kind of easy to follow HOWTO for a user who's goal is "access my cameras remotely without sending everything to the cloud".