Überwachungskamera Livestream am Raspberry Pi einrichten (mit USB Webcam)
Überwachungskamera Livestream mit einem Raspberry Pi? Natürlich! Mit wenigen Hilfsmitteln ist das ganz einfach möglich und funktioniert super.
Überwachungskameras sind häufig sehr teuer und manchmal braucht es gar nicht so viele Funktionen. Mit einfachsten Materialien und in wenigen Schritten zeige ich dir, wie du dir mit deinem Raspberry Pi* eine Überwachungskamera mit Livestream, also Live-Video konfigurieren kannst. Auch außerhalb unseres Heimnetzwerkes können wir den Livestream verfügbar machen – sonst wäre das alles ja witzlos.
Alles was du dazu brauchst ist ein Raspberry Pi*, eine handelsübliche USB-Webcam (z.B. diese*), ein wenig Geduld und diese Anleitung 🙂
Ich habe dieses Tutorial mit dem Betriebssystem Raspbian erstellt. Du kannst aber auch alle anderen Linux Distributionen nutzen.
Schau dir gerne zuerst diese Linux Befehle für Einsteiger an, falls du komplett neu in der Linux Welt bist.
Raspberry Pi vorbereiten
Im ersten Schritt solltest du deinen Raspberry Pi* einmal auf den aktuellsten Software Stand bringen. Führe dazu folgenden Befehl aus (der Pi sollte dazu bereits mit dem Internet verbunden sein):
sudo apt-get update && sudo apt-get upgrade
Optional: Remote Desktop aktivieren
Für die erste Einrichtung solltest du natürlich einen Monitor, Tastatur und Maus an deinen Raspberry Pi angeschlossen haben. Ich finde es aber lästig, ständig zwischen meinem normalen Rechner und dem Pi zu wechseln. Daher kannst du dir das Leben erleichtern und per Remote Desktop Verbindung auf deinen Raspberry Pi zugreifen und ihn konfigurieren.
Dazu musst du nur das Paket xrdp installieren:
sudo apt-get install xrdp
Anschließend kannst du dich auch deinem Rechner mit dem vorinstallierten Programm „Remotedesktopverbindung“ mit deinem Raspberry Pi verbinden. Der Hostname deines Raspberry Pis lautet „raspberrypi“, sofern du ihn nicht geändert hast.
Als Zugangsdaten nutzt du die von dir gesetzten oder die Standard Zugangsdaten:
Benutzer: pi
Passwort: raspberry
Raspberry Pi Livestream Package installieren (Motion)
Führe nun folgenden Befehl aus, um das Motion Package zu installieren, welches wir zum Streaming des Videos nutzen werden:
sudo apt-get install motion -y
Die Konfiguration erfolgt im nächsten Schritt.
Raspberry Pi Überwachungskamera richtig einstellen
Schließe jetzt deine USB-Webcam an der Raspberry Pi an, falls du das noch nicht getan hast.
Mit diesem Befehl kannst du prüfen, ob deine USB Webcam vom System erkannt wurde:
lsusb
Hier sollte deine Kamera mit aufgelistet werden. Bei mir es der oberste Eintrag.
Außerdem sollte der Befehl ls /dev/video*
folgende Ausgabe liefern:
Nun, da die Kamera läuft können wir Motion einrichten. Motion übernimmt für uns eigentlich alle Aufgaben: Es startet im Hintergrund einen Daemon welcher uns dauerhaft das aktuelle Videobild liefert und auf einer Weboberfläche darstellen kann.
Um Motion so zu konfigurieren, damit wir am Ende ein flüssiges Bild lassen wir uns ein paar Eigenschaften unserer Cam ausgeben. Dazu nutzt du den Befehl v4l2-ctl -V
.
Davon brauchen wir ein paar Daten, die in den nächsten Schritten wichtig werden. Wir müssen jetzt die Motion Konfigurationsdatei bearbeiten. Nutze dazu folgenden Befehl:
sudo nano /etc/motion/motion.conf
Hier lassen sich unzählige Parameter verändern. Ich musste ein wenig rumprobieren, um am Ende ein nahezu ruckelfreies Bild zu erhalten. Ich würde dir empfehlen alle Einstellungen wie folgt anzupassen. Falls bei dir das Bild am Ende nicht in Ordnung ist kannst du selber noch etwas mit den einzelnen Parametern rumspielen. Passe also nun die rot-markierten Zeilen in deiner Konfigurationsdatei an.
# Start in daemon (background) mode and release terminal (default: off) daemon on
Die Werte für die Parameter v4l2_palette
, width
und height
entnimmst du der Ausgabe unseres vorherigen Befehls.
# v4l2_palette allows to choose preferable palette to be use by motion # to capture from those supported by your videodevice. (default: 17) # E.g. if your videodevice supports both V4L2_PIX_FMT_SBGGR8 and # V4L2_PIX_FMT_MJPEG then motion will by default use V4L2_PIX_FMT_MJPEG. # Setting v4l2_palette to 2 forces motion to use V4L2_PIX_FMT_SBGGR8 # instead. # # Values : # V4L2_PIX_FMT_SN9C10X : 0 'S910' # V4L2_PIX_FMT_SBGGR16 : 1 'BYR2' # V4L2_PIX_FMT_SBGGR8 : 2 'BA81' # V4L2_PIX_FMT_SPCA561 : 3 'S561' # V4L2_PIX_FMT_SGBRG8 : 4 'GBRG' # V4L2_PIX_FMT_SGRBG8 : 5 'GRBG' # V4L2_PIX_FMT_PAC207 : 6 'P207' # V4L2_PIX_FMT_PJPG : 7 'PJPG' # V4L2_PIX_FMT_MJPEG : 8 'MJPEG' # V4L2_PIX_FMT_JPEG : 9 'JPEG' # V4L2_PIX_FMT_RGB24 : 10 'RGB3' # V4L2_PIX_FMT_SPCA501 : 11 'S501' # V4L2_PIX_FMT_SPCA505 : 12 'S505' # V4L2_PIX_FMT_SPCA508 : 13 'S508' # V4L2_PIX_FMT_UYVY : 14 'UYVY' # V4L2_PIX_FMT_YUYV : 15 'YUYV' # V4L2_PIX_FMT_YUV422P : 16 '422P' # V4L2_PIX_FMT_YUV420 : 17 'YU12' # v4l2_palette 15
# Image width (pixels). Valid range: Camera dependent, default: 352 width 512 # Image height (pixels). Valid range: Camera dependent, default: 288 height 288
# Maximum number of frames to be captured per second. # Valid range: 2-100. Default: 100 (almost no limit). framerate 30
Tipp: Mit STRG+W kannst du im nano-Editor nach Wörtern suchen.
# Let motion regulate the brightness of a video device (default: off). # The auto_brightness feature uses the brightness option as its target value. # If brightness is zero auto_brightness will adjust to average brightness value 128. # Only recommended for cameras without auto brightness auto_brightness on
# Number of frames to capture after motion is no longer detected (default: 0) post_capture 5
# The quality (in percent) to be used by the jpeg compression (default: 75) quality 100
# Use ffmpeg to encode movies in realtime (default: off) ffmpeg_output_movies on
# Bitrate to be used by the ffmpeg encoder (default: 400000) # This option is ignored if ffmpeg_variable_bitrate is not 0 (disabled) ffmpeg_bps 500000
# Use ffmpeg to deinterlace video. Necessary if you use an analog camera # and see horizontal combing on moving objects in video or pictures. # (default: off) ffmpeg_deinterlace off
# Quality of the jpeg (in percent) images produced (default: 50) stream_quality 35
# Output frames at 1 fps when no motion is detected and increase to the # rate given by stream_maxrate when motion is detected (default: off) stream_motion off
# Maximum framerate for stream streams (default: 1) stream_maxrate 30
# Restrict stream connections to localhost only (default: on) stream_localhost off
Nun müssen wir noch den Daemon, also den Motion Dienst aktivieren:
sudo nano /etc/default/motion
Hier setzt du einfach den Parameter von start_motion_daemon
auf yes
und speicherst die Datei ab.
Alles fertig! Lass‘ uns unsere Überwachungskamera starten! 🙂
sudo nano service motion start
Über die Weboberfläche solltest du jetzt den Livestream sehen: http://localhost:8081.
Du kannst weitere Parameter in der Config anpassen. Beachte, dass du danach den Service mit sudo nano service motion restart
immer neu starten musst.
Überwachungskamera nach außen (im Internet) verfügbar machen
Die Überwachungskamera macht natürlich mehr Sinn, wenn sie nicht nur im Heimnetzwerk, sondern auch von außerhalb, also weltweit erreichbar ist. Dazu kannst du einen Router entsprechend konfigurieren.
Ich nutze dazu eine VPN-Verbindung in mein Heimnetzwerk und verbinde mich dann über den Hostname mit der Weboberfläche: http://raspberrypi:8081. Die Einrichtung habe ich in einem separaten Tutorial beschrieben:
VPN mit DynDNS an deinem Router einrichten
Raspberry Pi Boot-Probleme beheben
Anfangs hatte ich das Problem, dass mein Pi ohne Monitor nicht gestartet ist. Der kleine Kasten soll natürlich irgendwo versteckt werden. Die Lösung ist, dass du mit sudo raspi-config
unter Advanced Options > A5 Resolution eine beliebige Einstellung wählst. Ohne einen HDMI-Eingang startet der Pi sonst nicht richtig.
Fazit
Wie du siehst braucht es gar nicht viel um eine eigene Überwachungskamera mit einem Raspberry Pi zu bauen. Für welchen Einsatzzweck wirst du sie nutzen?
Wie fandest du diesen Beitrag?
Haut bei mir leider nicht hin… Sehe in camera.ui die Kamera leider nicht…
Hallo,die Anleitung ist ja gut geschrieben und soweit klappt auch alles.Ziemlich am Schluss stehen die Zeilen „sudo nano service motion start“ und „sudo nano service motion restart“Bist du dir sicher dass das so richtig ist? :-)Freundliche GrüßeSiggi
Hallo, freut mich zu hören! Ja, ich bin sicher. Einmal zu Beginn starten und wenn was an der Config angepasst wird, einmal mit „restart“ neustarten.