Raspberry PI als NVR mit Shinobi

Last Updated on 4. Januar 2021 by sfambach

Mein Aktuelle NVR (Network Video Recorder) hat so seine Tücken und ich suche nach einer Alternativen. Das alte Modell von Corseer, war zwar das für mich am besten funktionierende unter allen 6 Modellen, welche ich getestet hatte aber es gibt keine Updates mehr, 2 von 4 Kameras funktionieren nicht und Corseer erlaubt, wie andere Herstelle auch, nur eigene Kameras.

Da dachte ich mir hier gibts doch sicherlich auch was für den Raspberry Pi. Nach kurzen googeln fand ich die Software vom Shinobi die auf dem Raspberry schon erprobt wurde. Die Installation auf einem bestehenden Raspberry und deren Konfiguration will ich in diesem Bericht kurz umreissen. Da ich in den letzten Monaten immer mal wieder mit diversen ESP Cams gespielt habe, wäre zudem nett solch eine Kamera einzubinden.

Wenn der Raspberry noch installiert werden soll, ist hier eine kurze Anleitung.

Fakten

Shinobi selbst wird über ein Webinterface verwaltet und gesteuert, was den Einsatz im eigenen Netzwerk erleichtert. Die Software soll auf einem Raspberry PI ab Version 3B laufen.

Anwendungsbereiche

  • Video Recorder für IP Kameras
  • Nummerschild Erkennung
  • Bewegungserkennung
  • Steuerung mehrerer Kameras
  • Fernsteuerung über Webinterface

Kameras

Voraussetzungen für die Kameras gibt es nicht viele:

  • Es muss eine IP Kamera sein
  • Das Übertragungsprotokoll sollte von Shinobi unterstützt werden.
  • Onvif Unterstützung kann nicht schaden.
  • Sie muss durch den PI übers Netz erreichbar sein

Von mir verwendete Versionen

  • MariaDB 10.1.45-MariaDB-0+deb9u1
  • Raspbian 9.11
  • Shinobi :

Verwendete Hardware

  • Rapberry PI 3b + PI 4 mit 4 MB
  • ESP32 Cam

Lizenz

Der Sourcecode ist frei. Für die Nutzung gibts es ein einfaches Lizenzmodell. Für nicht kommerzielle Zwecke gibts eine Freie (CE) Version und für den kommerziellen Gebrauch eine Pro Variante mit Subkription.

Die freie auch Community Version genannte Variante, wir nur zu Haupversionen geupdated oder wenn Bufixes eingespielt werden. Die Kommerzielle Version ist hier agiler.

Genauere Angaben bitte der Seite des Herstellers entnehmen.

Ansichten

An dieser Stelle ein paar Eindrücke der Oberfläche, mehr dazu später.

Installation

Shinobi bietet ein Installation Skript. Zur interaktiven Installation die folgende Zeilen über SSH oder Console eingeben:

sudo su

bash <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)

Dann durch Konsolenmenü navigieren. Ich habe die Installation mal im Standardverzeichnis gestartet anderer werden hier lieber srv o.ä. wählen wollen.

Console Starten der Installation
Console Starten der Installation

Als Konfiguration wähle ich Ubuntu, diese scheint laut Web gut auf dem PI zu funktionieren.

Console Ubuntu Auswahl
Console Ubuntu Auswahl

IPv6 ist mir nicht wichtig da ich noch hauptsächlich IPv4 verwende.

Console Ausschalten IPv6
Console Ausschalten IPv6

Zum Abschluss werden die Login Daten für den Browser noch angezeigt.

Console Abschluss Installation mit Logindaten
Console Abschluss Installation mit Logindaten

Port ändern

Ich habe bereits einen Tomcat installiert, somit kann ich den Port 8080 nicht verwenden. Deshalb habe ich den Port noch auf 8081 umgestellt. Dies geschieht in der conf.json im Shinobi Installationsverzeichnis (bei mir /home/Shinobi)

root@pi1:/home/Shinobi# vi conf.json
vi Port ändern
vi Port ändern

Den Port von 8080 auf 8081 ändern und speichern.

Shinobi neu Starten:

