Shinobi simple CCTV and NVR solution

pete_c

Guru
Found this just googling and installed it on my Kodi Ubuntu box.
 
I am very impressed with it.
 
Shinobi
 
Note here have used ZM since the beginning running it alway on Ubuntu server.
 
It is offered as an open source solution and as a pro solution with a monthly fee.  (Community edition and Pro edition - similiar to PFSense).
 
Shinobi is the Open Source CCTV Solution written in Node.JS. Designed with multiple account system, Streams by WebSocket, and Save to WebM. Shinobi can record IP Cameras and Local Cameras.
 
 
 
 
Tried to add to the above post and ran in to the security authentication thing that wipes put the post and doesn't work.
 
Some features of Shinobi
 
  • Time-lapse Viewer (Watch a hours worth of footage in a few minutes)
  •     2-Factor Authentication
  •     Defeats stream limit imposed by browsers
           With Base64 (Stream Type) and JPEG Mode (Option)
  •     Records IP Cameras and Local Cameras
  •     Streams by WebSocket, HLS (includes audio), and MJPEG
  •     Save to WebM and MP4
          Can save Audio
  •     Push Events - When a video is finished it will appear in the dashboard without a refresh
  •     Region Motion Detection (Similar to ZoneMinder Zone Detection)
           Represented by a Motion Guage on each monitor
  •     "No Motion" Notifications
  •     1 Process for Each Camera to do both, Recording and Streaming
  •     Timeline for viewing Motion Events and Videos
  •     Sub-Accounts with permissions
            Monitor Viewing
            Monitor Editing
            Video Deleting
            Separate API keys for sub account
  •     Cron Filters can be set based on master account
  •     Stream Analyzer built-in (FFprobe GUI)
  •     Monitor Groups
  •     Can snapshot images from stream directly
  •     Lower Bandwith Mode (JPEG Mode)
            Snapshot (cgi-bin) must be enabled in Monitor Settings
  •     Control Cameras from Interface
  •     API
            Get videos
            Get monitors
            Change monitor modes : Disabled, Watch, Record
            Embedding streams
  • Dashboard Framework made with Google Material Design Lite, jQuery, and Bootstrap
 
I just installed this on one of my servers. I'll need to sit down and figure it out but it seems to have plenty of videos. So I'll throw my existing cameras at it and see how well it works. Now if I can just figure out how to get it to show on the TV in a way my wife will be happy with.
 
There are a couple of Kodi CCTV plugins which work well.  You can configure the CCTV as a plugin and pop up.
 
pete_c said:
There are a couple of Kodi CCTV plugins which work well.  You can configure the CCTV as a plugin and pop up.
How are you feeding the CCTV into the TV? My wife has Tivo on one HDMI input, Chromecast on another, and I think the other 2 are spare.
 
Via Kodi box which is running Ubuntu 18.04 64 bit HDMI out as a test right now.  TV HDMI in/out is connecting to AVR with multiple HDMI inputs.
 
Box running Shinobi is also running KODI with an HDMI output to AVR such that you can watch CCTV directly via the web interface or indirectly via a Kodi plugin (just a python script).
 
Yes here also also have a DTV DVR (it used to be Tivo) and Roku is built in to the TV.  I cannot do 4K with the old KODI box and just read on the Rock/Pine 64 forum that they have Kodi 4K now working on the boxes.
 
Over the years here migrated to XBMC from Microsoft Media center. 
 
Thanks, I've not worked with an AVR but if I understand it's purpose with Kodi and my need to see the camera's, I think the multiple inputs on the TV will suffice. I will have to set this up in my test bed and give it a go. The RockPro64 can do 4K but I won't be using that initially with this setup. Now I just need to find some time ... 
 
The Kodi Ubuntu box is configured as the test Shinobi server, html client and the use of a Kodi CCTV interface.
 
Basically for Kodi it is just a pop up or python client per camera and not the Shonobi management interface.
 
For a LCD TV you can put run the client and server on an RPi to test.  You can also configure the RPi to act as a client to the Shinobi server.
 
This is all the same stuff for me as the ZM box which I have used for many years now. 

Recently here also configured OpenVPN and L2TP/IPSec servers on PFSense. The remote WAN client configuration on a tablet, PC (windows or linux) and Smartphone is a very easy plug n play.

