"We live in a world where shinobi are younger than you... yet more powerful than me."
The year the platform started.
The main server language used to manage operations.
|Maintained by Author
Whether or not the platform is being developed by a third party or the original Author(s).
The operating system that the platform will run on.
|Linux, macOS, Windows||Linux|
|User Based Quota Support
Detecting Group Key's used storage space. This allows setting a specified maximum usable per group.
When you have one source providing data to multiple clients. Base64 and MJPEG streams with Shinobi work in this manner.
Motion JPEG, A socket that stays open only for serving JPEG images.
JPEG still images saved to RAM. They can be accessed by URL. Streams refresh this image on a timer.
|HLS Streams (m3u8)
Similar to facebook live videos. Chunks of MPEG-4 files are created and given to the client as a continuous stream. This method supports audio.
|Websocket Streams (Base64)
Actual video files for recordings. Like MP4 and WebM.
|Video Files||Each frame as a File
or Video Files, Added in May 2017
|MP4 Recording (Modern)
MP4 is short for MPEG-4 and is a modern video format. This format runs on modern mobile devices natively.
|Added in May 2017|
|WebM Recording (Modern)
WebM is special because the files are super compressed. The drawback is how much CPU is used to create them and is not playable on all modern mobile devices without third-party programs like VLC.
|JPEG Recording (Old Method)
Individual JPEG frames being saved to storage. This method can shorten hardware life.
Recording audio is illegal in some countries. Please ensure you do not have it enabled where such laws apply.
|Added in May 2017|
|Websocket Video Recording
Record frames that are pushed to the server over websocket. This can be useful for mobile devices setup as dashcams or mobile cloud recording units.
| Stream Limit
This limitation is more due to browser capabilities. With Shinobi we can trick the browser into letting us do it anyway. Be aware the limitation is to avoid performance drops. We should be allowed to deal with it at our discretion in a global manner. Sadly, not all browsers allow disabling the limit.
|None with Base64 and JPEG Mode||~6, Depends on method used to view|
|Region Motion Detection
Choose an area between coordinates on your video stream for motion detection to occur.
|"No Motion" Detection
A notification if motion is not detected after a certain amount of time. This is useful for those monitoring experiments or equipment.
|Delete Motionless Video
Continue recording and check to see if video has motion. Files without motion found will be deleted automatically.
|Checked once the video segment is complete.||Checked when periodic audit of the entire database is run.|
An "Admin" account for creating cameras and sub accounts. This account will be have it's own Group Key.
Sub Accounts can be made for multiple users who wish to monitor the same cameras and data associated with or without permissions.
Filters are run with the cron job, by default every 1 hour. You can delete certain files, run commands, or get data about events.
Groupings for monitors to quickly display certain streams and data.
After logging in a code is sent to your email and you will be presented with a screen to validate that code before you can access your account.
Watch a whole days worth of videos in a few minutes.
|RESTful API Access
Integrate Shinobi into your app or control it remotely.
|Embeddable Streams (Natively)
Streams that you can add to your website. Just paste the code.
|Stream Analyzer built-in
Under the hood of the analyzer is FFprobe. A well crafted command line tool that helps you get configure your camera faster and with more confidence.
The scanner will find some ONVIF compliant cameras based on the IP range specified.
Many events on the dashboard are triggered by responses from the server that come in JSON strings.
|Push Events via Websocket
With websocket you can send all kinds of data. In Shinobi Websocket is used to push stream data to the browser.
A tool to create videos. The alternative uses it to combine JPEG images to create a video.
|Processes per Camera
The number of procsesses that are needed to have a camera recording and stream. The alternative will create 1 new process for each stream that is open. Shinobi uses 1 altogether for all streams (per camera) that are open.
|1||2 - 3 Minimum|
|Manual Snapshot from Stream
Take a quick picture of the stream by clicking a button presented on the dahsboard.
Modifiying camera modes remotely through a script or on a wim.
Pan-Tilt-Zoom Support for Cameras.
Automatically upload video data to the a remote address.
A panel that can be accessed by a web browser like Google Chrome or Mozilla Firefox.
A native client for your Shinobi that runs in iOS and Android.
Where information about the users, filesystem, and cameras are stored.
|MySQL / MariaDB||MySQL / MariaDB|
This data will be used to determine things like who and where people are, how big their systems are, the underlying hardware and operating system, etc.
|It is against our principles to use telemetry in private installations|
This is the most popular of many solutions in the CCTV and NVR sector. Originally the intent was to use this for our purposes but found it isn't capable of the task.
Thus Shinobi had to be born.
More Information about why Shinobi had to be made can be found here.