root@pi1:/home/Shinobi# shinobi restart
Console Shinobi neu starten
Console Shinobi neu starten

Erstkonfiguration

Erstes Einloggen

Bei mir sieht der Link jetzt wie folgt aus:

http://192.168.1.10:8081/super

Diesen in einem Browser öffnen und mit den Logindaten aus der Console befüllen.

Default Superuser : admin@shinobi.video
Default Password  : admin

Browser, Login Seite für Shinobi
Browser, Login Seite für Shinobi

Sollte nicht das folgende Bild, kommen Schaut mal im Kapitel Probleme nach evtl. gibts dort eine Lösung.

Shinobi im Browser nach erfolgreichen Superuser Login
Shinobi im Browser nach erfolgreichen Superuser Login

Superuser Passwort ändern

Aus Sicherheitsgründen sollte als erstes das Superuser Passwort geändert werden, damit kein Anderer auf den NVR administrativ zugreifen kann.

Im Menü den Eintrag „Preferences“ wählen, zweimal das neue (sichere) Passwort eingeben und mit dem Knopf „Save“ bestätigen. (Den Knopf, auch wenn er sehr groß ist, habe ich erst auf den zweiten Blicke gefunden. Würde ihn eher am Ende der Seite erwarten.)

Shinobi Browser - Superuser Passwort ändern
Shinobi Browser – Superuser Passwort ändern

User Account erstellen

Accound Erstellung starten

Shinobi - Neuer Benutzer, Erstellung starten
Shinobi – Neuer Benutzer, Erstellung starten

Email Adresse eintragen und Passwort wählen.

Shinobi - Neuer Benutzer, Email und Passwort wählen
Shinobi – Neuer Benutzer, Email und Passwort wählen

Erstmal alle Previlegien, später können wir das noch einschränken. Mit Save (oh der Button ist ja unten 😉 ) bestätigen.

Shinobi - Neuer Benutzer, Previlegien wählen und speichern
Shinobi – Neuer Benutzer, Previlegien wählen und speichern

Ein neuer Benutzer wurde erstellt.

Shinobi - Neuer Benutzer, wurde erfolgreich erstellt
Shinobi – Neuer Benutzer, wurde erfolgreich erstellt

Grundeinstellungen

Die Einstellungen können erst einmal so bleiben wie sie sind.

Shinobi - Einstellungen
Shinobi – Einstellungen

Beim Durchstöbern ist mir noch augefallen, dass das DB Passwort fehlt. D.h. es gibt einen Benutzer ohne Passwort in der Datenbank.

Shinobi - Einstellungen: Fehlendes DB Passwort
Shinobi – Einstellungen: Fehlendes DB Passwort

Ich habe erst das Passwort in den Einstellungen geändert und gespeichert:

Shinobi - Einstellungen: Passwort für DB setzen
Shinobi – Einstellungen: Passwort für DB setzen

Daraufhin das Passwort noch in der Datenbank setzen:

Mysql Client öffnen

mysql -u root -h localhost -p.

Folgendes Skript absetzten

SET PASSWORD FOR majesticflame@127.0.0.1 = PASSWORD('Das_Neue_Passwort');
EXIT;

Shinobi mal neu starten

root@pi1:/home/Shinobi# shinobi restart

Kamera Konfiguration

Die Einstellungen die Shinobi bietet, sind wirklich erstaunlich. Wenn man neu in die Materie einsteigt, weiss man nicht wo man anfangen soll ;). Hier mein Weg mit der ESP32 Cam. Ich habe zwei Konfigurationen erstellt. Eine für mit MPEG Stream und eine mit Jpeg Schnappschüssen. Aber zuerstmal in die das Dashboard einloggen.

Einloggen

URL ist

http://<IP>:<port> 

in meinem Fall ist es:

http://192.168.1.66:81

Danach mit dem neu erstellten Benutzer einloggen.

Shinobi Login Dashboard
Shinobi Login Dashboard

Ein erster Blick auf die strukturiert Oberfläche.