Thinking I have mentioned PFSense before. It is flexible and licensing is similiar to Shinobi. The community version of PFSense is free and PFSense is very plug n play. Today's box has 4 internal Intel GB NICs and 2 external WAN NICs (failover). You can do VLANs on each of the NICS for multiple multiple internal networks connected to managed switches. IE: I do this for testing cloud connected applications.

This way you do not have to open up ports on your firewall and have a direct IP connection to your home network to be able to run anything connecting to Linux or Windows servers. IE: tested RDP through VPN to Windows server 2016 and Linux...works great. You can also do an el cheapo VPN using SSH and a reverse proxy.

Personally like the VPN route over bouncing the connection to the cloud and back down again. It is a direct route.

BTW here is a configuration I did a few years back for work....cheap and easy....vpn dot ual dot com (split tunnel) using an onion skin approach.
 
Just a relative post here...works great with VPN.
 

Shinobi on the go

Using Shinobi on mobile is as easy as opening it in your web browser.


What about an app on the home screen?

Sure! Follow the steps below that are applicable to your device. This is how Shinobi is designed. It is meant to run on as many devices as possible.

iOS (iPhone and iPad)
  • Open up Safari on your iOS device.
  • Navigate to the Shinobi panel that you want on the home screen.
  • Tap the Share button on the menu bar.
  • Tap on Add to Home Screen.
  • Set the display name for your Shinobi icon (launcher).
  • Tap on Add in the upper-right corner to add the shortcut to your home screen.
  • The icon will appear on the home screen.
Android (Google Mobile OS)
  • Launch Chrome for Android.
  • Navigate to the Shinobi panel that you want on the home screen.
  • Tap the menu button and tap Add to homescreen.
  • Set the display name for your Shinobi icon (launcher).
  • The icon will appear on the home screen.
Windows (Windows 8)
  • First, open the modern Internet Explorer browser.
  • Navigate to the Shinobi panel that you want on the home screen.
  • Pull up the app bar — for example, by right-clicking or swiping up from the bottom of your screen
  • Tap the star icon.then tap the pin icon.
  • Set the display name for your Shinobi icon (launcher).
  • Click Pin to Start.
  • The icon will appear as a tile on your Start screen.
 
Hey Pete... Looking forward to hearing more on Shinobi. I moved into a new house recently and have been wanting to get a system up and running again. Does Shinobi have any type of "tripwire" feature?
 
From what I can tell so far it does not have a hardware tripwire option.  It has a couple of motion detection plugins.
 
Been testing the application with PCA and Omnitouch screen.
 
Works fine.  Only thing is that I have been trying to utilize a static JPG or MJPEG link and it changes if I reboot or tinker with the settings.
 
This makes me go back to PCA and adjust the CCTV link accordingly.
 
Here is a JPG link for one camera.
 
hxxp://www.xxx.yyy.zzz:8080/0a8f94cde4c6fc4e7eb73d0e7125c565/jpeg/vuc83x4na4/QrUZ7W15Sm/s.jpg

Documentation shows this for a JPG

hxxp://xxx.xxx.xxx.xxx/[API KEY]/jpeg/[GROUP KEY]/[MONITOR ID]/s.jpg

API key shows X3IMzK41lCnUFw8qfhjbNNWPJJKQrf
Group key shows vuc83x4na4
Monitor ID shows QrUZ7W15Sm

new static link is:

hxxp://xxx.xxx.xxx.xxx:8080/X3IMzK41lCnUFw8qfhjbNNWPJJKQrf/jpeg/vuc83x4na4/QrUZ7W15Sm/s.jpg
 
and here only see API key changes.  It's a bit long and I am guessing more secure this way.
 
Hey guys, using the API you can send in commands to trigger a motion event, which does provide that "tripwire" functionality.
 
So you can accomplish that using any number of methods.  A Raspberry Pi, Arduino, or similar can detect a hard line state change (closed dry contact for example) and make the API call.
 
Homeseer, HaikuHelper, or really any other automation platform can make web calls pretty easily as well.  Now unfortunately, if the API key is changing every time the server is restarted, that is sub-optimal for scripting.
 
Testing the API changes on reboot today.
 
There are two API's for reading the images. 
 
One is automagically configured with configuring the monitor and the other one is just what I see when I go to the image in the Shinobi monitor GUI application.

IE: if I click on the link on the top it goes to an image link. If I build the link with the bottom API it goes to the image link.
 
both.jpg
 
Back
Top