RaspberryPi jako řešení NVR

Nedávno chtěl jeden můj blízký příbuzný nainstalovat do svého domu bezpečnostní plán pomocí řešení CCTV (uzavřený televizní okruh alias video dohled). Dostali jsme několik nabídek, které pro nás byly jasně mimo rozpočet (nejnižší cena byla 1300 €, včetně 4 kamer, krabice NVR a nastavení).

Mým úkolem bylo snížit cenu alespoň o 2, včetně hardwaru, softwaru a nastavení. Základním přínosem je také prozkoumat a naučit se.

Rád začínám nejprve s take aways, takže si v případě zájmu můžete přečíst další podrobnosti.

  • Nepoužívejte vzdálený server jako hardwarové řešení NVR. Místo toho použijte místní hardware, například raspberryPI.
  • Jako hardwarové řešení NVR (Network Video Recording) se použije raspberryPI s lehkým operačním systémem (Raspbian Stretch Lite), protože Raspberry má hardwarové možnosti kódování/dekódování H264.
  • Shinobi je řešení CCTV s otevřeným zdrojovým kódem, které se nainstaluje na toto zařízení raspberry PI a použije se jako softwarové řešení NVR.
  • Kupte si kamery, které mají 2 povinné požadavky : měly by být kompatibilní s IP a měly by být kompatibilní se standardy ONVIF. Konfiguraci kamer v rámci řešení CCTV se budeme věnovat v jiném příspěvku na blogu.

Software : Open Source Shinobi

Open Source nemusí nutně znamenat zdarma, ale jeho výhodou je otevření zdrojového kódu. A jako softwarový inženýr raději zaplatím za software, do kterého se mohu hrabat a upravovat ho, než za uzavřený.

Po prozkoumání se ukázalo, že existuje open source řešení CCTV s názvem shinobi, které budeme používat. Je vyvinuto pomocí nodeJs (javascript na straně serveru). Projekt je poměrně aktivní a existují 2 verze : Community Edition, která je zdarma a je pod licencí GPLv3, a verze Pro, která má měsíční předplatné a je pod specifickou licencí EULA (licenční ujednání pro koncové uživatele). Verzi Pro však můžete používat i pro osobní použití, což je můj případ.

Hardware : Fotoaparáty

Existuje celá řada fotoaparátů s různými schopnostmi a různými cenami ! Kterou z nich koupit a nainstalovat ?!!!

V tomto článku vám nebudu doporučovat žádné konkrétní kamerové zařízení, protože záleží nejen na rozpočtu, ale také na potřebách (noční vidění, detekce, zvuk, kvalita objektivu…). Určitě je však třeba vzít při nákupu v úvahu jeden bod : vaše kamera by měla být IP zařízení a měla by být kompatibilní s ONVIF.

ONVIF je otevřené průmyslové fórum, které poskytuje a podporuje standardizovaná rozhraní pro efektivní interoperabilitu produktů fyzického zabezpečení na bázi IP.

To znamená, že ať je výrobce jakýkoli, pokud je vaše kamera kompatibilní s ONVIF, pak implementuje otevřené průmyslové standardy. To vám poskytne možnost propojit mnoho zařízení mezi sebou, a co je pro nás nejdůležitější, použít náš Open Source Shinobi NVR pro zjišťování a komunikaci s našimi kamerami.

Připravím další příspěvek, ve kterém ukážu, jak nakonfigurovat kamery a zapojit je do Shinobi. Nejdříve ale nechme Shinobi běžet, což je účelem tohoto artefaktu.

Vzdálený server jako hardware NVR : špatné řešení

Při svém experimentu jsem nejdříve zkusil nainstalovat Shinobi na vzdálený server s Atomem N2800 1,86GHz, 4GB RAM, který bych použil jako hardware NVR. Ale abych mohl připojit své kamery na tento vzdálený server, musel jsem nakonfigurovat svůj místní router tak, aby přenášel stream v reálném čase z kamery, ale také její port protokolu ONVIF. Také docházelo k obrovskému zpoždění při streamování z kamery na tento vzdálený server NVR (omezené šířkou pásma mého internetového uploadu).

Proto jsem se rozhodl nainstalovat hardware NVR, který by byl ve stejné místní síti jako kamery. Výhod je několik :

  • neotevírání streamu ven (což by mohlo být narušení bezpečnosti).
  • mít těsnou smyčku mezi kamerami a hardwarem NVR v místní síti

Místní server jako hardware NVR : lepší řešení

Vzdálený server NVR: velmi špatné řešení. Moje volba tedy padla na použití raspberryPI. Cena je pro náš případ použití opravdu přijatelná (zhruba 35 €) a hardwarové možnosti více než dostatečné. Nejdůležitější vlastností je jeho schopnost hardwarového kódování/dekódování H264.

Měl jsem doma jedno raspberryPI, což je model 1B+ z roku 2014. Svou práci zvládá, ale pokud nejste vybaveni, doporučuji zakoupit zatím nejnovější model (model 3 B+).

Instalace Shinobi na Raspberry

Před instalací jakéhokoli softwaru na naši malinu musíme nainstalovat operační systém. V našem případě použijeme velmi odlehčenou verzi Raspbianu bez grafického uživatelského rozhraní

