Webcam-Server einrichten

In diesem Tutorial zeige ich euch, wie ihr ein Webcam-Server auf eurem Raspberry Pi einrichten könnt. Hierfür braucht ihr lediglich eine Webcam und natürlich euren Raspberry Pi. Der Webcam-Server kann auch als Überwachungskamera benutzt werden. Dies kann zum Beispiel dann Sinn machen, wenn man wissen will, was die Haustiere so in der Abwesenheit des Herrchens alles anstellen.

Webcam-Server einrichten

1. Sobald ihr eure Webcam an den Raspberry Pi angeschlossen habt, prüfen wir mittels dmesg ob sie erkannt wurde

dmesg

2. Sucht nach einem Linux video capture interface. Wenn ihr keines findet, dann wurde eure Webcam nicht erkannt und ihr müsst eventuell Treiber von Hand installieren.

3. Um die Webcam zu testen, installieren wir das Programm fswebcam und machen eine Testaufnahme

sudo apt-get install fswebcam
fswebcam -r 640x480 -d /dev/video0 -v /tmp/test.jpg

4. Diese können wir dann mittels eines FTP-Programms auf unseren PC übertragen und anschauen

5. Zur Aufname von Fotos installieren wir die Software motion

sudo apt-get install motion

6. Jetzt aktivieren wir noch den motion deamon, damit die Software beim Systemstart startet

sudo nano /etc/default/motion

7. Hier ändern wir den Eintrag start_motion_daemon=no auf start_motion_daemon=yes

8. Daraufhin erstellen wir noch den Ordner, in dem die Bilder gespeichert werden sollen und passen die Rechte entsprechend an

sudo mkdir /srv/motion
sudo chown motion.motion /srv/motion

9. Im Aschnluss passen wir noch die motion.conf ein bisschen an

sudo nano /etc/motion/motion.conf

10. Meine Einstellungen lauten wie folgt

daemon on
v4l2_palette 0
width 640
height 480
framerate 5
output_normal off (ACHTUNG: Wenn diese Option auf on steht, kann das eine große Datenmenge bedeuten, da nahezu jedes Bild auf eurem Pi gespeichert wird)
quality 100
ffmpeg_cap_new off
text_right %Y-%m-%dn%H:%M
target_dir /srv/motion
webcam_quality 100
webcam_maxrate 15
webcam_localhost off

11. Zum Schluss müssen wir motion neustarten

sudo /etc/init.d/motion restart

 

Bereitstellung der Webcam im Internet

1. Wir brauchen für die Bereitstellung natürlich einen Webserver. Hierfür eignet sich ein Apache2 aus meiner Sicht am Besten

sudo apt-get install apache2

2. Anschließend müss das mod_proxy-Modul aktiviert werden

sudo a2enmod proxy_http

3. Jetzt müssen wir die vhost-Konfiguration aufrufen

sudo nano /etc/apache2/sites-available/default

4. Und die entsprechenden Einträge setzen

ProxyRequests Off
  <Proxy *>
  AddDefaultCharset off
  Order deny,allow
  Allow from all
  </Proxy>
  ProxyVia On
  ProxyPass /webcam http://IpAdresseEuresPis:8081

5. Im Anschluss müssen wir den Webserver noch einmal neustarten

sudo /etc/init.d/apache2 restart

6. Nun können wir die Webcam aus dem Internet erreichen

http://IpAdresseEuresPis/webcam

 