Shinobi Dashboard Oberfläche
Shinobi Dashboard Oberfläche
  1. Funktions auswahl – hier gibts alle Arbeitsmodi, auch sowas wie einen Onvif Detector
  2. Monitor Liste, jeder Monitor entspricht in etwa einer konfigurierten Kamera
  3. Ein paar Informationen über CPU Auslastung, Arbeitsspeicher und Festplattenplatz.
  4. Offene Monitore, hier können die Kamera Streams betrachtet werden
  5. Neben anderen Knöpfen ist hier der + Knopf zum hinzufügen einer Kamera.

Um einen Monitor (Kamerakonfiguration) zu erstellen wird der + Knopf betätigt. Dies habe ich im Folgenden zweimal getan. Einmal für die MJPeg Konfiguration und nochmal für die JPeg Einzelbilder.

MJPeg Konfiguration

Namen eingeben, dieser wird dann in der Übersichsanzeige links mit angezeigt. Der Rest in diesem Abschnitt bleibt unberührt.

Shinobi ESP32Cam MJPEG Neuer Monitor
Shinobi ESP32Cam MJPEG Neuer Monitor

Für die Verbindung die Art MJPEG und die URL eintragen.

Shinobi ESP32Cam MJPEG Verbindung einstellen
Shinobi ESP32Cam MJPEG Verbindung einstellen

Den Eingang noch konfigurieren. Mit diesem Werten kann zwecks Optimierung noch gespielt werden. Die Framerate habe ich auf 3 gesetzt was so der Durchschnitt der ESP32Cam mit einer Auflösung von 800×600 bei mir ist. Die Hardware Beschleunigung lasse ich ersteinmal aus, um Fehlerquellen zu reduzieren.

Shinobi ESP32Cam MJPEG Eingang einstellen
Shinobi ESP32Cam MJPEG Eingang einstellen

Die Stream Einstellungen sind sehr konservativ gewählt.

Shinobi ESP32Cam MJPEG Strean einstellen
Shinobi ESP32Cam MJPEG Strean einstellen

Mit diesen Einstellungen konnte ich erste Bilder anzeigen lassen. Es dauert eine Weile bis das erste Bild kommt, also etwas geduld haben. Sicher lassen sich die Einstellungen optimieren.

Shinobi ESP32Cam MJPEG Erster Blick durch die Kamera
Shinobi ESP32Cam MJPEG Erster Blick durch die Kamera

Bei mir kommt eine langsame Diashow an. Auch diverse Anpassungen der Einstellungen führten bei mir auf dem RPI3 nicht zu einer Verbesserung. Im ISpy geteste, läuft es flüssiger.

JPeg Konfiguration

Hier nun die Einzelbild Konfiguration. Einen sprechenden Namen vergeben.

Shinobi ESP32Cam JPEG Einstellungen Monitor
Shinobi ESP32Cam JPEG Einstellungen Monitor

Jpeg Einstellen.

Shinobi ESP32Cam JPEG Einstellungen Verbindung
Shinobi ESP32Cam JPEG Einstellungen Verbindung

Den Eingang konfigurieren. (Hardwarebeschleunigung erstmal aus um Fehler zu vermeiden)

Shinobi ESP32Cam JPEG Einstellungen Eingang
Shinobi ESP32Cam JPEG Einstellungen Eingang

Am Ende noch den Stream einstellen.

Shinobi ESP32Cam JPEG Einstellungen Stream
Shinobi ESP32Cam JPEG Einstellungen Stream

So sieht es bei mir aus. Die Bilder kommen bei mir flüssiger und klarer als beim MJPEG Stream.

Shinobi ESP32Cam JPEG Ein erstes Bild
Shinobi ESP32Cam JPEG Ein erstes Bild

Probleme

Webseite konnte nicht gefunden werden

Bei mir ist bereits ein Tomcat installiert. Dieser hat natürlich nicht die Shinobi Applikation verfügbar was das Bild unten erklärt. Ich habe den Port des Shinobi Servers geändert, siehe hierzu auch den entsprechenden Abschnitt im Kapitel Installation.

Browser Shibnobi Website /super konnte nicht gefunden werden
Browser Shibnobi Website /super konnte nicht gefunden werden

Datenbank nicht erreichbar

Bei mir wurde die Datenbank nicht mit installiert. Das sieht nach dem Superuser Login wie folgt aus:

