An open source for home surveillance:
Cyber-Cam turns any webcam into a smart security home surveillance system.
Allow you to watch and record video streaming anywhere from a secured (TLS/SSL & HTTP Basic Auth) web interface.
Cyber Cam includes smart protection, which plays alarm, sends email and smartphone notifications when a suspicious
activity captured. Based on real time movement, face, full/upper-body detection.
- Watch your webcam stream anywhere
- Get email and smartphone notifications when a movement/face/full/upper body detected
- Recrod a video or take a snapshot remotely
- Automatic uploading recorded videos to your Dropbox account
- TLS/SSL and http basic authentication for max security
- Responsive Web UI
- One direction audio stream
- Auto server initialization by hosts discovery
- Get an email when your public IP address has been changed
Or from your browser
Tested on fedora 24 and Windows (7-10)
Download and install python 2.7.9 (32 bit only)
You can use lower 2.7.x but without SSL/TLS support.
For a quick installation pip is recommended
Dependencies libraries:
flask V.0.12
flask_httpauth
numpy 1.9.2
opencv 2.4 (Not tested with opencv3)
pygame
dropbox
pycrypt
For video recording, it must to copy dll files from opencv directoy opencv\sources\3rdparty\ffmpeg
to python's directory, and rename
to opencv_ffmpeg
+ [opencv version e.g 2413]
It's importent to fill out the conf file, pay attention to comments.
For TLS/SSL support, make server's certificate and a key (optional)
The user's password must be in sha224, you can use a generator like this
See Here
After filling the conf.ini
file, excute the server under windows or linux by open the terminal and type $python server.py
.
Congratulation! your webcam has been transformed into a smart security camera.
Don't forget to port forward for accessing it from outside, plus you can use ddns service like noip (only in non HTTPS)
It's time to forget from starting/stopping the sever manually
The server will start automatically when all the hosts (e.g your smartphone) do NOT reachable in the local network
plus get server's current IP address via email
Just make a hosts.txt
file in the main cyber-camera
directory,
Add the wanted hosts IP separated by line (make sure each host has a static ip on the local network)
Run the network.py
script instead of server.py
.
When your public IP has been changed, an email will be sent with the new IP.
If you encounter a bug, or have some suggestions, please let me know by email or open an issue.