Raspberry Pi – Kameramodul als Überwachungskamera (Livestream)
Mit dem offiziellen Kamera-Modul für den Raspberry Pi kann mit wenig Aufwand eine Überwachungskamera mit Live-Webstream konfiguriert werden. In der folgenden Schritt-für-Schritt Anleitung beschreibe ich die Konfiguration detailliert. Die Anleitung wirkt zwar etwas länger, ist jedoch für Jedermann recht einfach umzusetzen.
Schwierigkeitsgrad:
Benötigte Komponenten
Neben einem grundkonfigurierten Raspberry Pi mit Raspbian OS, wird ein stabiles und ausreichend dimensioniertes Netzteil (!) und natürlich ein Kamera-Module benötigt.
Kamera-Modul
Das offizielle Raspberry Pi Kamera Modul misst gerade einmal 25×20×9mm und ist mit einem 8 MP-Sensor (3280 x 2464 Pixel) mit Fixfokus-Objektiv ausgestattet, der hochauflösende Fotos und Videos ermöglicht. Das Kamera Modul gibt es in zwei Ausführungen:
StandardvarianteDie Standardausführung des offiziellen Raspberry Pi Kamera Moduls ist mit einem IR Filter ausgestattet und daher ideal für normale Aufnahmen bei ausreichender Beleuchtung / bzw. Tageslicht. | NoIR VarianteIm Unterschied zur Standardausführung besitzt die NoIR-Variante keinen IR Filter. Mit dem NoIR-Modul und einer Infrarotbeleuchtung kann man daher Nachtaufnahmen anfertigen. |
Leistungsfähiges Netzteil
Die wohl wichtigste Komponente für den stabilen Betrieb des Raspberry Pi ist das Netzteil. Viele Probleme, wie z.B. Instabilität, sind auf ein unzuverlässiges Netzteil zurückzuführen. Deshalb sollte man lieber den ein oder anderen Euro mehr in ein hochwertiges Netzteil investieren.
Weiterführende Infos
Im separaten Artikel Raspberry Pi – Empfehlung: Das richtige Netzteil habe ich die Thematik nochmals im Detail behandelt.
Inbetriebnahme Kamera-Modul
Kamera anschließen
Das kleine Kamera-Modul wird direkt an die CSI-Schnittstelle (Camera Serial Interface) des Raspberry Pi angeschlossen. Die CSI-Schnittstelle des Raspberry Pi befindet sich zwischen dem HDMI-Anschluss und Audioausgang. Diese wird über das 15-polige Flachbandkabel mit dem Kamera-Modul verbunden. Dazu zieht man den Steckverbinder der CSI-Schnittstelle nach oben, setzt das Flachbandkabel mit blauer Markierung Richtung Ethernet-Anschluss ein und drückt den Verschluss wieder nach unten. Fertig!
Kamera aktivieren
Bevor wir die Kamera per Befehl ansprechen können, muss zuerst der Kamera-Support in Raspbian aktiviert werden. Die Aktivierung erfolgt über das Konfigurationstools raspi-config. Dort einfach Punkt 5 anwählen und die Kamera auf Enable setzen. Zum Abschluss muss der Raspberry Pi dann noch rebootet werden, bevor die Kamera genutzt werden kann.
$ sudo raspi-config
Nach dem Neustart testen wir die Kamera, indem wir kurz ein erstes Testbild knipsen. Um ein einzelnes Bild mit der Kamera aufzunehmen, genügt der Befehl:
$ raspistill -o test.jpg
War dies erfolgreich, können wir uns mit der eigentlichen Konfiguration befassen.
V4L-Treiber für das Kameramodul
Um das Kameramodul im nächsten Konfigurationschritt dann in motion verwenden zu können, muss die Kamera mit dem Treiber V4L / Video4Linux funktionieren und als Video-Device (/dev/videoX) erkannt werden. Dies war in der Vergangenheit ein Problem. Glücklicherweise ist der V4L-Treiber für die offizielle Raspberry Pi Kamera jedoch mittlerweile bereits in Raspbian enthalten, was die Sache deutlich vereinfacht. So müssen wir lediglich die Module v4l2_common und bcm2835-v4l2 laden:
$ sudo modprobe v4l2_common $ sudo modprobe bcm2835-v4l2
Damit das Kameramodul auch nach einem Neustart noch als Video-Device erkannt wird, tragen wir die Module in die Datei /etc/modules ein:
$ echo "v4l2_common" | sudo tee -a /etc/modules $ echo "bcm2835-v4l2" | sudo tee -a /etc/modules
Laufen die Befehle ohne Fehlermeldung durch, müsste nun das benötigte Video-Device verfügbar sein. Dies können wir mit folgendem Befehl überprüfen. Als Ausgabe müßte im Idealfall /dev/video0 aufgelistet werden:
$ ls /dev/video*
Motion – Installation & Konfiguration
Das freie V4L-Aufnahmeprogramm Motion ist ein sehr mächtiges Werkzeug, das Bewegungen erkennen und diese als Video oder Einzelbilder (optional) speichern kann. Außerdem kommt Motion mit einem eigenen kleinen Webserver, mit dessen Hilfe es einen Livestream der Kamera(s) ins Netz stellen kann. Genau das wollen wir.
Motion ist in den Repositories aller gängigen Linux-Distributionen bereits enthalten. Um Motion unter Raspbian zu installieren, geben wir in der Konsole folgenden Befehl ein:
$ sudo apt-get install motion
Vorbereitung
Soll Motion immer beim Systemstart ausgeführt werden, bearbeiten wir die Datei “/etc/default/motion”:
$ sudo nano /etc/default/motion
Hinter dem Eintrag start_motion_ daemon, muss dazu das “no” durch “yes” ersetzt werden.
Außerdem erstellen wir einen Ordner, der als Speicherort für die Aufnahmen dienen soll und geben diesem die nötigen Schreibrechte:
$ mkdir /home/pi/cam $ sudo chgrp motion /home/pi/cam $ chmod g+rwx /home/pi/cam
Livestream einrichten [Raspbian Jessie]
Wie unter Linux völlig üblich, verzichtet auch Motion auf eine grafische Steuerung und kann detailliert über eine Konfigurationsdatei instruiert werden. Die Einstellungen finden alle in der Datei /etc/motion/motion.conf statt. Wir editieren die Konfigurationsdatei mit folgendem Befehl:
$ sudo nano /etc/motion/motion.conf
Um den Netzwerkstream unserer Kamera zu aktivieren, müssen dort folgende Einstellungen angepasst werden:
daemon off | daemon on | |
target_dir /tmp/motion | target_dir /home/pi/cam | |
stream_localhost on | stream_localhost off |
Motion bietet eine Vielzahl an weiteren Einstellmöglichkeiten. Die folgenden Parameter sind optional, sollten jedoch an die eigenen Bedürfnisse und Einsatzzwecke angepasst werden:
width 640 | Breite des Videos (Pixel) |
height 480 | Höhe des Videos (Pixel) |
framerate 10 | Empfangene Bilderrate pro Sekunde |
threshold 5000 | Empfindlichkeit der Bewegungserkennung (Anzahl Pixel) |
ffmpeg_output_movies off | Keine Videos speichern bei erkannter Bewegung |
output_pictures off | Keine Bilder speichern bei erkannter Bewegung |
stream_port 8081 | Port über den der Livestream erreichbar ist |
stream_quality 75 | Bildqualität in Prozent (Livestream) |
stream_motion on | Ohne Bewegung nur 1 Bilder pro Sekunde (Livestream) |
stream_maxrate 10 | Max. Bilder pro Sekunde (Livestream) |
Passwortschutz
Wenn der Kamera-Stream auch aus dem Internet erreichbar sein soll, sollte dieser unbedingt mit einem Passwort geschützt werden um ungewollte Beobachter auszusperren. Motion bringt diese Einstellmöglichkeit bereits mit und muss nur noch aktiviert werden:
stream_auth_method 1 | Passwortschutz für Kamera-Stream aktivieren |
stream_authentication username:password | Benutzername + Passwort festlegen |
Abschließend können wir den Motion-Dienst starten:
$ sudo service motion start
Kamera-Livestream testen
Die Einrichtung von Motion ist damit geschafft und wir können den Kamera-Livestream nun testen. Dazu rufen wir einfach im Webbrowser (Mozilla Firefox, Chrome, etc.) die lokale IP-Adresse des Raspberry Pi gefolgt vom Port auf (z.B. 192.168.0.42:8081). Alternativ kann auch der VLC Player verwendet werden. Im Menü unter „Medien Netzwerkstream öffnen“ die Adresse mit Port angeben.
Hatte tagelang im Internet nach Anleitungen gesucht, doch alles was ich fand war veraltete und funktioniert nicht mit dem Kamera-Modul. Diese Anleitung hat auf Anhieb funktioniert! Klasse, danke dafür!
Hallo,
Die Anleitung ist wirklich gut! Danke dafür.
Bei mir hat es sofort funktioniert. Allerdings ich möchte gerne die Bilder dauerhaft auf einem Server speichern. Dafür habe ich: “output_pictures on” gestellt und beim target_dir /home/pi/shares/motion eingetragen. Mit z.B. MC kann ich auf den gemounteten Ordner zugreifen, Dateien löschen und schreiben.
Wenn der Ordner nicht gemountet ist, funktioniert beim Motion alles perfekt. Bei gemounteten Ordner, stürzt Motion bei der ersten Bewegung ab. In der user.log kann ich nachlesen:
motion_detected: Motion detected – starting event 1
Mar 30 16:37:22 raspi3 motion: [1] [ERR] [ALL] myfopen: Error opening file /home/pi/shares/motion/01-20170330163722-03.jpg with mode w:
Mar 30 16:37:22 raspi3 motion: [1] [ERR] [ALL] put_picture: Can’t write picture to file /home/pi/shares/motion/01-20170330163722-03.jpg – check access rights to target directory$
Wenn ich aber mit: “sudo motion start” starte, ist alles O.K. und Motion kann die Bilder auf das gemountete Verzeichnis schreiben. Mit “sudo service motion start” leider nicht.
Wie kann ich beim Autostart die nötige Zugriffsrechte bekommen? am Verzweifeln. Danke im Voraus für Eure Hilfe.
Raspi
Hallo,
der Benutzer “motion” hat offensichtlich keine Schreibberechtigung auf den Zielordner. Das ist auf diverse Arten lösbar.
Man könnte ihm z.B. das Zielverzeichnis per “sudo chown motion /home/pi/shares/motion” übertragen, dann darf motioin dort auch ohne su-rechte schreiben.
Wie ist es möglich, als Zielordner einen freigegebenen Ordner auf einem Windows Rechner im lokalen Netzwerk auszuwählen?
Danke und Gruß
Klar, das sollte kein Problem sein. Einfach den Netzwerkordner mounten und den dazugehörigen Pfad bei motion dann hinterlegen. Wichtig ist, dass motion darauf natürlich Schreibzugriff hat.
Aktuellste und beste Anleitung im Netz. Auch die ältere Kamera Version 1.3 funktioniert mit dieser Anleitung.
Ich habe es so eingestellt, dass bei Bewegung Bilder in /home/pi/cam gespeichert werden.
Leider bekomme ich es nicht hin, diese Bilder direkt auf das NAS (openmediavault) zu speichern.
In dem Verzeichnis /motion wird der freigegebene Ordner des NAS nach Bearbeitung der fstab automatisch per nfs gemountet und ich kann die Bilder aus /home/pi/cam dorthin verschieben.
Leider die Gruppenrechte des Verzeichnisses /motion nicht ändern. Besitzter ist pi, Gruppe users. Fehlermeldung unter chgrp “Die Operation ist nicht erlaubt”
Jemand eine Idee wo mein Denkfehler ist?
hallo,
danke fuer die coole Anleitung!
Meine Kamera sendet nur in den Farben Blau und Schwarz, obwohl sie beim ersten Test einwandfrei funktoniert hat…
und ich kann sie nur innerhalb des Netywerks ansteuern aber nicht aus dem Internet
irgendwelche Ideen}
*bin noch ein Pi Neuling
Wenn die Kamera blau und schwarz sendet, liegt das Problem möglicherweise am Verbindungskabel zwischen Cam und Raspberry Pi. Checke mal die Verbindung.
Mach außerdem mal ein Testfoto:
Wird da das Bild korrekt angezeigt?
Das ist wirklich die beste Anleitung zum Thema RPi / Überwachungskamera im Netz, top aktuell und gut erklärt. Der entscheidende Teil ist der V4L-Treiber um das Kameramodul in motion verwenden zu können. Ich habe drei andere Anleitungen probiert, jedoch funktionierte davon keine einzige mehr … alle völlig veraltet und bezogen sich auf alte Raspbian-Versionen.
Mit dieser Anleitung hat alles auf Anhieb funktioniert. Ich habe sie Schritt für Schritt durchgearbeitet und die Cam läuft als Livestream nun bereits seit einigen Tagen problemlos in Motion.
Lieber Manuel,
vielen Dank für das tolle Tutorial! Danach habe ich habe alle Einträge vorgenommen, bis auf das Paßwort, aber daran kann es nicht liegen.
2 Probleme:
1. Es wird gestreamt, aber oben links erscheint die Einblendung “unable to open video device since…”
Die Cam funktioniert, wird aber offensichtlich nicht erkannt/angesprochen/ausgewertet – woran kann das liegen?
2. In der Fritzbox kann ich keine Freigaben vornehmen für 192.168.188.29:8081 – die Adresse muß ohne Port eingegeben werden.
Somit sehe ich auch keine Möglichkeit, den Stream über Dyndns ins IN zu bekommen. Ist das richtig?
Vielen Dank für Deine Antwort im Voraus.
Gruß
Franzmann
Hallo Franzmann,
1.) Diese Fehlermeldung kenne ich nur in Bezug auf Probleme mit dem Video-Device (/dev/videoX). Sind die Module v4l2_common und bcm2835-v4l2 geladen?
Möglicherweise gibt es aber auch ein Problem mit dem Grafikspeicher, wenn dieser zu klein ist. Über raspi-config kannst du die Speicherverteilung konfigurieren. In den “Advanced Options” gibt es den Menüpunkt “Memory Split”.
2.) Du hast bei der Port-Freigabe einen Denkfehler, die Stream-Weiterleitung mit der Fritzbox ist problemlos möglich. Du musst zuerst das Gerät (Raspberry Pi) bzw. dessen IP (ohne Port-Angabe!) wählen. Dann auf dieser Seite nach unten scrollen, dort werden dann erst die Portfreigaben für dieses Gerät konfiguriert. In folgendem Video wird dies nochmals Schritt-für-Schritt gezeigt: FritzBox Ports freischalten
Hallo Franzmann,
Ich hatte heute auch Bilder in schwarz und grün. Allerdings hatte ich als Format FullHD eingestellt (Cam-Modul 1.3, Raspi3, ArchLinux) Nach dem Wechsel auf HD waren die Bilder wieder bunt.
Hallo,
die Erstellung der Anleitung(die sehr gut ist) ist zwar schon etwas her, aber ich hoffe das man mir noch weiterhelfen kann.
Bei mir läuft alles soweit wie ich es haben will. Bis auf eine Sache.
Ich bekomme es aufs verbiegen nicht hin, das er mir bei der Mailbenachrichtigung auch ein Bild mitsendet.
Ich habe in der Zeile:
on_picture_save echo ‘webcam alert’ | mail -a %f -s “Webcam Alert” meine e-mail-adresse
eingetragen.
Ich erhalte zwar die Mail mit dem Betreff “Webcam Alert” und dem inhalt “webcam alert”
Aber das Bild dazu fehlt leider.
Versucht habe ich es schon mit heirloom und mpack um Anhänge zu versenden.
Um Mails zu versenden nutze ich sSmtp.
Ich hoffe es kann mir erleuchtung gebracht werden.
MfG
Hallo
habe nach obiger Anleitung die Pi 2 Camera installiert. Test Foto hat geklappt. Betreibe den Speedport 924, dort den Port 8081 eingerichtet. Beim Aufrufen der IP mit Port bekomme ich folgende Fehlermeldung:Diese Website ist nicht erreichbar
Die Antwort von 192.168.2.XXX hat zu lange gedauert
Was mache ich falsch?
Hallo,
hat wunderbar geklappt, danke!
Jetzt interessiert mich, wie ich meinen Raspberrypi dazu bringen kann, mir eine Mail (idealerweise mit dem Bild im Anhang) zu schicken, wenn motion eine Bewegung feststellt.
Leider war das mit der Kamera so ziemlich meine erste Linuxerfahrung :-( und ich weiss nicht weiter.
Hallo,
sehr gute Anleitung zum Installieren der Raspi Kamera. Bilder und Videos macht die Kamera schon super. Mit Motion und Livestream allerdings kommt nur “graues Bild und Meldung Unable to open Device”.
Gibt es da schon Lösungen?
Danke
Hallo Zusammen!
Ich hoffe ihr könnt mir weiterhelfen. Ich bin noch recht unerfahren mit dem PI. Ich habe mich an die Anleitung gehalten aber beim Befehl kommt folgende Fehlermeldung:
$ sudo modprobe v4l2_common
modprobe: FATAL: Module v412_common not found in Directory/lib/modules/4.9.59-v
$ sudo modprobe bcm2835-v4l2
modprobe: FATAL: Module bcm2835-v412 not found in directory /lib/modules/4.9.59-v7+
Vielleicht kann mir einer von euch einen Tip geben!
Vielen Dank in vorraus
Hast du den Befehl wirklich so eingegeben? (sudo modprobe v4l2_common)
Zwischen 4 und 2 steht ein “L” wie Ludwig, keine Eins.
In der fünften Zeile steht bei dir nämlich eine 1.
Andere Frage: Hast du deine Kamera auf dem Pi aktiviert?
habe mit an die Anleitung gehalten.
kann mit raspistill auch Bilder machen.
die Kamera leuchtet, ABER ich komme die Fehlermeldung:
safari kann Seite nicht öffnen ???
kann mir jemand nen tipp geben ?
DANKE VORAB !!!
Gruss
Moin,
ich hab alles nach Anleitung gemacht, bekomme aber folgene Fehler angezeigt :
mmal: mmal_vc_component_enable: failed to enable component: ENOSPC
mmal: camera component couldn’t be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates
Die rote LED an der Kamera ist an.
Danke und Gruß, Artur
PERFEKT
TAUSEND DANK
läuft super…. aber nach wenige tagen ist meine speicherkarte voll.
wie bekomme ich es hin, dass jeweils bilder älter als x-tage gelöscht automatisch gelöscht werden ?
Hallo Jan,
folgender Befehl löscht JPG-Dateien aus einem Verzeichnis, die älter als 10 Tage sind. Einfach als Script speichern und per Cronjob ausführen:
Hallo,
ich hab das ganze Internet durchsucht und etliche Anleitungen probiert und nichts hat geholfen. Mit dieser Anleitung läuft alles super! Selbst nach den RaspberryPi Buch von Kofler lief es nicht. Jetzt wenn ich noch wissen würde wie ich es anstelle dass nach einer bestimmten Zeit alte Bilder und Videos von selbst gelöscht werden.
Danke für diese gute Anleitung!!
Gruss Günter
Hallo Günter,
freut mich, dass ich dir mit meiner Anleitung helfen konnte. Um Dateien nach einer gewissen Zeit zu löschen, könntest du ein einfaches Shell-Script per Cronjob ausführen.
Folgender Befehl löscht JPG-Dateien aus einem Verzeichnis, die älter als 10 Tage sind:
Hallo,
danke! Hat alles gut funktioniert bis auf eine Sache. Ich möchte jetzt noch während des Streams Bilder und Videos aufnehmen, allerdings erscheint beim Befehl: raspistill -o test.jpg folgende Meldung:
mmal: mmal_vc_component_enable: failed to enable component: EN0SPC
mmal: camera component couldn’t be enabled
mmal: main: Failed to create camera component
mmal: Failed to run camera app. Please check for firmware updates
Habe daraufhin ein kleines “Script” gebastelt das den motion service stoppt, ein Bild macht und anschließend wieder startet, finde hierfür jetzt aber keinen anderen Weg als Händisch mit f5 den Browser neu zu laden. Ich hoffe jetzt, dass es eine möglichkeit gibt Bilder und Videos während des Streams aufzunehmen um dieses unnötige Script zu umgehen.
P.S. Kann man die Bilder und Videos Aufnahme auch per Tastendruck starten oder muss das über die Kommandozeile erfolgen? (Bin Neuling und das ist mein Abschlussprojekt)
Beste Grüße Robin
Hallo,
danke für diese Anleitung.
Meine Frage ist, ob es eine günstige Variante gibt, beide Kameras an einen Raspberry anzuschließen, sodass ich bei Tag und Nacht ein perfektes Bild habe und der Raspberry automatisch die richtige Kamera auswählt?
Ich bin relativ neu in der Thematik und freue mich über jede konstruktive Idee.
Vielen Dank im Voraus!!
VG
Julius