Viele IP-Kameras lassen sich heute über intelligente Interfaces verwalten. Wenn diese fehlen oder im Gebäude mehrere Kameras filmen, kommen unter Linux kommerzielle und freie Anwendungen zum Zuge.
Systeme zur Kameraüberwachung über das Netzwerk existieren seit Mitte der 90er Jahre. Aktuelle Modelle, die auch im Privatbereich erschwinglich sind, vereinen dabei immer mehr Features aus dem Profibereich in sich, wozu etwa Nachtsicht per Infrarot oder Schwenk-, Neige- und Zoomfähigkeiten gehören. Eigentümer überwachen mit ihnen die Urlaubshäuser, Firmeninhaber behalten die Geschäftsräume und Katzenbesitzer ihre im Urlaub zurückgelassenen Lieblinge im Blick.
Meist richtet sich das Objektiv einer oder mehrerer Kameras tagein, tagaus auf einen leeren Gang, eine Bürotür oder einen Parkplatz. Der Artikel beleuchtet, wie Linux und freie Software den Umgang mit dem Kamerapark erleichtern.
Technik, die begeistert
Doch zunächst zur Technik. Neben den meist sehr schlichten Webcams und den winzigen Spionagekameras stehen dem Käufer meist Indoor- und Outdoor-Überwachungskameras zur Auswahl. Letztere müssen wesentlich robuster gegen schlechte Witterung geschützt sein und kosten im Highend-Bereich schon mal ein paar Tausend Euro pro Stück.
Doch auch an den preiswerteren Indoor-Kameras ist der technische Fortschritt nicht spurlos vorübergegangen. Sie kosten eine zwei- oder dreistellige Summe, integrieren sich meist drahtlos oder per Ethernet ins lokale Netzwerk und bringen zum Verwalten und Bedienen eine eigene Weboberfläche mit (Abbildung 1), die allerhand Nützliches kann. Die mitgelieferten Installations-CDs dürfen Linux-Anwender getrost in der Box lassen, denn offizieller Linux-Support ist selten. Tools wie »fping« verraten dennoch, welche IP-Adresse der Router einer Webcam zuweist.

Abbildung 1: IP-Kameras wie die von D-Link bringen häufig eigene Weboberflächen mit und können bei Bewegungen oder Geräuschen Aktionen starten.
Dank Infrarot erkennen viele aktuelle Kameras Objekte auch im Dunklen und leuchten den Raum teilweise bis zu 15 Meter weit aus. Alarm schlagen sie bei Bewegungen (Motion Detection) oder Geräuschen (Sound Detection). In diesem Fall schicken sie Bilder und Videos in wählbarer Auflösung an einen FTP-, SSH- oder Samba-Server, mitunter auch direkt in die Cloud. Einige IP-Kameras lassen sich zudem per Dyn-DNS ins Internet stellen – was nicht immer eine gute Idee ist (siehe Kasten “Security-Probleme”).
Security-Probleme
Zwar lassen sich die meisten Webinterfaces durch Passwörter schützen, viele Benutzer machen sich aber nicht die Mühe, das Standardpasswort zu ändern. Ist die Oberfläche übers Internet erreichbar, stehen die Aufnahmen ungeschützt im Netz. Hinzu kommen Sicherheitslücken: Trendnet-Kameras erregten 2012 Aufsehen, weil Interessierte die Streams unter Umgehung des Passwortschutzes über eine spezielle URL erreichen konnten [1].
Empfohlen wird also, die Kameras nur im lokalen Netzwerk zu betreiben und die Daten am besten SSL-verschlüsselt zu verschicken.
Da die Konkurrenz nicht schläft, heben sich IP-Kameras zudem häufig durch ein bis zwei Alleinstellungsmerkmale ab: Sie lassen sich fernsteuern (auch als PTZ bezeichnet, was für “Pan, Tilt, Zoom” steht), erfüllen den internationalen Onvif-Standard des Open Network Video Interface Forum [2], legen Daten auf Micro-SD-Karten ab oder schicken Bilder mit Hilfe von Apps direkt auf Smartphones oder Tablets. Einige Kameras tanken Energie über das Netzwerkkabel (Power over Ethernet, PoE) und brauchen keine Steckdose.
Egal welche Art Kamera der Anwender einsetzt, er sollte auch die gesetzlichen Regelungen kennen. Eine umfangreiche Liste mit Links und Texten zur Videoüberwachung bietet das Unabhängige Landeszentrum für Datenschutz Schleswig-Holstein [3].
Powered by Motion
Wer nur sein Büro oder ein einziges Objekt überwachen möchte, dem genügt meist eine günstige Webcam ohne Webinterface: Linux kann sie mit Hilfe von Motion in eine Überwachungskamera verwandeln. Das Kommandozeilentool gehört zu den Veteranen im Motion-Detection-Bereich und erkennt Bewegungen im Sichtfeld (Abbildung 2) oder in dessen Bereichen.