61 Kommentare zu “Webcam-Server einrichten

  1. Hallo,
    hier habe ich keine Antwort, sondern eine brennende Frage:
    Gibt es (inzwischen) auch ein Tutorial für einen Webserver für Videos vom Raspberry (B) zusammen MIT DER RASPICAM (Raspicamera) –anstelle der angegebenen (externen) USB-Webkameras–, der mir vom Raspi über WLAN –> Router –> PC (WIN 7 prof.) RASPICAM-Videos sendet?
    Danke für jede Antwort

    • Das Prinzip sollte eigentlich das Gleiche sein. Da ich aber noch keine Raspicam habe, kann ich dir da jetzt nicht groß weiterhelfen, außer dich auf Google zu verweisen.

  2. Hi,

    echt hübsches Tutorial – auch mit dem Apache eine gute Lösung.

    Allerdings, wenn ich die Bewegungssteuerung aktiviere, werden die Bilder alle „kaputt“ gespeichert. Die Bewegung wird einwandfrei erkannt und die Events werden ausgelöst (bei mir Upload zu einem FTP-Server und versenden einer Email), allerdings das Bild ist komplett unbrauchbar, da nichts erkennbar (schwer zu beschreiben, sehr viele bunte, willkürliche Fragmente). Im Livestream und wenn ich z.B. Intervall einschalte, sind die Bilder alle perfekt. Da würde ich als Laie einen technischen Defekt der HP Webcam 3100 ausschließen.

    Eine Idee, woran das liegen könnte?

    Gruß,
    D

  3. wer findet den Fehler…

    In der motion.conf fehlt die Zeile:

    webcam_port 8081


    dann klappt es auch mit dem Nachbarn…
    :-)

    Sonst, tolles Tutorial

  4. hallo.

    ich habe ein problehm mit dem programm „fswebcam“.

    herunterladen mit „sudo aptitude install fswebcam“ .
    funkioniert nur wenn ich mit dem befehl „fswebcam -r 640×480 -d /dev/video0 -v /tmp/test.jpg“
    ein bild testen will kommt nur
    „opening /dev/video0….
    stat: no such file or directory“

    Ich benutze die raspcam. und funktionieren tut sie mit dem befehl “ raspistill -o image.jpg “ aben so…..

    möchte aber gerne wie in deinem tutoril schritt für schritt weiter machen.
    mfg. danieö

    • Die Raspicam wird nicht über /dev/video0 angesprochen, sondern anders.

      Out-of-the-Box funktioniert die Raspicam nicht mit motion zusammen. Du brauchst eine speziell auf die Raspicam angepasste Version von motion. Ein Video dazu ist bereits in der mache und sollte (hoffentlich) morgen online gehen.

  5. Hallo,

    ich habe alles wie in deinem Tutorial beschrieben gemacht, ein Testbild konnte ich auch der Cam entlocken, wenn ich aber meine IP Adresse des PI:8081 ansurfe kommt nur ein Bild in dem oben links steht „unable to open video device“.

    Was mache ich falsch, ein Standbild schießen klappt doch auch??

    Gruß

    Alfi

  6. Hallo Sascha,

    dank Deiner Anleitung war es überhaupt keine Problem meine WebCam am Raspberry ans Laufen zu bekommen. Zwei Fragen hätte ich aber noch
    – bei aktivierter WebCam liegt die CPU-Auslastung meines Raspbeery Pi B bei 100%, ist das OK?
    – Gibt es eine Möglichkeit die Bilder aus dem live-stream abzugreifen bzw. weiterzuverarbeiten.

    Gruß Hanns

  7. Danke mal für deine Mühe. Nun hätte ich auch eine Frage: Ich habe das ganze auf einen HP Server am laufen mit einer USB Webcam. Gibt es eine Lösung das man nicht nur Video sonder auch Audio dazu aufnehmen kann. Mein Cam ist mit Mirco und da wäre es von vorteil auch Audio dazu Aufnehmen.

    MfG

  8. Hi,

    Ich habe eine Frage und eine kleine Verbesserung.

    1. Frag Gibt es eine Möglichkeit eine Autentifizierung einzubauen auf der webweit Sodas man sich mit benutzername und Passwort einloggen muss ?? Gibt es da eine einfache Lösung??

    2. Verbesserung
    damit man nur noch die Ip vom webbrowser eingeben muss und nicht noch das /webcam habe ich hier eine kleine html Anpassung.

    irgend ein name

    einfach die vorhandene html Datei löchen und eine mit den Namen index.html erstellen den oberen part einfügen und anpassen nun braucht man nur noch die ip Adresse des raspberry im browser eintragen.

    mfg

    sebastian

  9. Hallo,

    ich habe das Tutorial durchgearbeitet und es läuft auch alles soweit wunderbar. Nun habe ich aber nicht den Apache installiert, sondern lightpd. Die Aktivierung des mod_proxy ist mir ja noch gelungen, aber bei der Konfiguration habe ich noch keine lauffähige Lösung gefunden. Für eine Hilfe diesbezüglich wäre ich sehr dankbar.

    In diesem Zusammenhang bin ich mir auch unsicher, was eigentlich ins /etc/lighttpd/lighttpd.conf gehört und was ins /etc/lighttpd/conf-enabled/10-proxy.conf

    Liebe Grüße
    Fritz

  10. Hallo,
    Motion usw. klappt, auch meine Webcam im eigenen Netzwerk, aber ich krieg meine Webcam nicht ins Internet. Frage zur „Bereitstellung im Internet“ Punkt 4: müssen diese Zeilen in der Kofiguration neu eingetragen werden oder nur abgeändert? Bei mir steht da nämlich noch nix drin in Sachen „Proxy“.
    Sorry – bin noch Pi-Anfänger.
    LG

    • Hey habe leider das selbe Prob… Im W-Lan geht alles nur nicht mit Apchae2 kp
      die config Datei war bei mir auch leer?? an was kann das liegen??

  11. OK – Sorry habs kapiert – hab den Film noch nicht gesehen – funktioniert zwar trotzdem noch nicht – muss noch ein wenig probieren.
    Danke

  12. Bei „sudo /etc/init.d/motion restart“ kommt bei mir der Fehler
    „/etc/init.d/motion: 3: /etc/default/motion: daemon: not found“

    • Ups… Zu schnell geklickt, sorry.

      Die USB-Camera wird erkannt und das Test-JPG ist OK.

      >pi@raspberrypi /etc/init.d $ ls -l motion
      >-rwxr-xr-x 1 root root 2410 Feb 12 2012 motion

  13. Ich habe alles nach deinem tutorial ganz befolgt doch wenn ich z.B. die .conf datei öffne ist diese ganz leer ich habe motion trozdem vorher installiert und alles befolgt nachdem ich den Ordner anlegen wollte wo ich diese drin speichern wollte klappte auch noch alles nur als ich ‚sudo chown motion.motion /srv/motion‘ eingab kam der fehler: „chown: invalid user: ‚motion.motion‘ “
    ich hoffe du könntest mir schnell helfen aber jetzt erwarte ich so oder so noch keine antwort es ist ja erst 23:40 :)
    trozdem ein gutes tutorial mach weiter so

    • und wenn ich den befehl: “ sudo nano /etc/motion/motion.conf “ eingebe kommen wieder einmal eine leere .conf datei
      als kleine ergänzung

  14. Hallo, vielen Dank erstmal für das Tutorial.

    Es klappt soweit alles perfekt bis auf die Speicherung der Bilder. Ich habe aus meinem Pi ein NAS gemacht mit einem USB-Stick. Darauf gibt es ein Verzeichnis mit dem Namen /media/Cam. Wenn ich mittels fswebcam ein Testbild mache dann wird das wunderbar dort reingespeichert. Wenn ich aber dann Motion starte und vor der Kamera rumtanze passiert gar nichts.

    Kann mir hier jemand helfen was ich falsch mache?!
    Vielen Dank.

    LG Daniel

  15. Hallo, vielen Dank erstmal für das Tutorial.

    Es klappt soweit alles perfekt nur ich würde gerne die aufgenommenen Bilder/Videos nach einer gewissen Zeit automatisch löschen lassen.

    Wie ist das möglich bzw. weiß hier jemand eine Lösung?
    Vielen Dank.

    LG Daniel

  16. Hallo,
    danke für das Tutorial, aber irgendwas läuft bei mir falsch. Die Webcam wird erkannt und ein Foto mit fswebcam war auch kein Problem. Im weiteren Verlauf lässt sich die Webcam aber nicht mittels Firefox über den Port 8081 aufrufen. Firefox meldet, dass die Verbindung nicht hergestellt werden kann. Auch nach der Installation des Apache kriege ich kein Bild der Cam. Der Apache meldet einen Error 503 (Service unavailable).

    Hast du vielleicht einen Rat für mich?

    VG Oli

  17. Bei mir läuft motion soweit ganz gut. Allerdings möchte ich nun die Bilder auf einer externen HDD speichern. Dies funktioniert auch ABER die Rechte passen nicht. Ich kann über Samba die Bilder nicht aufrufen, Windoof sagt dann immer “ Sie haben keine Berechtigung…“. Den ordner aufzurufen ist allerdings kein Problem…

    PS: Klasse Videos! 😉

  18. Hallo,

    ich habe mal eine Frage, und zwar:
    Könnte ich den Raspberry PI so einstellen, dass dieser so ca. alle 5 Minuten mit der angeschlossenen Webcam ein Foto schießt und dieses dann auf dem Raspberry PI abspeichert, welches auch von außerhalb zugreifbar ist? Am besten so, dass man dieses Foto per HTML und per URL auf eine ixbeliebige Seite einbetten kann. Dieses Fotos sollte am besten eine URL besitzen, welches die Endung .jpeg oder .jpg aufweist. Die Fotos, die alle 5 Minuten geschossen werden, sollen nicht alle einzeln abgespeichert werden. Das würde nur allzuviel Speicherplatz verbrauchen und außerdem wäre dann jede Datei anders benannt. Ich hätte das am liebsten so, dass die Fotos immer auf ein und der selben Datei abgespeichert werden, bzw. immer wieder alle 5 Minuten überschrieben wird. Die Webcam soll nämlich für Google Earth veröffentlicht werden. Dazu wäre es auch schön, wenn das aktuelle Wetter mit auf das Foto eingeblendet wird.

    Am besten, Sie erklären das auch in einem Video. Vielleicht kann man das auch so einstellen, dass immer das aktuellste Fotos per URL angezeigt wird, trotzdem aber im Hintergrund alle Fotos abgespeichert werden und nach einer gewissen Zeit automatisch gelöscht werden.

    Vielen Dank.

    Gruß

    Manuel

      • Könnten Sie mir das vielleicht ein bisschen näher erklären? Ich blicke da bei der Anleitung nicht so ganz durch. Ich bin auch erst noch ein Anfänger und kann das so noch nicht richtig umsetzen.

        Bei „cron“ wird dann alle 5 Minuten „fswebcam“ ausgeführt. Nur wo finde ich dann die Datei vom Foto der Webcam und wie kann ich auf diese dann von außerhalb darauf zugreifen? Das verstehe ich alles noch nicht so richtig.

      • Hi, ich bin ein kompletter Pi Anfänger und habe dein Tutorial befolgt es hat auch alles geklappt. Super danke!
        Zu der Andwort mit cron ist es so wenn man den Befehl alle 5minuten ausführen lässt das dann, weil die Bild Dateien ja immer den selben Namen haben sich gegenseitig überspielen und immer das neuste Foto das ältere überschreibt…
        Ich würde aber gerne alle Fotos gespeichert haben, gibt es da eine Möglichkein?
        Danke aber für das Super Tutorial!!!
        LG Anton

    • Mach einfach ein Script, welches eine Unendlich-Schleife durch läuft und jedes mal ein Bild mach und danach 5 Minuten wartet (sleep 3000)

      LG

  19. Hallo,

    ich habs heute mal genau nach dieser Anleitung versucht, nun bekomme ich aber in meinem Firefox nur ein graues Bild mit dem Text „Unable to open video device“.

    Hab genau die o.g. Einstellungen verwendet, aber auch schon versucht die Größe ein wenig zu reduzieren hat keine Besserung gebraucht.

    Hat jemand eine Idee?

    Gruß

  20. Welche IP hat denn der Pi im WAN? wie findet man das heraus???
    Weil die IP die du angegeben hast, ist die lokale also mit 192.168.X.X

  21. Hallo,
    ich möchte gerne per Fernzugriff über einen DNS-Anbieter auf meine Webcam zugreifen. Dies funktioniert über den Port 8080 auch ohne Probleme. Nur möchte ich jetzt gerne den Port von 8080 auf z.B. 6060 o.ä. ändern.

    Dabei bin ich folgende Wege gegangen:
    1. sudo nano /etc/apache2/ports.conf (NameVirtualHost *:60 & Listen 60 -> von Standardeinstellung 80 auf 60 eingestellt)
    2. sudo nano /etc/apache2/sites-enabled/000-default ( & ProxyPass /webcam http://192.168.1.55:6061 -> auch hier von Standard 80 auf 60 geändert)
    3. zu guter letzt mit sudo /etc/init.d/apache2 restart den apache2 Webserver neu gestartet.

    Innerhalb des eigenen Netzwerkes kann man über die IP des Raspberry Pi auf das Webcamfoto per Port 60 zugreifen. Nur von außerhalb über einen DNS Anbieter nicht. Die Portweiterleitung wurde auch am Router geändert. Über den Port 8080 habe ich keine Probleme. Da kann ich auch von außerhalb auf die Webcam zugreifen. Nur ein anderer eingestellte Port funktioniert nicht. Die Software „Motion“ benutze ich nicht. Die Webcam wird nur mit „fswebcam“ ausgeführt. Per Cronjob wird immer wieder alle paar Minuten ein Foto geschossen. Funktioniert alles tadellos. Nur sollte man den Port aus Sicherheitsgründen ändern. Wie mache ich das?

    Vielen Dank.

    Gruß

    Manuel

  22. Intern ja – Extern nein
    Ich hab mit apache2 und Motion schon mal die Webcam nach extern laufen gehabt. Auch hab ich am Router „no-ip.biz“ als DYN-DNS-Anbieter.
    Nach einer Neuinstallation des pi kann ich im LAN die Cam am raspberry mit :8081 sowie auch mit der Proxy-Umleitung /webcam erreichen.
    Beides klappt.
    Was nicht mehr klappt, aber mal ging: Meine Cam von Aussen via der DYN-DNS-Adresse aufrufen. Oder auch mit der mir zugewiesenen Ip-Adresse (/webcam). Es kommt immer zum Timeout.
    Im Router hab ich die Ports 80 und 8081 auf den pi gelenkt. Im Router Log finde ich keine Infos. Was kann das sein?

  23. Hallo,

    vielen Dank für die informative Anleitung.

    Ich habe ein Problem. Ich kann keine Livebilder sehen, Aufruf über Browser zeigt nur
    Motion 3.2.12 Running [1] Threads

    Kamera funktioniert und ich Manuell Bilder aufnehmen.
    Hast Du eine Idee, woran es liegt?

  24. Hallo Herr Karesyk,

    ich habe mir mal den Webcam-Server installiert und ihn nach einigen Versuchen, da totaler Anfänger, auch zum „Laufen“ bekommen. Nun wollte ich die Bildspeicherung mittels Deines Beitrages „USB-Stick mounten“ auf einen USB-Stick auslagern, leider bekomme ich das einfach nicht hin und möchte hiermit um Deine Unterstützung bitten. Der Stick wird scheinbar nicht oder nicht richtig gemountet, kein Bild, keine Aufnahmen. Auch verstehe ich die Mehrfach-Beschreibung zur Formatierung des Sticks nicht. Wäre nett, falls Du überhaupt antwortest, wenn Du mir das Prozedere anhand einer Formatierung, also nur FAT32 oder NTFS erklären könntest. Übrigens findet der Raspi ein Paket „vfat“ nicht! Möglicherweise habe ich auch bei der Ordneranpassung, also „media“ gegen „srv“ im Programm Webcam-Server Fehler gemacht.

    MfG

    Wilfried

  25. Hi

    nachdem ich jetzt alles eingerichtet habe kommt zuerst die Meldung das der Port 8081 vergeben ist.
    also hab ich in der motion.conf einfach mal 8070 eingegeben. jetzt finden Safari auch endlich was nur leider wird mir kein Bild angezeigt, bekomme ein grauen viereckigen Kasten mit unabel to open video device

  26. Hallo Freunde,
    ich habe hier eine Cam in einem Falkennistkasten am laufen. Zwar nicht auf einem Raspberry sondern auf einem „normalen“ PC mit Mageia Linux. Die Bashbefehle, Crontab, .cfg Einstellungen dürften identisch sein. Einige der oben angefragten Probleme konnte ich erfolgreich lösen.
    Fswebcam erstellt jede Minute ein Bild. Mit Überspringen von Frames da es sonst zu fehlerhaften .jpg kommen kann. Anschließend wird das Bild per ftp auf meinen Webspace hochgeladen. Danach wird es in das Format {Stunde}{Minute}.jpg umbenannt und erneut hochgeladen. So habe ich immer ein aktuelles Bild
    http://mari0.bplaced.net/?page_id=174
    und ein Archiv der letzten 24 Stunden online.
    http://mari0.homepage.t-online.de/cam/
    Guckt wenn ihr wollt in den Quelltext, ist voll einfach.

    Aktuell suche ich eine Möglichkeit die lokale Temperatur in die Bildbeschriftung einzubinden. Habe woanders schon etwas gefunden mit Python Script und Yahoo Wetter.
    Grüße MARI0

  27. Hallo,
    ich habe neulich versucht einen Webcam Server nach deinem Tutorial einzurichten. Alles hat geklappt bis auf das ich http://IpAdresseEuresPis/webcam aufrufen kann.

    Statdessen gibt es diese Meldung im Browser: Service Temporarily Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
    Apache/2.2.22 (Debian) Server at 192.168.178.70 Port 80

    Würde mich sehr über Hilfe freuen :)

    Viel Grüße und schonmal Danke.

  28. Hallo Zusammen,

    habe einen Raspi mit USB-Kamera, motion und Apache2 am Laufen.
    Ich kann mit http://bla.dyndns.net/webcam den Livestream aus dem Internet
    heraus anschauen.
    Mit http://bla.dyndns.net/index.htm sehe ich die Webseite von Apache2
    (aus /var/www-data)
    Ich möchte nun den Stream direkt in der Webseite einbetten.

    mit sollte das doch gehen.
    Macht’s aber nicht !
    Die Apache-Webseite wird angezeigt und es kommt die Meldung
    „Verbinden mit 192.168.29.25″ und „Fehler Netzwerk Zeitüberschreitung“

    Kann es sein, dass mein Browser versucht „192.168.29.25“ im Internet aufzulösen ?
    Er kenn doch nur „http://bla.dyndns.net/“, der Link zu localhost (http://192.168.29.25/)
    über iframe muss der Raspi-Server doch intern auflösen.

    Bräuchte Hilfe diesbezüglich.

  29. Nach dem Neustadt von motion wird kein Livebild im webbrowser angezeigt
    Fehlermeldung „verbindungsaufbau abgelehnt“

    wo liegt wohl der Fehler??

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>