/Cyber-Camera

Turns any webcam into a smart security camera for home surveillance

Primary LanguageJavaScriptOtherNOASSERTION

Cyber-Cam

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.

Features

  • 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

Screenshots

Watch simply on the go:

Stream Stream

Or from your browser

Installations and Requirements

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

Configurations

See Here

How to Run

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)

Server initialization by hosts discovery

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.

amirfefer@gmail.com