Abbildung 2: Bewegung (hier mit einem Filter hervorgehoben) lässt sich unter Linux mit Motion erkennen, dafür ist keine spezielle Kamera nötig.
Eine Einschränkung der Software besteht darin, dass die Bildquelle im Jpeg- oder Motion-Jpeg-Format (Mjpeg) vorliegen muss – neumodischen Kram wie Mpeg 4 oder Divx mag Motion nicht. Zum Glück bringen viele aktuelle IP-Kameras Mjpeg-Support mit. Schön an Motion ist die ausführliche Dokumentation, die es recht schnell erlaubt, die Funktion der verschiedenen auskommentierten Optionen in »/etc/motion/motion.conf« zu verstehen, um die Software über die zentrale Konfigurationsdatei an die eigenen Bedürfnisse anzupassen.
Der Parameter »target_dir« legt ein lokales Zielverzeichnis für die entstandenen Bilder und Filme fest. Für die erste IP-Kamera muss in der Datei »motion.conf« eine Adresse neben »netcam_url« eingetragen sein, andernfalls will Motion standardmäßig auf »/dev/video0« zugreifen. Die Software kommt allerdings auch mit mehreren Kameras zurecht: In den »thread.conf« -Dateien im Verzeichnis »/etc/motion/« lassen sich jeweils Pfade zu weiteren Kamerastreams definieren und Orte für Aufnahmen festlegen.
Da sich Motion selbst nicht um den weiteren Verbleib des Materials kümmert, muss der Nutzer tätig werden und die Ergebnisdateien per Cronjob und über Bash- oder Perl-Skripte abgreifen und zum Beispiel auf einen entfernten Server verschieben. Oder Motion packt sie in ein Dropbox- oder Ubuntu-One-Verzeichnis, um sie so auf andere Geräte zu übertragen, etwa auf Smartphones.
Auch in Sachen Home-Automation sind mit Motion interessante Einsätze vorstellbar: So kann ein Skript die Textausgaben von Motion auswerten oder die Speicherorte überwachen und Ereignisse starten, sobald Motion Bewegung entdeckt. In Verbindung mit Fhem [4], einem Server für die Home-Automation, der eine ganze Reihe von Heim-Automatisierungsprotokollen kennt (etwa KNX, Home Easy, X 10), lassen sich Motion-Events an Haushaltsgeräte koppeln: Betritt der Bewohner ein Zimmer, geht das Licht an oder Ähnliches. Ein Bastelfreund [5] lässt sich zum Beispiel Menschen, die an seiner Haustür klingeln, zehn Sekunden lang in einem Fenster seiner XBMC-Installation auf seinem Flatscreen anzeigen.
All my Circuits
Komplexer wird es, wenn die Zahl der Kameras steigt und zugleich dauerhaft gefilmt wird, was auch als CCTV (Closed Circuit Television) firmiert. Der Admin muss abschätzen, welche Menge an Daten pro Tag anfällt und wie viele Tage das Archiv vorhalten soll, um den Bedarf an Festplattenkapazität richtig einzuschätzen. Zudem muss das Netzwerk den permanenten Datenstrom verkraften.
Ein Cron-getriebenes Skript in Kombination mit Tools wie Duplicity oder Rsync könnte auf dem NAS automatisch ältere Aufnahmen aus dem Datenwust filtern und löschen. Beim permanenten Aufzeichnen ist zudem ein intelligentes Einordnen der Videos auf Datums- und Uhrzeitbasis unverzichtbar, um unter Tausenden Aufnahmen schnell die wichtigen Sekunden ausfindig zu machen. Wer die Aufnahmen nicht vor Ort speichern möchte, kann einen gut angebundenen Rootserver mieten und das Material per SFTP dorthin hochladen.
Manche Unternehmen müssen die erstellten Videodateien mitunter lange aufbewahren und dürfen sie nicht verlieren. Sie können die Aufnahmen gut auf eigenen Servern mit Raid 10 lagern. Nutzen die Firmen fremde Rechenzentren, sollten sie eine Verschlüsselung in Betracht ziehen. Einige Profisysteme entschlüsseln Daten nur, wenn zwei Personen zugleich ihre Passwörter angeben, um den Missbrauch zu erschweren.
Wer für die Langzeitlagerung von Videomaterial eine freie Archivierungslösung sucht, kann zudem einen Blick auf Open Archive [6] oder das Avalon Media System [7] werfen, die unter der AGPLv3 respektive Apache-Lizenz stehen.
Additionsspiele
Wie erwähnt addieren sich beim Einsatz mehrerer Kameras die Bandbreiten ebenso wie der nötige Speicherplatz. NAS-Anbieter wie Qnap und Synology bieten hierfür Network Video Recorder (NVR, [8]) oder Surveillance Stations [9] an. Synology stellt zudem einen Ressourcenrechner [10] bereit, um den Bandbreiten- und Speicherbedarf zu berechnen: Demnach brauchen fünf Kameras, die 14 Tage lang mit 30 FPS (Bilder pro Sekunde) und einer 720-p-Auflösung Videos im alten Mjpeg-Format aufnehmen, 157,5 MBit/s Bandbreite und rund 23,8 TByte Speicherplatz.
Zum Glück gibt es zahlreiche Tuning-Optionen: Menschen bewegen sich vergleichsweise langsam, mehr als 10 FPS müssen nicht sein. Die Auflösungen der Kameras lassen sich verkleinern, die Bildqualität reduzieren – doch widerspricht das unter Umständen dem Beweggrund, überhaupt eine Kamera aufzustellen. Fährt der Admin das obige Beispiel auf Sparflamme (im H.264-Format mit 640 mal 480 Auflösung und 10 FPS), landet er bei erträglichen 5,15 MBit/s und einem Speicherbedarf von 780 GByte. Beim Einsatz reiner Bewegungserkennung lassen sich diese Werte natürlich enorm reduzieren, zudem wird häufig nicht rund um die Uhr aufgezeichnet.
Zoneminder
Motion zeichnet zwar Jpeg-Streams von mehreren Kameras auf, hat aber kein vernünftiges GUI (Abbildung 3). Fürs Monitoring mehrerer Kameras eignet es sich daher nur bedingt. Hier springt Zoneminder in die Bresche, ein Open-Source-Programm unter der GPL. Es verwaltet mehrere Kameras, darunter jene, die Video-4-Linux unterstützt, lässt sich über eine Weboberfläche bedienen und bindet Web- und IP-Kameras über HTTP- sowie RTSP-Streams ein.
Es bringt für das Live-Monitoring eine Montage-Ansicht mit, die einen Blick auf alle Kamerabilder erlaubt, und lässt den Admin für jede Kamera separate Überwachungsmodi definieren. Einige Kameras beobachten nur, andere überwachen per Motion Detection kritische Zonen. Im letzten Fall kann Zoneminder Bewegungen auch optisch hervorheben (Abbildung 4).

