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-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.
Vielen Dank!
Endlich eine gute Anleitung zu einer Software gefunden die gut funktioniert !
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?
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
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.
Moin Stefan,
welche Software nutzt du inzwischen statt Shinobi?
Gruß
gruen
Moin Gruen,
aktuell benutze ich keine, wollte aber shinobi mit den Nvidia jetson nano mal probieren, bin aber noch nicht dazu gekommen.
Gruß
Stefan
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“
Hallo Klaus,
bin da leider auch nicht der Experte. Aber versuch mal den PM2 zu installieren:
sudo npm install -g pm2
Info habe ich von:
https://desertbot.io/blog/nodejs-git-and-pm2-headless-raspberry-pi-install
evtl. pm2 als sudo starten.
Gruß aus Sulzbach im Taunus
Stefan
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.
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
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.
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