Started In The year the platform started. 2016 2003

Written in The main server language used to manage operations. JavaScript C++, Perl and PHP

Maintained by Author Whether or not the platform is being developed by a third party or the original Author(s).

Runs On 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.

Multicast Streams When you have one source providing data to multiple clients. Base64 and MJPEG streams with Shinobi work in this manner.

MJPEG Streams Motion JPEG, A socket that stays open only for serving JPEG images.

JPEG Streams 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) Frames are base64 encoded then pushed to the client over websocket. Then drawn to a canvas element with javascript.

Recording Method 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.

Records Audio 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.

Isolated Accounts An "Admin" account for creating cameras and sub accounts. This account will be have it's own Group Key.

Sub Accounts Sub Accounts can be made for multiple users who wish to monitor the same cameras and data associated with or without permissions.

Filters Filters are run with the cron job, by default every 1 hour. You can delete certain files, run commands, or get data about events.

Monitor Groups Groupings for monitors to quickly display certain streams and data.

2-Factor Authentication 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.

Time-lapse Viewer 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.

Camera Scanner The scanner will find some ONVIF compliant cameras based on the IP range specified.

Event Notification 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.

Video Compiler 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.

External Triggering Modifiying camera modes remotely through a script or on a wim.

PTZ Support Pan-Tilt-Zoom Support for Cameras.

Automatic Backup Automatically upload video data to the a remote address.

Web Interface A panel that can be accessed by a web browser like Google Chrome or Mozilla Firefox.

Mobile App A native client for your Shinobi that runs in iOS and Android.

Database Where information about the users, filesystem, and cameras are stored. MySQL / MariaDB MySQL / MariaDB