Instalace Raspbianu na PI

  • Stažení Raspbian Stretch Lite (bez balíčků pro grafické uživatelské rozhraní) do počítače z https://www.raspberrypi.org/downloads/raspbian/
  • Zkontrolujte, zda není čerstvě stažený zip poškozen
$ shasum -a 256 2018–11–13-raspbian-stretch-lite.zip
  • Instalace obrazu Raspbianu na kartu SDCard. Pro větší pohodlí můžete použít přetahovací& grafický nástroj Etcher : https://www.raspberrypi.org/documentation/installation/installing-images/README.md
  • Vložte SD kartu do Raspberry PI, připojte klávesnici, HDMI &zapněte Raspberry.

Přihlaste se do PI

  • Přihlaste se do Raspberry. Výchozí přihlašovací jméno je pi, heslo je raspberry.
  • Nejprve změňte heslo uživatele ‚pi‘ z bezpečnostních důvodů. Chcete-li tak učinit :
$ passwd
  • aktualizujte balíčky na svém PI, pokud je to nutné, abyste měli nejnovější verze některého z nich
$ sudo apt-get update && sudo apt-get upgrade

Zapněte SSH na svém Raspberry

Nejprve zkontrolujte na svém Raspberry, zda je spuštěna služba SSH

$ sudo service ssh status

(tip : všechny služby na svém zařízení můžete zkontrolovat spuštěním následujícího příkazu :

$ sudo service --status-all

Jestliže je ssh aktivní, přeskočte tento krok; v opačném případě spusťte službu

$ sudo service ssh start

# Pro budoucí spuštění je třeba aktivovat ssh při startu počítače
* řešení 1

$ sudo update-rc.d ssh defaults
$ sudo update-rc.d ssh enable
  • řešení 2
    nebo, Malinu můžete také nakonfigurovat pomocí specializovaného nástroje :
$ sudo raspi-config
>> Interface Settings
>> SSH
>> ENABLE

Přístup k malině pomocí ssh

Pro přístup k zařízení z místní sítě musíte znát jeho místní IP adresu. Tato adresa je však přidělována vaším routerem a může se v průběhu času měnit.

  • Buďto tedy nastavte statickou IP vašemu raspberryPI konfigurací routeru (přiřazením statické místní IP k MAC adrese vašeho raspberryPI).
  • Nebo zde preferované řešení : zkontrolujte hostname vašeho raspberry provedením příkazu
$ hostname

V mém případě je hostname zařízení raspberrypi. Pak mohu snadno ssh pi bez znalosti jeho ip adresy, a to následujícím příkazem :

$ ssh [email protected]

Install Shinobi

Teď, když je náš operační systém správně nakonfigurován a když můžeme přistupovat k našemu zařízení přes ssh, nainstalujme Shinobi. Nejjednodušší způsob je spustit na vašem PI následující příkaz (podle definice v dokumentaci) :

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

Instalace bude interaktivní, jak následuje :

# install location
Install Location for Shinobi
*Note : Default install location is "/home"
Do you want to install a custom location for Shinobi?
(y)es or (N)o? Default : No# shinobi version
Install Shinobi CE or Shinobi Pro?
— — — — — — — — — — — — — — — — — — — — — — -
*Note : Shinobi Pro is free for personal use.
*Learn more at http://shinobi.video/pro
— — — — — — — — — — — — — — — — — — — — — — -
©E or (P)ro? Default : Pro# install branch (master in stable)
Install the Development branch?
(y)es or (N)o? Default : No
N# OS selection
The installer will say that the OS is not detected. Select ubuntu instead.
Shinobi Installer
========
Select your OS
If your OS is not on the list please refer to the docs.
========
1. Ubuntu
2. CentOS
3. MacOS
4. FreeBSD
5. OpenSUSE
========
1# DB : choose MariaDB as RDBMS and choose a root password
Shinobi — Do you want to Install MariaDB? Choose No if you already have it.
(y)es or (N)o
y# install shinobi database
Shinobi — Database Installation
(y)es or (N)o
y# configure Shinobi to start on boot
Shinobi — Start Shinobi and set to start on boot?
(y)es or (N)o
y

# velikost instalace
Celý raspbian + shinobi (včetně všech závislostí) zabral pouze necelé 2 GB místa.

$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.3G 1.8G 5.2G 26% /

Nyní je instalace dokončena !!!

Shinobi backoffice

Instalace vám řekne, abyste otevřeli prohlížeč s následujícím odkazem :

|| Open http://192.168.0.10:8080/super in your web browser.
||===================================
|| Default Superuser : [email protected]
|| Default Password : admin

Je však lepší použít název hostitele, abyste se zbavili nejistoty ohledně IP adresy vašeho zařízení (ta se může v průběhu restartu změnit)

http://raspberrypi.local:8080/super

# change super user login/pwd
Jakmile se přihlásíte do http://raspberrypi.local:8080/super, změňte si z bezpečnostních důvodů login/pwd na kartě „Preferences“.

# přidejte nového uživatele
Kromě superuživatele je třeba přidat uživatele do shinobi (tento uživatel může mít stejný e-mail).
Tento uživatel by se mohl přihlásit k dashboardu pomocí přímo tohoto odkazu v lokální síti
http://raspberrypi.local:8080/

Jste připraveni používat raspberryPi se Shinobi jako lokální řešení NVR.

Připravte se na to, abyste mohli používat svůj raspberryPi se Shinobi jako lokální NVR.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.