Browser Nach Login, Datenbank läuft nicht.
Browser Nach Login, Datenbank läuft nicht.

Datenbank manuell nach installieren. Ich werde dies hier nur kurz umreissen, der Vorgang ist unter folgenden Link gut beschieben: https://staticfloat.de/mariadb-10-auf-raspberry-pi-installieren

DB Server und Client installieren

sudo apt-get install mariadb-client mariadb-server

Server einrichten

Root anlegen und Passwort definieren.

sudo mysql -u root -p

In der Sql Console Previlegien bestätigen und die Console schliessen

flush privileges;
exit;

my.conf konfigurieren

sudo nano /etc/mysql/my.conf

folgende Zeilen einfügen:

port = 3306
bind-address = :: #jede IP erlaubt 

Speichern und weiter gehts mit der Sicherheit. Den folgenden Befehl ausführen und die Fragen nach besten Wissen und Gewissen beantworten.

sudo mysql_secure_installation

Die Datenbank jetzt mal neustarten

sudo /etc/init.d/mysql restart

Nun noch die DB Installieren (Genauer ist das hier beschrieben). Hierzu ins Shinobi Installations-Verzeichnis wechseln und den Client starten

cd /home/Shinobi
mysql

Nun die folgenden Zeilen ausführen

source sql/framework.sql;
source sql/user.sql;
exit;

Shinobi neustarten

pm2 restart all
Shinobi im Browser nach erfolgreichen Superuser Login
Shinobi im Browser nach erfolgreichen Superuser Login

Langames Daumenkino

Die folgende Seite gibt ein Paar tips wie die Leistung verbessert werden kann.

https://www.raspberrypi.org/forums/viewtopic.php?t=220699

GPU Speicher auf 256MB stellen

sudo nano /boot/config.txt

GPU Speicher auf 256MB hoch setzten

gpu_mem=256 oder gpu_mem_256

Hier ist ein Reboot erforderlich.

Ich habe das ganze mal auf dem PI4 probiert, hier soll die Hardwarebeschleunigung besser sein.

Sonstiges

NVIDIA Jetson Nano

Der Einplatinencomputer Jetson Nano von NVidia soll in der Video- Verarbeitung besser sein. mit seinen rund 130€ ist er zwar mindestens doppel so teuer wie der PI4 soll aber bis zu 34 parallele Stream verarbeiten können. Hier ein Link zur Konfiguration.

https://hub.shinobi.video/articles/view/i1bbMtvqC2NO1B2

Fazit

Es Klappt. Die Software macht was sie soll. Die Installation ist einfach, auch wenn ich die Datenbank bei mir nachträglich installieren und intialisieren musste.

Die Performanz des PI3 schein leicht an ihre Grenzen zu stossen, somal ich noch andere Prozesse auf ihm laufen habe. Der PI4 mit 4MB hat hier mehr Reserven.

Für kleinere Projekte mit wenigen Kameras und zum Testen der ESP Cams kann ich Shinobi auf dem PI empfehlen, besonders auch da sich die Investionen in Grenzen halten.

Ich werde noch andere Kameras mit ihm Testen. Ob diese Kombination mein neuer NVR wird, wage ich jedoch zu bezweifeln. Evtl. werde ich mir mal den Jetson Nano ansehen. Ich tendiere jedoch mehr dazu den Intel I5 aus meinem alten Rechner als kleinen Server mit Ubuntu auf zu bauen.

Wenn ihr Anregungen oder zum Beispiel zur besseren Konfigurationen habt, lasst einen Kommentar da ich freue mich über jeden Beitrag, der keine Pillen verkaufen will 😉 . Auch wenn ihr Details braucht lasst eine Nachricht da ich werde versuchen den Beitrag zeitnah zu ergänzen.




Verwandte Beiträge

Quellen

Hersteller Seite von Shinobi

Gute und kurze Einführung

Maria DB installieren

Problemklärung bei Email Einstellungen

PI Optimierung

MJPEG Cam Hinzugügen

Fehler Suche

Shinobi mit Jetson Nano

Meine Goole Suche

NVR Programmliste auf GitHub