Abbildung 4: Im Eventlog hebt Zoneminder die vom Bewegungsmelder aufgezeichneten Bewegungen farbig hervor.
Über Filter lassen sich Events definieren, bei deren Eintreffen die Software Fotos und Videos per E-Mail oder – über ein E-Mail-Gateway – per SMS verschickt. Der Filter »PureWhenFull« löscht alte Aufnahmen, damit die Festplatte nicht vollläuft, ist jedoch standardmäßig deaktiviert. Für den Umgang mit Zoneminder lassen sich mehrere Benutzer anlegen, die Kameras auch über PTZ fernsteuern.
Die Home-Automatisierung unterstützt Zoneminder mit dem X-10-Protokoll. Das Tool Zmxap [11] verbindet Zoneminder außerdem über das Home-Automation-Protokoll Xap mit anderen Programmen zur Heim-Automatisierung. Daneben gibt es mit Mythzoneminder [12] ein Plugin für Mythtv, das die Zoneminder-Events auf den Fernsehschirm bringt.
Zurzeit ignoriert Zoneminder den Ton – Audio Detection fällt damit flach. Aufnahmen lassen sich nicht an mehreren Speicherorten ablegen, zudem fehlen gebündelte Informationen zur Software: Die in Foren und Wikis verstreuten Infohappen machen es den Anwendern auch nicht gerade leicht, Zoneminders Fähigkeiten zu überblicken.
Die Software steht zudem in dem Ruf, etwas kompliziert bei der Einrichtung zu sein, was sich im Test bestätigte (siehe Kasten “Zoneminder in Ubuntu”). Auch einige Kameras spielen nicht mit Zoneminder – hier hilft ein vorheriger Blick in die Hardware Compatibility List [13]. Hat der Anwender aber die Installationshürden übersprungen, kann er die Weboberfläche über »http://localhost/zm« aufrufen (Abbildung 5).
Zoneminder in Ubuntu
Die etwas ältere Version 1.25.0, die Ubuntu 12.10 mitbringt, war nicht ohne Weiteres zur Zusammenarbeit mit den zwei Testkameras, einer DCS 933L von D-Link sowie einer IPC-770HD von 7-Links, zu bewegen. Nach der Installation des »zoneminder« -Pakets und vor dem Start musste in der Datei »/etc/zm/apache.conf« der Eintrag
ScriptAlias /cgi-bin /usr/share/zoneminder/cgi-bin
ergänzt werden, um die Datei anschließend neu zu verlinken und Apache neu zu starten:
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf sudo /etc/init.d/apache2 force-reload
Dann soll der Apache-User noch Teil der Videogruppe werden:
sudo adduser www-data video
Abschließend mussten die Tester in der Datei »/usr/share/zoneminder/skins/classic/views/monitorprobe.php« aus »$command = “arp -a”;« ein »$command = “/usr/sbin/arp -a”;« machen. Nach diesen Bauarbeiten ließ sich Zoneminder mit den Testkameras benutzen.

