The Open Source CCTV platform written in Node.JS (Camera Recorder - Security Surveillance Software)
JavaScript CSS HTML Shell ApacheConf PHP Other
Latest commit bf4c87c Jan 18, 2017 @moeiscool committed on GitHub Merge pull request #38 from moeiscool/dev
read marker for videos and bug fixes

README.md

Shinobi

YouTube - Slack - Twitter - Facebook - Reddit - Bountysource - Pledgie - GratiPay

Shinobi is an Open Source CCTV software written in Node.JS. Designed with multiple account system, Streams by WebSocket, and Save to WebM. Currently it is being crafted for IP Cameras, not local. Shinobi can record IP Cameras and Local Cameras.

Key Aspects

  • Written in a simple structure. camera.js and web folder.
  • Streams are transferred through WebSocket. DOM element is an img tag.
  • Any websocket enabled browser can support the image stream (including mobile)
  • Can save to WebM or MP4 (Your version of FFMPEG must have libvpx and libx264)
  • No Mootools (yes, you can shake my hand later)
  • Calendar view for Events

More about Shinobi in the Wiki

https://github.com/moeiscool/Shinobi/wiki

Supported Cameras

https://github.com/moeiscool/Shinobi/wiki/Supported-Cameras

Supported Systems

How to Install and Run

To Do

  • Fix Pipe error that occasionally occurs. (appears to be caused by JPEG stream emit or pipe into ffmpeg, MJPEG is not affected) - this will be addressed by segmenting feature.
  • Save events with blank frames and force real duration instead of based on frame count.
  • better mobile support.

Help Shinobi

If you like Shinobi please check out some ways you can help Support Shinobi.

Author

Moe Alam

Follow me on Twitter https://twitter.com/moe_alam

Credits

If you wish to use this software for commercial purposes please consider donating :) If not.. including my name would be nice.

Shinobi
Copyright (C) 2016-2025 Moe Alam, moeiscool

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

# Libraries Used

vbox.css (the framework that does the vertical panel layout) - I honestly don't know who made this, i found it in a zip.
jQuery - http://jquery.com/
Socket.io - http://socket.io/
Bootstrap - http://getbootstrap.com/
Moment.js - http://momentjs.com/
Livestamp.js - https://mattbradley.github.io/livestampjs/
Font Awesome - http://fontawesome.io/
Node.js - https://nodejs.org
MySQL - https://www.mysql.com/
NPM: mysql - https://www.npmjs.com/package/mysql
NPM: crypto - https://www.npmjs.com/package/crypto
NPM: express - http://expressjs.com/
NPM: request - https://www.npmjs.com/package/request
NPM: connection-tester - https://www.npmjs.com/package/connection-tester

and maybe a few others.