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.
Shinobi Login Dashboard Shinobi ESP32Cam JPEG Ein erstes Bild Shinobi ESP32Cam JPEG Einstellungen Verbindung Shinobi ESP32Cam MJPEG Erster Blick durch die Kamera
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-in
stall.sh)
Dann durch Konsolenmenü navigieren. Ich habe die Installation mal im Standardverzeichnis gestartet anderer werden hier lieber srv o.ä. wählen wollen.

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

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

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

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

Den Port von 8080 auf 8081 ändern und speichern.
Shinobi neu Starten:
root@pi1:/home/Shinobi# shinobi restart

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

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

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.)

User Account erstellen
Accound Erstellung starten

Email Adresse eintragen 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.

Ein neuer Benutzer wurde erstellt.

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

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

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

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.

Ein erster Blick auf die strukturiert Oberfläche.

- Funktions auswahl – hier gibts alle Arbeitsmodi, auch sowas wie einen Onvif Detector
- Monitor Liste, jeder Monitor entspricht in etwa einer konfigurierten Kamera
- Ein paar Informationen über CPU Auslastung, Arbeitsspeicher und Festplattenplatz.
- Offene Monitore, hier können die Kamera Streams betrachtet werden
- 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.

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

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.

Die Stream Einstellungen sind sehr konservativ gewählt.

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.

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.

Jpeg Einstellen.

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

Am Ende noch den Stream einstellen.

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

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.

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

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

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.