Abbildung 5: Die Weboberfläche von Zoneminder kann verschiedene Kameras verwalten und deren Bilder anzeigen. Eine Montage-Option reiht die Bilder der Kameras auf.
Doch auch das Einrichten der Kameras verlief nicht ohne Komplikationen. Es half die Fehlermeldungen der Software über »tail -f /var/log/syslog« im Auge zu behalten. Als Herausforderung erwiesen sich die Pfadangaben zum Einbinden der Kameras: Da Zoneminder offenbar Pfade zu CGI-Dateien erwartet, besteht die Kunst darin, über die passwortgeschützten Weboberflächen der Kameras an die URIs zu den gezeigten Bildern zu gelangen (Abbildung 6). Als Faustregel gilt: Erscheint das Bild einer Kamera ohne die Elemente des Web-GUI im Browser, passt der Link auch für Zoneminder.
Xeoma
Wem Zoneminder zu fummelig ist, der findet womöglich im kommerziellen Xeoma [14], von dem es Pakete für Linux gibt, eine Alternative. Die Software besteht aus Modulen, die funktionale Blöcke bilden und die der Admin wie in einem Baukasten zu einem Workflow gruppiert. Als Quelle kann er ein Kameramodul definieren und dieses mit einem Ereignismodul verknüpfen, etwa einer Bewegungs- oder Soundmeldung. Tritt das Ereignis ein, aktiviert Xeoma drei weitere Module in der Kette, die einen Alarm auslösen, eine E-Mail verschicken und die Aufnahme speichern.
Xeoma unterstützt nach eigener Aussage alle Webcams und CCTV-Kameras und kommt mit Onvif, PTZ sowie den Formaten H.264, Jpeg, Mjpeg sowie Mpeg 4 zurecht. Die Anwendung kennt User Permissions, erlaubt das Einrichten von Multi-Server-/Multi-Client-Umgebungen, passwortgeschützten Konfigurationen und einer Ansicht aller Kameras (Abbildung 7). Die Maximalgröße von Archiven lässt sich ebenso wie die Kompressionsrate der Videodaten einstellen.

Abbildung 7: Die kommerzielle Surveillance-Software Xeoma lässt den User mehrere Kameras im Blick behalten, auf Wunsch auch Webcams aus dem Internet.
Der Admin kann die Bewegungserkennung aktivieren, Schwellenwerte dafür setzen und Pre- sowie Post-Record-Zeiträume definieren. Die Hauptvorteile von Xeoma bestehen aber im Support vieler Kameras, der komfortablen Einrichtung und der simplen Handhabung.
Von der Software gibt es 32- und 64-Bit-Binärpakete für Ubuntu 9.x bis 13.x, Debian 6 Server, Debian 7, Open Suse 12.1 und Mint 12, die auf der Webseite zum Download bereitstehen. Es gibt einen Free-Modus, der bis zu drei Module, aber nur eine Kamera freischaltet. Der Trial-Modus erlaubt den Einsatz zahlloser Kameras, dafür lassen sich die Settings nicht speichern und es gilt eine zeitliche Nutzungsbegrenzung.
Wer die Software erwerben möchte, zahlt für vier Kameras einmalig 60 US-Dollar, für acht Geräte 120 US-Dollar und für 1024 Kameras 2400 US-Dollar. Zusätzlich lässt sich über eine Pro-Version Cloud-Unterstützung erwerben.
Bluecherry
Bluecherry [15] bietet neben einer Software zur Kameraverwaltung auch Hardware rund um CCTV an: Eigene Kameras, Video-Capture-Karten, Network Video Recorder und einiges mehr. Wer die Software mit Video-Capture-Karten verwenden möchte, muss zu den hauseigenen Modellen greifen, weil die Firma nur diese unterstützt. Das kann wichtig sein, wenn der Anwender die Software für Live-Streaming einsetzen möchte.
Beim Funktionsumfang dürfte sich Bluecherry zwischen Zoneminder (mit dem es sich auf der Webseite vergleicht) und Xeoma bewegen. Das GUI ist übersichtlich gestaltet und einfacher gestrickt als das von Xeoma, ein Webinterface erlaubt den Zugriff über Mobilgeräte.
Audio und Video verstaut Bluecherry in Matroska-Containern, wobei der Ablagepfad veränderbar ist und die Software multiple Speicherorte unterstützt. Alarmmeldungen verschickt Bluecherry per E-Mail, ihre Daten überträgt die Software sicher per SSL, und seit Version 2 unterstützt sie mehr als 400 IP-Kameras.
Es gibt 32- und 64-Bit-Pakete für Ubuntu und Fedora 17 bis 19, die Software läuft 30 Tage lang als Demo und zusätzlich auf einem Demoserver. Wer Bluecherry kaufen möchte, legt für vier Geräte 100, für acht 150 und für eine Version mit 32 Kameras 650 US-Dollar auf den Tisch – Unterstützung für weitere Kameras gibt es auf Anfrage.
Fazit
Dank integrierter Webserver sind für den Betrieb einzelner IP-Kameras meist keine Open-Source-Tools nötig. Die sind mit Motion und Zoneminder aber vorhanden und skalieren von einer einzelnen Kamera bis hin zu einem Kamerawald. Sie reagieren auf Bewegungsmeldungen und alarmieren die Anwender per E-Mail oder SMS. Wahlweise schicken sie auch Bilder und Videos in die Cloud.
Etwas mehr Komfort bieten kommerzielle Tools wie Bluecherry und Xeoma, die unter Linux laufen. Daneben gibt es noch einige Surveillance-Apps auf den Geräten von NAS-Anbietern. Den Link zur Haustechnik beherrscht indes Zoneminder am besten: Die Software unterstützt X 10, bringt ein Plugin für Mythtv mit und kommuniziert dank Zmxap über das Xap-Protokoll.
Wer Motion, Bluecherry und Xeoma für Home-Automation einsetzen will, muss Skripte und Tools wie den Fhem-Server nutzen. Für Xeoma, Zoneminder und Bluecherry lassen sich nicht zuletzt Obergrenzen für die Archivgrößen festlegen: Sie löschen alte Aufnahmen, wenn die Limits erreicht sind.
Infos
- Securityprobleme bei Trendnet-Kameras: http://console-cowboys.blogspot.de/2012/01/trendnet-cameras-i-always-feel-like.html
- Onvif-Standard: https://en.wikipedia.org/wiki/Open_Network_Video_Interface_Forum
- Virtuelles Datenschutzbüro: https://www.datenschutzzentrum.de/video/index.htm
- Home-Automation-Server Fhem: http://fhem.de/fhem.html
- XBMC-Integration des Türbildes: http://homeawesomation.wordpress.com/tag/ip-camera/
- Open Archive: http://openarchive.net
- Avalon Media System: http://www.avalonmediasystem.org
- NVR von Synology: http://www.synology.com/us/solutions/surveillance/
- Surveillance Station von Qnap: http://www.qnap.com/en/index.php?sn=2728#3
- Ressourcen-Rechner: http://www.synology.com/support/nvr.php?lang=us
- Zmxap: http://misterhouse.wikispaces.com/xAP+-+ZoneMinder+Integration
- Mythzoneminder: http://www.mythtv.org/wiki/MythZoneMinder
- Zoneminder-kompatible Hardware: http://www.zoneminder.com/wiki/index.php/Hardware_Compatibility_List
- Xeoma: http://felenasoft.com/xeoma/
- Bluecherry: http://www.bluecherrydvr.com








