IP-Camera's

Videobewaking is niet langer enkel voor grote bedrijven. Met betaalbare camera's en open-source software zoals ZoneMinder, frigate,... kan iedereen zijn huis of bedrijf monitoren en beveiligen.
IP-Camera's
Foscam FI9803EP
Snapshot van 1 foto via webbrowser (html - cgi)
>http://<YOUR-IP>/cgi-bin/CGIProxy.fcgi?usr=GEBRUIKER&pwd=WACHTWOORD&cmd=snapPicture2
Live Videostreaming via webbrowser.
Enkel in IE en firefox. Chome blijkt niet te werken? Ook zouden er problemen zijn 64b systemen, nog niet zelf gemerkt...
Eerst de MJ streaming starten op de camera met:
>http://<YOUR-IP>/cgi-bin/CGIProxy.fcgi?usr=GEBRUIKER&pwd=WACHTWOORD&cmd=setSubStreamFormat&format=1
Vervolgen te bekijken met:
>http://<YOUR-IP>/cgi-bin/CGIStream.cgi?cmd=GetMJStream&usr=GEBRUIKER&pwd=WACHTWOORD
**Zoneminder configuratie**
Foscam camera's
>ffmpeg - rtprtsp - ... - 80 - rtsp://USER:PWD@HOSTNAME:80/VideoMain - 1280 / 720
remote - http - HOSTNAME - 80 - /cgi-bing/CGIProxy.fcgi?cmd=snapPicture2&usr=USR&pwd=PWD
**IPCAM2**
>remote - http - simple - HOSTNAME- 80 - /videostream.cgi?user=USER&pwd=PWD&rate=0&resolution=32 - 640 / 480
**Micronet**
>... - http - ... - 80 - USER:PWD@HOSTNAME - /cgi-bin/jpg/image.cgi
**Streamingproblemen**
Met de nieuwe camera's Foscam FI9803EP, ondervond ik enkele problemen. Een ervan was dat hij geen streaming weergaf op live views. Dit is te omzeilen door in de opties van zoneminder volgende setting aan te passen:
>Zoneminder >>> Options >>> Images >>> STREAM_METHOUD = JPEG
**Smudging probleem**
Het kan voorvallen dat camerabeelden verticale lijnen weergeven, dit is gekend als 'smudging'. Dit komt doordat het netwerk/server niet de hoeveelheid data op tijd kan verwerken. Om dit op te lossen, moet je in de camera's zelf volgende 2 opties wijzigen in 'videocontrol':
1. Verlaag FPS naar 3
2. Verlaag Kye Frame Rate interval naar 10
IPCAM02
**Network disconnecties**
De camera's die verbonden zijn met een cisco switch in auto-mode, kan het gebeuren dat de connectie wegvalt. Als je de switch zo configureert dat hij in 10HD moet werken met de camera, dan blijkt de connectie stabiel te blijven.
**Upgrade firmware**
Deze procedure kan je gebruiken wanneer de webinterface niet meer werkt.
Download curl and put it in a folder (fe c:\cam\)
Put the firmware files (unzipped of course) in the same folder.
Be sure to know your IP of the camera (in this example 10.10.10.5), and go in a command prompt towards the folder
>Windows > start > run: command
cd c:\cam
curl.exe --user admin: --form file=@lr_cmos_11_14_1_46.bin "http:/10.10.10.5/upgrade_firmware.cgi"
curl.exe --user admin: "http:/10.10.10.5/reboot.cgi"
curl.exe --user admin: --form file=@2.4.8.12.bin "http:/10.10.10.5/upgrade_htmls.cgi"
curl.exe --user admin: "http:/10.10.10.5/reboot.cgi"
After the camera is rebooted, the firmware is upgraded...
**Reboot**
Van tijd tot tijd heb ik bepaalde modellen gehad die uit zichzelf herstarten. Niet erg, ware het niet dat de camera na de reboot naar zijn primaire preset draait. Om dat te vermijden, kan je volgend commando gebruiken:
>curl -u username:password http:/10.10.10.5/set_misc.cgi?ptz_disable_preset=1
**Zoneminder settings**
De settings onder zoneminder zijn als volgt:
>Source: Remote
Protocol: http:
Method: simple:
Remote Host IP: IP-adres
Remote Port: 80
Remote host path: /videostream.cgi?user=USER&pwd=PASSWORD&rate=0&resolution=32
Micronet SP5582K
Eerst en vooral is er een wijziging nodig op de camera zelf hiervoor! Om dit te laten werken, moet je de snapshot (video format) een video resulotie hebben met MJPEG.
Instellingen in zondeminder:
>Remote Protocol: http
Remote Method: RegExp
Remote Hostname: USER:PASS@IP-Address
Remote Host Port: 80
Remote Host Pad: /cgi-bin/jpg/image.cgi
Remote Kleuren: 24bit
Width: 720
Height: 576
Frigate
Zoneminder
ZoneMinder: Jouw Open-Source Bewakingscentrum
ZoneMinder is een krachtige tool die je volledige controle geeft over je videobewakingssysteem. Het ondersteunt een breed scala aan camera's, biedt bewegingsdetectie, opnamemogelijkheden en zelfs integratie met andere systemen via scripts.
Scripts: Automatisering en Maatwerk
Met scripts kun je ZoneMinder verder uitbreiden en aanpassen aan jouw specifieke behoeften. Denk aan:
Meldingen:Stuur een e-mail of sms wanneer er beweging wordt gedetecteerd.Opnamebeheer:Start opnames op basis van specifieke gebeurtenissen of tijdschema's.Integratie:Koppel ZoneMinder aan andere systemen zoals alarmsystemen of domotica.
Voordelen van Videobewaking:
Afschrikking:De aanwezigheid van camera's kan potentiële indringers afschrikken.Bewijsmateriaal:In geval van een incident heb je waardevol bewijsmateriaal.Monitoring op afstand:Houd je eigendommen in de gaten, waar je ook bent.Gevoel van veiligheid:Videobewaking kan je een gerust gevoel geven.
Beginnen met Videobewaking:
Kies de juiste camera's:Selecteer camera's die passen bij jouw behoeften en budget.Installeer ZoneMinder:Volg de installatie-instructies voor jouw Linux-systeem.Configureer je camera's:Voeg je camera's toe aan ZoneMinder en stel de instellingen naar wens in.Ontdek scripts:Leer hoe je scripts kunt gebruiken om ZoneMinder te automatiseren en aan te passen.
Let op: Videobewaking brengt ook privacy-overwegingen met zich mee. Zorg ervoor dat je de lokale wetgeving respecteert en de privacy van anderen beschermt.
Met ZoneMinder en een beetje scriptmagie kun je een videobewakingssysteem op maat creëren dat voldoet aan jouw specifieke eisen.
Enkele ervaringstopics
De software zoneminder wordt gebruikt voor videbewaking. Zo is de software in staat om vele verschillende camera's te benaderen, beelden te analyseren, op te nemen.... Ook kan je zones instellen waar je geen beweging wil zien, of zaken wil maskeren (privacy). Kortom, een handig tooltje als je met videobewaking wil starten.
Om de server te benaderen, heb je geen speciale software nodig. Gewoon een webbrowser is voldoende. Open de server zijn naam/IP/... met je webbrowser (http://192.168.0.16), en geef eventueel je gebruikersnaam en wachtwoord in. Vervolgens word je doorgestuurd naar het dashboard.
Je kan ten alle tijde terug naar het dashbord dmv op de servernaam te klikken (links bovenaan).
Op het dasboard zie je vervolgens enkele kolommen:* **Naam**: De naam van de camera'sWil je nu de live beelden bekijken? Dan klik je gewoon op de naam van de camera.
* **Functie**: Wat zoneminder met de camera doet.Je kan deze opties wijzigen tussen bv kijken, analyseren, opnemen, opnemen en analyseren...
* **Bron**: Het adres van de cameraDit zijn de technische instellingen per camera (met bv de gebruikersnamen, wachtwoorden, type camera...)
* **Total-Hour-Day-Week-Month**: Hoeveel beelden er hier opgeslagen werdenIndien je op deze cijfers klikt, dan krijg je het overzicht te zien van alle beschikbare beelden. Deze beelden kan je vervolgens bekijken, downloaden, archiveren (zie hieronder).
* **Archive**: Beelden die opzij gezet werdenReden om beelden te archiveren kan zijn dat je deze veilig wil stellen. Want zoneminder zal automatisch oude beelden wissen om zo te vermijden dat de harde schijf vol komt te zitten. Beelden die getagd zijn als 'archief' zullen niet gewist geworden.
* **Zones**: Hoeveel zones zijn er gedefineerd.Als je dit opent, krijg je het camera beeld te zien, en kan je zones gaan defineren (ahv het tekenen van vierkantje, achthoeken....). Elke van deze zones kan je vervolgens instellen. Zo kan je zones zwart maken voor privacy redenen. Beelden niet analyseren (bv lucht) om het systeem minder te belasten, of zones juist meer analyseren voor de gevoeligheid te verscherpen (bv oprit).<br><br>
<br><br>Misschien nog enkele extra's via het menu? * Opties: alle globale opties, gebruikers...* Groepen: Je kan camera's indelen in groepen (bv binnen, buiten, varia...). Deze kan je dan later in groep bekijken in een montage scherm.* Cyclus, montage: Hier kan je alle camera's laten voorbij lopen, bekijken... Het soort schermpjes die je ziet bij de beveiligingteams....* Knop 'werkend'/'gestopt'/'...' is de status van de server. Deze moet altijd op 'werkend' staan, want anders analyseert de server de beelden niet. Ahv deze knop kan je ook de applicatie herstarten.
Serversoftware
Zoneminder is een tooltje om alle IP-camera’s te verzamelen, en events bij te houden. Handig aan dit tooltje is dat je bv verschillende zone’s kan uitsluiten voor de alerts. Voor meer info: www.zoneminder.com Qua diskruimte mag je voor MoRecord (constante opnamen) rekenen voor 1gig / 1 mega camera / 1 dag.
**Direct toegang**Eerst maak je een gebruiker aan (demo/demo) en geeft deze gebruiker slecht toegang tot bv 1 camera). Vervolgens gebruik je volgende snelkoppelingen>Live video: lan.oniria.be:10033/cgi-bin/nph-zms?mode...&user=demo&pass=demo Snapshot: lan.oniria.be:10033/cgi-bin/nph-zms?mode...&user=demo&pass=demo
**Werkgeheugen**Het eerste dat je zal/kan/moet aanpassen is het geheugen in zoneminder om dit optimaal te laten werken met jouw servergeheugen.Voeg daarvoor 2 lijnen toe aan /etc/sysctl.conf. Pas het mall en max aan naar gelang jouw geheugen.>vi /etc/sysctl.confkernel.shmall = 167772160kernel.shmmax = 222222222
**Datafolders**Volgende folders zijn interessant om eventueel te verhuizen naar een andere schijf, om zo de besturingssschijf te beschermen tegen vollopen.Ik verplaats deze mappen meesten, en maak nadien een symbolic link aan van de huidige plaats naar de nieuwe.>/var/cache/zoneminder
Geen beelden in zoneminder?
Indien je geen beelden (live video) ziet in bv google chrome, dan is er waarschijnlijk een probleempje met de videocodec.Om dit te omzeilen, kan je even volgende proberen:
> apt -y install libavcodec-extra
En vervolgens in de instellingen van zoneminder ga je naar opties > Beelden:>Vink je aan: **OPT_FFMPEG**> Vul je in bij **PATH_FFMPEG: /usr/bin/avconv**
**Let op**: iets meer belastend voor je server
Script: herstart automatisch service
Aan de hand van volgend scriptje kan je controleren of een welbepaade service draait, en zonodig herstarten. Dit voorbeeld is specifiek voor zoneminder, welke 2 services nodig heeft om correct te draaien...
>#!/bin/sh>>#Put this script in your crontab, and it will simply check if zoneminder is running, and if not, it'll try to restart it.>#Cron with fe 20 minutes should be enough>>SERVICE=zma;>SERVICEB=zmc;>CURRENT_DATE=$(date '+%d/%m/%Y-%H:%M:%S')>>if> ps ax | grep -v grep | grep $SERVICE > /dev/null>then> echo "$CURRENT_DATE : $SERVICE service running, everything is fine" >> /var/log/zoneminderRun.log>else> echo "$CURRENT_DATE : $SERVICE is not running!" >> /var/log/zoneminderRun.log> echo "$CURRENT_DATE : I am going to restart $SERIVCE" >> /var/log/zoneminderRun.log> service zoneminder restart>fi>sleep 5>if<> ps ax | grep -v grep | grep $SERVICEB > /dev/null>then> echo "$CURRENT_DATE : $SERVICEB service running, everything is fine" >> /var/log/zoneminderRun.log>else> echo "$CURRENT_DATE : $SERVICEB is not running!" >> /var/log/zoneminderRun.log> echo "$CURRENT_DATE : I am going to restart $SERIVCEB" >> /var/log/zoneminderRun.log> service zoneminder restart>fi
openHAB
Voor de videobewaking gebruik ik voornamelijk IP-camera's, dit in combinatie met een centrale videosysteem.
Doch de vele tools links en rechts maken het er voor mij en mijn gezinsleden niet makkelijker op om alles te gebruiken. Daarom zou het heel handig zijn mochten de camera beelden ook direct te bekijken zijn via openhab.
Een van de grootste problemen was dat openhab werkt op java basis, en dat dit in samenwerking met videoformaten niet altijd een geslaagd huwelijk is. Daarom koos ik voor de vlugste oplossing, namelijk een snapshot van de camerabeelden, die dan elke second gerefreshed worden. Zo heb je toch een mooi, duidelijk, en up-to-date beeld van wat er gebeurd voor je cameralens.
Ikzelf maak gebruik van zoneminder. Dit laat me toe om alles centraal te beheren, en daardoor moet ik ook niet elke camera afzonderlijk toegankelijk maken vanop internet (en ook binnenhuis).
Sitemap
Group item=IPcam3 icon="video" { Image url="http://ZONEMINDERIP':PORT'/zm/cgi-bin/zms?mode=single&monitor=3&scale=100&user=USERNAME&pass=PASSWORD" refresh=1000 Switch item=zmMonitor3_Enabled Switch item=zmMonitor3_ForceAlarm Text item=zmMonitor3_Alarm Switch item=zmMonitor3_Recording Switch item=zmServer_Online Text item=zmServer_CpuLoad Text item=zmServer_DiskUsage }
Enkel oude settings:
utope.oniria.be 80 /videostream.cgi?user=USER&pwd=PWD&rate=0&resolution=32 24bitskleuren 640 480dirus.oniria.be 80 /videostream.cgi?user=USER&pwd=PWD&rate=0&resolution=32 24bitskleuren 640 480spicio.oniria.be 80 /videostream.cgi?user=USER&pwd=PWD&rate=0&resolution=32 24bitskleuren 640 480sentio.oniria.be 80 /videostream.cgi?user=USER&pwd=PWD&rate=0&resolution=32 24bitskleuren 640 480
IP-camera snapshots
Personally i like it when my website is a bit up to date. So would it be nice that pictures are on your site, that live a bit? That are up to date? So for me, i'm taking snapshots each x-minutes from the camera's that i use later on in my website.This is an example for this, if all goes well, it should be changed each 12 minutes...
The script for this calls /scripts/get_cam_snapshot.sh>wget http://192.168.0.10/snapshot.cgi --user=admin --password=AreYouKidding --output-document=/var/www/weblinkg/images/example1.pngwget http://192.168.0.11/snapshot.cgi --user=admin --password=AreYouKidding --output-document=/var/www/weblinkg/images/example2.pngwget http://192.168.0.12/snapshot.cgi --user=admin --password=AreYouKidding --output-document=/var/www/weblinkg/images/example3.pngwget http://192.168.0.13/snapshot.cgi --user=admin --password=AreYouKidding --output-document=/var/www/weblinkg/images/example4.png
And in my crontab>*/12 * * * * root /scripts/get_cam_snapshot.sh &> /dev/null
**Evolution**And once you take snapshots each x-minutes (see above), why shouldn't you archive this? And with this archive, why not making a movie? A movie about how things are evolving?This is done with a very simple script: copy the image towards another location with a different hostname...You can see it here in action.
The script calls get_cam_evolutie.sh>#!/bin/bash_now=$(date +"%Y_%m_%d")cp /var/www/weblink/images/example1.png /var/www/weblink/images/evolutie1/$_now.pngcp /var/www/weblink/images/example2.png /var/www/weblink/images/evolutie2/$_now.pngcp /var/www/weblink/images/example3.png /var/www/weblink/images/evolutie3/$_now.png
And my crontab:>11 15 * * * root /scripts/get_cam_evolutie.sh &> /dev/null