12 Gedanken zu „Raspberry PI als NVR mit Shinobi

  1. Hallo,

    ich habe bisher meine beiden ESP32-Cams an einem RasPi 3 mit Motioneye als Software betrieben. Motioneye macht jedoch seit einiger Zeit Probleme bei Bewegungserkennung gesteuerter Video-Aufnahme und ich bekomme den Fehler leider nicht ausgebügelt.

    Ich würde gerne eine andere (gratis) Software auf einem RasPi 4 ausprobieren und habe gesehen, dass Sie ISpy und Shinobi hier getestet haben.

    Was ist der Unterschied?
    bzw.
    Welche Software ist mehr zu empfehlen?

    1. Hi ISpy ist Windows, habe bei beiden leider nur die Installation getestet zu mehr bin ich dann icht mehr gekommen. ISpy verwende ich unter Windows ab und an um eine Kamera zu testen. Shinobi habe ich auch noch auf dem pi installiert nutze es aber nicht mehr.
      Gruß
      Stefan

      1. Ok. Danke.

        Ich hatte heute mal die ISpy-Ausführung für RasPi (Agent DVR) versucht zu installieren, ohne Erfolg. Die Vorraussetzungen mit OpenCV etc. sind zu hoch für mich.

        Werde mich also mal an Shinobi versuchen.

  2. Hallo Stefan,

    Danke für die detaillierte Anleitung.
    Ist auch soweit alles durchgelaufen aber leider „findet“ Shinobi den Befehl „PM2“ nicht. Auch wenn ich im Terminal versuche „pi@raspberry:~ $ PM2 restart all“ meldet er: „bash: pm2: Kommando nicht gefunden…
    Kannst Du mir weiterhelfen? – Hat soweit ich herausfand mit node.js zu tun… aber im Detail steig ich da leider nicht durch 🙁

    Bin für jeden Tip dankbar und bei einer Lösung gar euphorisch 😉

    Beste Grüße aus Wien,
    Klaus“

  3. Hallo Stefan,
    leider klappt das nicht mit dem Zugriff auf shinobi.
    Was bedeutet Shinobi process is not running ?
    Shinobi restart kann ich auch nicht ausführen.
    Den Port habe ich auch umgestellt auf 8081 ohne Erfolg. Das Zertifikat ist wohl nicht das Problem, die Adresse 192…:8080/super ist nicht erreichbar sagt Edge. Auf dem Raspi habe ich auch Open Media Vault laufen dessen Oberfläche ist problemlos über die IP erreichbar.

    1. Hallo Fritz

      so pauschal kann ich das leider nicht sagen, dass der Shinopi Prozess nicht läuft ist schon mal ein Anhaltspunkt, ich denke das müsste er.
      Ich nehme an ins Log haste schon geschaut und auch gegooglet warum der Prozess nicht starten könnte. Würde mir das gerne mal ansehen habe aktuell aber keine Zeit.
      Was ich aber sagen kann bei mir lief es auf Aanhieb und ich habe es auch auf einen PI3 und auf einem PI4 mit Open Media Vault ausprobiert (oh Wunder bietete sich halt einfach an :).
      Entschuldige dass ich hier nicht helfen kann.

      Gruß
      Stefan

  4. Hallo,
    die Meldung „Install Completed“ habe ich erhalten.
    Nun soll ich mich am Browswer mit der IP 192.168….. :8080/super anmelden. Dies wird mir leider verweigert mit der Meldung „Die Verbindung mit dieser WEB Seite ist nicht sicher“ Liegt das Problem an meinem System oder bei Shinobi. Für eine Rückinfo würde ich mich freuen.

    1. Hallo Fritz,

      kenne das nur vom Browser. Wird immer angezeigt wenn es sich nicht um eine HTTPS Anfrage also um eine unverschlüsselete Übertragung zu einer Webseite handelt.
      Du müsstest da einen Knopf mit weitere Optionen haben und danach Website trotzdem anzeigen wählen.

      Im Link hier, wird das auch nochmal nächer beschrieben.
      https://www.pctipp.ch/praxis/internet/wenn-der-webbrowser-meckert-verbindung-ist-nicht-sicher-2003518.html

      Gruß
      Stefan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert