Met openSUSE is het mogelijk om een camera bewakingssysteem te installeren.
Je hebt daarvoor geen dure hardware en software nodig. Wie in het bezit is van een goedkope USB Camera en niet veel eisend is wat de grafische details betreft kan zo aan de slag.
Op mijn LowImpact openSUSE server heb ik zo ZoneMinder geïnstalleerd.
ZoneMinder is wat men noemt een "top Linux video camera security and surveillance solution".  ZoneMinder kan zowel overweg en IP camera's als met USB Camera's.
Als camera heb ik gebruik gemaakt van een Hercules Webcam Deluxe. Deze goedkope USB camera kan beelden genereren met een resolutie van 640x480.

ZoneMinder is een web based programma. Je hebt dus zeker Apache en MySQL nodig om met ZoneMinder te werken.
Dit artikel gaat ervan uit dat je weet hoe apache en MySQL moeten worden geïnstalleerd. Op de website van ZoneMinder kunt U daarover meer informatie over terug vinden.
Wat ik in dit artikel vooral wil doorgeven zijn de problemen die ik heb ondervonden met de USB camera.

Installatie van ZoneMinder

De installatie van ZoneMinder onder openSUSE is tamelijk eenvoudig.
De eenvoudigste oplossing is om vanuit YaST een software Repository toe te voegen. Daarna kunt U eenvoudig ZoneMinder vanuit YaST installeren.
Zie http://www.zoneminder.com/wiki/index.php/Installing_using_ZoneMinder_RPMs_for_SuSE voor meer informatie.

De USB Camera

Belangrijk is om eerst na te gaan of de USB camera goed wordt herkend door het operating systeem.
Met het command "usb-devices" kunt U nagaan of de USB camera aanwezig is.

uxserver1:~> usb-devices

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=480 MxCh= 6
D:  Ver= 2.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=1d6b ProdID=0002 Rev=02.06
S:  Manufacturer=Linux 2.6.37.6-0.5-default ehci_hcd
S:  Product=EHCI Host Controller
S:  SerialNumber=0000:00:1d.7
C:  #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
...
T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=05a9 ProdID=4519 Rev=01.00
S:  Manufacturer=OmniVision Technologies, Inc.
S:  Product=USB Camera
C:  #Ifs= 3 Cfg#= 1 Atr=80 MxPwr=500mA
I:  If#= 0 Alt= 3 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=ov519
I:  If#= 1 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:  If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio

Eventueel kunt U ook met een programma zoals bijvoorbeeld "wxcam" nagaan of de USB camera goed werkt.
Om wxcam te gebruiken moet je wel in grafische mode werken en bijvoorbeeld Gnome of KDE hebben opgestart.

Vervolgens moet je nagaan wat voor type camera het is. In Linux wordt voor USB camera's het formaat video4linux1 of video4linux2 gebruikt.
U kunt daarvoor eventueel de instellingen van wxcam nazien. Een andere oplossing is the ZoneMinder programma zmu te gebruiken.
Hier toon ik aan dat de USB Camera instellingen enkel correct worden weergegeven als argument "-V1" wordt meegegeven.

uxserver1:~ # zmu -m 0 -q -v
Error, failed to query crop capabilities /dev/video0: Invalid argument
uxserver1:~ # zmu -m 0 -q -v -V0
Error, failed to query crop capabilities /dev/video0: Invalid argument
uxserver1:~ # zmu -m 0 -q -v -V1
Video Device: /dev/video0
Video Capabilities
  Name: USB Camera
  Type: 1
    Can capture
  Video Channels: 1
  Audio Channels: 0
  Maximum Width: 640
  Maximum Height: 480
  Minimum Width: 48
  Minimum Height: 32
Window Attributes
  X Offset: 0
  Y Offset: 0
  Width: 640
  Height: 480
Picture Attributes
  Palette: 0 - Unknown
  Colour Depth: 8
  Brightness: 41634
  Hue: 0
  Colour :49087
  Contrast: 0
  Whiteness: 0
Channel 0 Attributes
  Name: ov519
  Channel: 0
  Flags: 0
  Type: 2 - Camera
  Format: 0 - PAL

Om een onbekende reden krijg ik de USB camera niet aan de praat in ZoneMinder. Blijkbaar heeft het video4linux2 formaat daar iets mee te maken.
Een workaround voor dit probleem is door gebruik te maken van mpjg-streamer.

Configuratie mpjg_streamer

Het programma mpjg-streamer maakt het mogelijk om streaming uit te voeren van de USB Webcam naar een webbrowser.

Voor meer informatie:

http://sourceforge.net/apps/mediawiki/mjpg-streamer/index.php?title=Main_Page

Het programma wordt bij mij als volg opgestart:

mjpg_streamer -i "input_uvc.so -r 640x480 -f 2 -d /dev/video0" -o "output_http.so -p 8080" -b

Er gebeurd video streaming aan 2 frames per seconde in 640x480 via poort 8080.
Ik heb bewust voor weinig frames per seconde gekozen omdat anders mijn server te zwaar zou belast worden.
Er kan een foto opgevraagd worden door de browsen naar http://localhost:8080/?action=snapshot
Er kan een continue streaming worden bekeken via http://localhost:8080/?action=stream

Configuratie ZoneMinder

Voeg nu een nieuwe monitor toe van het type remote

Gebruik volgende source instellingen:

Impact op mijn Low Impact Server.

Door ZoneMinder te gebruiken wordt mijn Low Impact server aanzienlijk zwaarder belast. De is duidelijk te zien aan het aantal wakeups in powertop:

Vooral als je de streaming beelden bekijkt is er een zeer sterke stijging te zien in het aantal wakeups.
Ook is duidelijk te zien dat de processor minder aan 600Mhz draait:

Daar tegenover staat de processor meer aan 1,6GHz draait: