Bewegungserkennung mit dem Raspberry Camera Modul und motion

  • Hallo zusammen.

    Einleitung

    Ich möchte euch hier mein Projekt des verdeckten Einbaus eines Raspberry Pis mit Kamera Modul in einem Bilderrahmen vorstellen, der den aufgenommenen Bereich überwacht und bei erkannter Bewegung Bilder aufzeichnet. Darüber hinaus ist die Kamera (respektive die verwendete Software) per SMS-Befehlen ein- und ausschaltbar, so dass man keine Sorgen haben braucht, dass man möglicherweise selbst aufgenommen wird.

    Dieses Projekt ist deshalb entstanden, da in dem Mehrfamilienhaus, in dem ich wohne, in zwei Wohnungen eingebrochen und dort sämtliche Wertgegenstände entwendet wurden.

    Als kleines optionales Schmanckerl verwende ich ein Script,welches regelmäßig prüft, ob neue Bilder von der Bewegungserkennung aufgezeichnet wurden. Um dem potentiellen Einbrecher bei Erkennung der Kamerainstallation die Möglichkeit zu nehmen, entweder die SD-Karte zu zerstören oder mitzunehmen, werden die Bilder verschlüsselt und sofort auf einen externen Server geladen.

    Verwendete Hardware

    Folgende Hardware verwende ich für die Realisierung dieses Projekts:


    Und dann benötigt man natürlich noch ein WLAN-Dongle oder ein Netzwerkkabel für die Einrichtung bzw. Administration. Da man das aber meistens sowieso hat, zähle ich das mal nicht in die obige Liste.

    Zu dem Huawei E160-Stick muss ich sagen, dass ich den noch von früher hatte. Außerdem hatte ich Glück, dass der Stick kein Branding hatte und dementsprechend trotz des BASE-Aufdrucks mit einer Prepaid-Karte von o2 verwendbar ist. Guthaben wird in diesem Modell übrigens nicht verbraucht, es fallen lediglich Kosten für die Anschaffung der SIM-Karte an, da der Stick die SMS nur empfangen soll. Günstig kann man so einen Stick in der Regel bei ebay kriegen. Mehr als 10€ sollte man da aber nicht investieren.

    Insgesamt kommt man mit dem Projekt also auf ca. 130€ (plus Versandkosten).

    Schritt 1: Aktualisieren der Firmware

    Ich verwende die Distribution Raspbian und habe mittels der nachfolgenden Kommandos zunächst mein System aktualisiert und danach die Firmware des Raspberry Pis geflasht:


    Schritt 2: Installation verwendeter Programme über die Paketverwaltung

    Nach dem Neustart installiere ich zunächst die erforderlichen Programme, die man über die Paketquellen der Distribution erhalten kann und deren Versionsstatus einigermaßen akzeptabel ist:

    Code
    # Installation verwendeter Pakete
    sudo apt-get install -y gnokii minicom screen github-core expect motion cmake libjpeg62-dev

    Die Pakete gnokii und minicom dienen der Steuerung des Surfsticks. Screen ist ein Paket, mit dem man Programme starten und in den „Hintergrund“ legen kann, so dass sie dort ihre Arbeit weiter verrichten, auch wenn man sich aus einer SSH-Session ausloggt. Expect dient später der Verwendung in dem o.g. Script,was die Dateien verschlüsselt und auf den externen Server hochlädt.

    Das Github-Paket dient später dem Herunterladen des Paketes mjpg_streamer_experimental des Programmierers jacksonliam. Die Besonderheit dieses Paketes ist ein Plugin, welches es ermöglicht, direkt auf das Raspberry Pi Kamera Modul zuzugreifen und nicht den Weg über die Verwendung des Programms raspistill in einer Schleife zu gehen.

    Motion schließlich ist das Paket, was es uns ermöglicht, Bewegung in dem Videostream zu sehen und diese Bilder aufzuzeichnen.

    Damit der mjpg_streamer_experimental später kompiliert werden kann, benötigen wir außerdem cmake und eine Developer-Version der Bibliothek libjpg.

    Schritt 3: Einrichten des Huawei E160-Surfsticks

    Der Surfstick wird schlicht an einen der beiden USB-Ports des Raspberry Pis eingesteckt. Eine grüne und eine blaue LED verraten dann, dass der Stick beginnt, seine Arbeit aufzunehmen, sofern auch die SIM-Karte eingelegt ist und bei dieser zuvor die Abfrage des PINS deaktiviert worden ist.

    Nun kann man auf der Shell mittels des Kommandos

    Code
    dmesg | grep tty

    feststellen, wie der Surfstick in das System eingebunden wurde. Man sollte dann eine Darstellung erhalten, die so aussehen dürfte,wie die Folgende:

    Code
    [ 6.151576] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
    [ 6.339877] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1

    In diesem Fall können wir uns merken, dass ttyUSB0 die Schnittstelle ist,über die wir später SMS empfangen und verarbeiten werden.

    Nun kann man diese Schnittstelle in dem Programm minicom eintragen. Dies funktioniert mittels des Befehls

    Code
    minicom --setup

    Dort navigiert man mittels der Pfeiltasten zu dem Menüpunkt

    Code
    Einstellungen zum seriellen Anschluss

    und betätigt die „Enter“-Taste.

    In dem sich nun öffnenden Menü wird man gefragt, welchen Parameter man ändern wolle. Hier drückt man die Taste A, da der serielle Anschluss geändert werden soll.

    Statt „/dev/modem“ muss hier „/dev/ttyUSB0“ eingetragen werden und mit „Enter“ bestätigt werden.

    Auch wäre hier die Änderung der Baudrate des Modems über Druck auf die Taste E möglich. Bei mir war der Wert

    Code
    115200 8N1


    voreingetragen. Dieser Wert entspricht nach gegoogelten Informationen auch der Baudrate, die der Stick E160 von Huawei verwendet. Insofern musste ich hier nichts ändern.

    Um das Menü zu verlassen drückt man erneut „Enter“ und verlässt über das Minicom-Hauptmenü das Setup von Minicom.

    Nun erfolgt die Einrichtung des Paketes gnokii.

    Zunächst legen wir vor Inbetriebnahme von gnokii mittels folgender Kommandos im Home-Verzeichnis des Benutzers pi bestimmte Ordner und Dateien an, die gnokii erwartet:

    Code
    cd ~
    mkdir .cache/gnokii/
    touch .cache/gnokii/gnokii-errors
    mkdir .config/gnokii/

    Mittels folgenden Kommandos sucht man nun in seinem Dateisystem, wo der Installationsordner von gnokii hin kopiert wurde. Dort befindet sich eine config-Datei, die in den frisch erstellten .config-Pfad im Home-Verzeichnis kopiert werden muss:

    Code
    #Suche nach dem Dateipfad
    sudo find / -name 'gnokii' -type d

    Natürlich gibt diese Suche auch die Verzeichnisse aus, die wir gerade angelegt haben. Der Pfad, der für uns interessant ist, ist jener:

    Code
    /etc/xdg/gnokii

    Nun kopiert man die in diesem Verzeichnis liegende config-Datei wie oben beschrieben mit folgendem Kommando:

    Code
    cp /etc/xdg/gnokii/config /home/pi/.config/gnokii/

    Nun sollte alles bereit sein, um zu Prüfen, ob die Konfigurationen von Erfolg gekrönt sind und gnokii mit dem Surfstick kommunizieren kann.

    Dazu gibt man das Kommando

    Code
    gnokii --identify

    ein, um sich Statusinformationen des Surfsticks anzeigen zu lassen. Diese sehen dann in etwa so aus:

    Code
    GNOKII Version 0.6.30
    IMEI : XXXXXXXXXXXXXXX
    Hersteller : huawei
    Kein Abschnitt flags in der Konfigurationsdatei.
    Modell : E160
    Produktname: E160
    Revision : 11.609.06.01.52

    Wer sich allgemein über gnokiis SMS-Befehlsoptionen informieren möchte, wird hier fündig.

    Der Surfstick ist nun insoweit eingerichtet, als dass dieser nun bereit wäre SMS zu empfangen und zu senden. Da das Senden mir persönlich aber zu teuer ist, empfangen wir nur SMS.

    Mittels des Kommandos

    Code
    gnokii --showsmsfolderstatus

    verschaffen wir uns einen Überblick über die auf dem Modem vorhandenen SMS.

    Hier erhält man dann eine Ausgabe, die wie folgt aussieht:

    Code
    GNOKII Version 0.6.30
    Nr. Name Id #Nachrichten
    ================================================================
     0 Interner Speicher ME 0
     1 Kombiniertes ME-und SIM-Telefonb MT 0
     2 SIM-Karte SM 1
     3 SMS-Statusreport SR 0

    Die SMS gehen später auf die SIM-Karte ein, die Anzahl der SMS ist bei mir irgendwie immer „1“, egal, ob dort tatsächlich eine SMS vorhanden ist.

    Da insbesondere immer mal wieder SMS des Providers auf das Handy eingehen (Werbe-SMS o.ä., gerade bei erster Inbetriebnahme) empfiehlt sich zunächst ein Löschen aller vorhandenen SMS-Nachrichten mittels

    Code
    gnokii --deletesms SM 1 9

    Dies erzeugt dann folgende Ausgabe:

    Code
    GNOKII Version 0.6.30
    Deleted SMS (location 1 from memory SM)
    Deleted SMS (location 2 from memory SM)
    Deleted SMS (location 3 from memory SM)
    Deleted SMS (location 4 from memory SM)
    Deleted SMS (location 5 from memory SM)
    Deleted SMS (location 6 from memory SM)
    Deleted SMS (location 7 from memory SM)
    Deleted SMS (location 8 from memory SM)
    Deleted SMS (location 9 from memory SM)

    "SM" steht dabei im Kommando für den Speicherplatz der SIM-Karte (siehe drei Code-Boxen weiter oben). Will man Daten aus dem internen Speicher löschen, würde man statt "SM" hier "ME" nehmen.

    Gnokii verwende ich dann in meinem Aufbau so, dass ich mit dem nachfolgenden Script gnokii nach eingegangenen SMS in einer Endlosschleife sehen lasse.

    Ich habe hier Sicherheitsmechanismen in der Form eingebaut, als dass der Absender der SMS berechtigt sein muss, Befehle zu übersenden. Andernfalls schreibt das Script den „Eindringling“ in eine Datei hinein und führt den Befehl nicht aus. Sollte ein dem Script bekannter Befehl übermittelt worden sein, schreibt er dieses in eine Textdatei hinein. Die weitere Verarbeitung dieser Textdatei erfolgt dann im nächsten Schritt.

    Name des Scripts: smscommand.sh


    Schritt 4: Herunterladen, Kompilieren und Installieren des mjpg_streamer_experimental

    Nun ist es an der Zeit, die Version des mjpg_streamer_experimental-Paketes von jacksonliam herunterzuladen und zu installieren. Diese Version enthält ein Plugin mit dem Namen

    Code
    input_raspicam.so

    über welches es möglich ist, das Raspberry Pi Kameramodul direkt anzusprechen.

    Zunächst wechseln wir in das Home-Verzeichnis des Raspberry Pi-Benutzers pi und klonen dann das Git-Repository:

    Code
    cd ~
    git clone https://github.com/jacksonliam/mjpg-streamer.git

    Nun wechseln wir in das Verzeichnis:

    Code
    cd mjpg-streamer/mjpg-streamer-experimental/

    Das Kommando in der nun folgenden Code-Box ist optional. Sollte man später mit dem mjpg_streamer auch aus einer Datei lesen (auf die althergebrachte Art mittels des Aufrufs von raspistill in einer Schleife und dem Schreiben in eine temporäre jpg-Datei) und so einen Stream erzeugen wollen, bearbeitet man mittels eines Editors seiner Wahl das Makefile und entfernt die # vor der folgenden Zeile:

    Code
    # Öffnen des Makefiles (hier mittels des Editors vi)
    vi Makefile
    
    
    # In der nun folgenden Zeile die # entfernen vor dem Wort PLUGINS
    #PLUGINS += input_file.so

    Danach speichert man das Makefile ab. Der optionale Schritt ist nun beendet und es geht weiter mit dem Kompilieren der Quellen:

    Code
    make
    sudo make install

    Installiert wird der mjpg_streamer unter

    Code
    /usr/local/bin

    Die Plugins sind hier zu finden:

    Code
    /usr/local/lib/

    Ist das Raspberry Pi Kameramodul bereits angeschlossen, kann man nun mittels folgenden Scripts einen ersten Testlauf machen, welches wir später weiter verwenden werden:

    Name des Scripts: start_mjpg_streamer.sh

    Bash
    #!/bin/bash
    
    
    export LD_LIBRARY_PATH="/usr/lib"
    mjpg_streamer -i "input_raspicam.so -d 0 -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/www"
    exit 0

    Hinter dem Schalter "-x" verbirgt sich die Breite und hinter dem Schalter "-y" die Höhe. Auf Port 8080 wird dann lokal ein Serverdienst gestartet, auf dem man den Stream betrachten kann.

    Um nun zu schauen, ob es funktioniert hat, öffnet man den Browser seines Vertrauens und gibt folgende Zeile in die URL-Leiste ein:

    Code
    http://IP-ADRESSE-DES-RASPBERRY-PIS:8080/?action=stream

    Nun ändert man noch den Benutzer, dem diese Anwendung gehören soll. Ich benötige das, da ich alle meine Scripte als Benutzer pi laufen lasse und es ansonsten beim Killen der Prozesse später bei mir zu Problemen kommt.

    Code
    cd /usr/local/bin
    sudo chown pi.pi mjpg_streamer


    Schritt 5: Konfigurieren von motion zur Bewegungserkennung

    Nach der Installation ist die Konfigurationsdatei von motion in folgendem Pfad zu finden:

    Code
    /etc/motion/motion.conf

    Da die Datei dem Benutzer root gehört und man auch als unterprivilegierter Nutzer mittels des Schalters „-c“ eine Konfigurationsdatei übergeben kann, wechseln wir in unser Heimatverzeichnis und legen den Ordner „.motion“ an. In diesen wird dann eine eigene Kopie der Konfigurationsdatei abgelegt:

    Code
    cd ~
    mkdir .motion
    cd .motion
    sudo cp /etc/motion/motion.conf motion.conf
    sudo chown pi.pi motion.conf

    Da man in Schritt 4 ja das Bild des Raspberry Pi Kameramoduls über den mjpg_streamer im Netzwerk auf Port 8080 streamt, kann man nun mittels eines Editors in die frisch angelegte motion.conf gehen und dort folgende Zeile mit der Netzwerkadresse des Streams einfügen, um dort Bewegung erkennen zu lassen:

    Code
    netcam_url http://IP-ADRESSE-DES-RASPBERRY-PIS:8080/?action=stream

    In der Konfigurationsdatei sind diverse Parameter einstellbar. Das Programm ist relativ komplex und es wird einige eigene Konfigurationsversuche kosten, bis man für sich selbst eine gute Einstellung gefunden hat.

    Ich selbst habe die Höhe und Weite auf die Größen eingestellt, die ich auch beim Netzwerkstream benutze:

    Code
    width 640
    height 480

    Als Framerate nutze ich dabei folgende Rate:

    Code
    framerate 30

    Nützlich finde ich auch die Locate-Einstellung, mit der motion einen Rahmen um den Bereich zieht, in dem es eine Bewegung (= eine Veränderung der Pixel im Vergleich zum vorherigen Bild) wahrgenommen hat:

    Code
    locate on

    Mit der Einstellung target_dir legt man fest, wo die Bilder,die motion aufnimmt,abgespeichert werden sollen. Ich habe das so gemacht:

    Code
    target_dir /home/pi/Desktop/Observer/Fotos_Observer

    Schlussendlich möchte ich zur Konfigurationsdatei von motion noch folgende Einstellung ansprechen:

    Code
    threshold 1500

    Threshold ist die Anzahl der Pixel, die sich im Vergleich zum vorherigen Bild verändert hat und die die Bewegungserkennung auslöst. Hier kommt es drauf an, was man überwachen möchte. Deshalb erwähnte ich eingangs das eigene Herumprobieren mit den Einstellungen.

    Für den Bereich meiner Eingangstür ist der obige Wert sehr gut, da bei geringster Bewegung der Tür die Kamera aufzeichnet. Dieser Wert wird wahrscheinlich aber jemanden, der Naturszenen beobachtet, nicht glücklich machen, weil beim geringsten Windstoß gegen einen Grashalm die Bewegungserkennung anschlägt.

    Hier könnten dann mit so einem Wert Einstellungen wie mask_file oder area_detect helfen, da hiermit bestimmte Bereiche festgelegt werden können, in denen nach Bewegung geschaut werden soll. Da ich dies aber nicht verwende, erwähne ich es auch nur am Rand.

    Hier noch einmal meine komplette Config-Datei:


    Schritt 5: Anlegen eines Verzeichnisses für die Überwachungs-Scripte

    Vom Prinzip her ist man an dieser Stelle bereits in der Lage, über das Raspberry Pi Kameramodul, den mjpg_streamer und motion Bereiche zu überwachen und Bewegungen zu erkennen und aufzuzeichnen.

    Um diese ganzen Dinge automatisiert und SMS-gesteuert durchführen zu können, werden aber noch Scripte benötigt, die ich im Folgenden posten werde. Ich verwende als Ordner für meine Scripte den folgenden Pfad, den ich so angelegt habe:

    Code
    cd ~/Desktop
    mkdir Observer
    mkdir Observer/Fotos_Observer

    Den Desktop habe ich hier gewählt, weil ich am Raspberry Pi ausschließlich über Konsole arbeite und ich den Ordner sonst immer so überflüssig fand. Naja, Spass beiseite.

    In den Pfad /home/pi/Desktop/Observer sollten dann alle bisherigen Scripte, also smscommand.sh und start_mjpg_streamer.sh kopiert werden.

    Nun folgt die Erstellung des Herzstücks in diesem Ordner. Hierbei handelt es sich um das Script observer.sh.

    Name des Scripts: observer.sh

    Das Script prüft die Meldungen des Scripts smscommand.sh und reagiert entsprechend auf die Kommandos.

    Im Falle einer SMS mit dem Kommando „Einschalten“ wird das Script start_mjpg_streamer.sh in einer Screen-Konsole gestartet. Etwas zeitverzögert wird ebenfalls in einer Screen-Konsole die Bewegungserkennung motion mit dem Schalter „-c“ und der in Schritt 5 angelegten motion.conf übergeben und gestartet.

    Danach prüft das Script weiter auf neu eingegangene SMS. Wird ein „Einschalten“-Kommando versendet und ist der Observer schon gestartet worden, passiert nichts.

    Wird das „Ausschalten“-Kommando versendet, werden die Prozesse, die für den Netzwerkstream und die Bewegungserkennung verantwortlich sind, gekillt.

    Wie bei einem doppelten "Einschalten"-Kommando passiert auch nichts, wenn zweimal hintereinander eine SMS eingeht, die "Ausschalten" befiehlt.

    Über die Screen-Konsole und deren Befehle gibt es hier einen schönen Artikel.


    Schritt 7: Anlegen eines start-Scripts, welches die einzelnen Scripte bei einem Neustart automatisch ausführt

    Damit man nach einem Neustart des Raspberry Pis sicher sein kann, dass die Überwachungsinstallation auch einsatzbereit ist und auf den Eingang von SMS-Befehlen wartet, habe ich ein start-Script geschrieben und hier einen tollen Beitrag gefunden, mit welchem man diesen Vorhaben realisieren kann.

    Name des Scripts: start.sh

    Bash
    #!/bin/bash
    
    
    touch /home/pi/smscommand.txt
    screen -S smscommand -d -m bash /home/pi/Desktop/Observer/smscommand.sh
    screen -S observer -d -m bash /home/pi/Desktop/Observer/observer.sh

    Mit

    Code
    chmod +x start.sh

    machen wir das Script ausführbar.

    Aus dem erwähnten Beitrag zitierend legt man mit root-Rechten in folgender Datei ein Kommando an:

    Code
    # Öffnen der Datei rc.local mit einem Editor
    sudo vi /etc/rc.local
    
    
    # Einfügen der folgenden Zeile
    su pi -c "/home/pi/Desktop/Observer/start.sh &"

    Diese Zeile unbedingt (!!) vor

    Code
    exit 0

    in dieser Datei eingeben.

    Nach dem Start des Raspberry Pis startet start.sh das Script smscommand.sh und observer.sh in Screen-Konsolen und die Überwachungsinstallation ist einsatzbereit.

    Vorläufiges Schlusswort

    So, ich hoffe, dass ich keine Fehler bei der Darstellung meines Projektes gemacht habe und es auch einigen Nutzern hier im Forum etwas bringt. Ein Feedback wäre nett, da ich die Arbeitsschritte von oben retrograd alle aus dem Kopf nachvollzogen habe. Deswegen dient dieser Beitrag auch ein bißchen meiner Dokumentation. Schritt 8, das Realisieren einer Verschlüsselung und das Versenden über das Internet zu einem externen Server, liefere ich definitiv nach, ebenso Bilder vom Aufbau. Allerdings hab ich jetzt im Moment eine Schreibblockade. :D

    Ich freue mich auf eure konstruktive Kritik und Verbesserungsvorschläge. Bin ja noch ein Anfänger und möchte lernen.

    Vielen Dank für die Aufmerksamkeit, sollte es Leser geben, die es bis hierher geschafft haben.

    Einmal editiert, zuletzt von inth3sh4dows (14. September 2013 um 17:31)

  • Bewegungserkennung mit dem Raspberry Camera Modul und motion? Schau mal ob du hier fündig wirst!

  • i like ^^

    Freu mich schon drauf und den Bewegeungserkennungspart werd ich klauen ^^ :)

    Ich werds wohl per Dropbox und email schicken machen anstelle von Sms.
    MfG

  • Hi inth:
    Super Sache! Und echt gut erklärt muss ich sagen. Danke für deine Mühen :danke_ATDE:
    Ich habe dennoch ein kleines Problemchen:

    Ich bin jetzt mal bei dem Punkt angelangt, wo der Stream im Browser getestet werden soll.

    Code
    http://IP-ADRESSE-DES-RASPBERRY-PIS:8080/?action=stream


    Nach dem Ausführen von "[font="Tahoma, Verdana, Arial, sans-serif"]start_mjpg_streamer.sh" wird die Kamera auch aktiviert und in der Shell bekomme ich[/font]

    Code
    100 frames captured in 31.723556 seconds (3.152232 fps)

    [font="Tahoma, Verdana, Arial, sans-serif"]usw ... sieht doch soweit ganz gut aus.[/font]
    [font="Tahoma, Verdana, Arial, sans-serif"]Wenn ich jedoch meinen Chrome-Browser öffne und oben angegeben Link (natürlich mit meiner IP) eingebe, wird nichts dargestellt :( Im IE versucht er hingegen etwas downzuloaden ... es wird aber nichts dargestellt. Hast du ne Idee?[/font]

    EDIT: Im Firefox funktioniert es ... warum in Chrome nicht? :(

    Einmal editiert, zuletzt von gondman (1. Oktober 2013 um 08:05)

  • Hallo zusammen.

    @indes394

    Ich war in den letzten drei Wochen zwei Wochen auf einem beruflichen Lehrgang und eine Woche im Urlaub, die Fotos folgen demnächst. :)

    gondman

    Das kann ich dir leider auch nicht beantworten, ich habe es tatsächlich nur mit dem Firefox ausprobiert, weil ich den auch so nutze. Dass es mit dem Chrome nicht klappt, wundert mich ehrlich gesagt schon (beim IE dagegen überhaupt nicht ;) ). Vielleicht hat ja noch jemand anders eine Erklärung dafür.


    Grüße

    inth3sh4dows

  • hallo zusammen!

    erstmal vielen dank für das tutorial -> hat mir sehr weitergeholfen.

    ich hänge jedoch an folgendem problem:

    den stream der cam kann ich wie beschrieben anschauen (browser/vlc)

    sobald ich motion starte, meldet mir motion daß es keine kamera finden kann.

    ich habs schon uv4l sowie der modifizierten motion-mmal versucht, alles ohne erfolg.

    die logfiles geben auch keinen aufschluß darüber was fehlt.

    in der motion.conf hab ich mehrfach alles überprüft -> es sollte alles stimmen.

    ich komm leider nicht weiter, vielleicht hat jemand eine idee!?


    danke schonmal!

    pataim

  • Hi,
    vielen Dank für die Anleitung. Bei mir hat dank einiger Unix Kenntnisse alles geklappt.
    Ich nutze keine SMS Features und habe es ohne ans Laufen gebracht.

    Wo finde ich die Upload Funktion für geschossene Bilder auf meinen Server per https/ftps...hatte das so verstanden, das du das auch machen wolltest? (bastel grad selbst noch :D)


    Allerdings waren zwei Sachen bei mir nicht genau so.
    Du hast den Pfad zu den Plugins richtig beschrieben, allerdings sind diese im start_mjpg_streamer.sh nicht korrekt...?

    Code
    export LD_LIBRARY_PATH="/usr/local/lib"


    (siehe unten)


    Außerdem hat bei mir die Option -d 0 in der mjpg_streamer Zeile einen Fehler hervorgerufen, da es diese Option wohl nicht zu geben scheint....?

    Gruß
    Basti


    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    Die Plugins sind hier zu finden:

    Code: Alles markieren

    Code
    /usr/local/lib/

    Ist das Raspberry Pi Kameramodul bereits angeschlossen, kann man nun mittels folgenden Scripts einen ersten Testlauf machen, welches wir später weiter verwenden werden:

    Name des Scripts: start_mjpg_streamer.sh

    Code: Alles markieren

    Einmal editiert, zuletzt von bibA (20. November 2013 um 14:03)


  • Also bei mir sagt er, dass er auf eine Kamera wartet, wenn ich keine gute Auflösung gewählt habe....ist in einer Zeile auch beschrieben wenn man motion startet.

    Sowas wie "height (1234) is not modulo 16"....
    und dann schreibt er mir immer raus, dass er auf eine Kamera wartet.
    Also einfach eine andere native Auflösung wählen (das hats bei mir gebracht)

  • Hab den mjpg_streamer jetzt nach der Anleitung installiert und nach dem Anpassen des Library-Pfads startet er auch. Wenn ich im Browser die Adresse des Pi eingebe bekomme ich aber nur eine 404-Fehlermeldung ... o_o.
    Hat jemand denselben Effekt und eine Lösung dafür?

    Gruß
    Kurt


  • Hab den mjpg_streamer jetzt nach der Anleitung installiert und nach dem Anpassen des Library-Pfads startet er auch. Wenn ich im Browser die Adresse des Pi eingebe bekomme ich aber nur eine 404-Fehlermeldung ... o_o.
    Hat jemand denselben Effekt und eine Lösung dafür?

    Gruß
    Kurt


    Sieht dien Streaeming Script genau so aus?
    Ich musste auch "-d 0" entfernen, da er sonst nur in einen Fehler läuft und nichts tut.

    Einmal editiert, zuletzt von bibA (22. November 2013 um 09:37)

  • Mmh, kann ich mir kaum vorstellen, weil es bei mir das Verzeichnis nicht einmal gibt.

    Aber hast du vielleicht mal ein wenig Code, welchen man zur Fehlersuche nutzen könnte?

  • Der Code steht oben. Ich habe mjpg_streamer nach Anleitung runtergeladen, compiliert und installiert. Danach das Script bearbeitet ("-d 0" entfernt) und gestartet. Mjpg_streamer startet, aber wenn ich im Browser "http://ip-des-raspberry:8080" eingebe bekomme ich nur eine 404-Fehlermeldung.
    Da gibts halt nicht soviel Code zum Posten... ;-).

    Momentan hab ich keine Zeit, danach zu schauen, aber heute Abend schau ich mal, ob irgendwelche Logfiles was ergeben und dann könnte ich noch die Ausgabe vom mjpg_streamer aus der Konsole posten. Mehr fällt mir da zurzeit nicht ein :s...


    Gruß
    Kurt

  • Hallo,

    ich würde mich gerne diesem Thema mit anschließen.

    meine Konfiguration ist äquivalent zu den obigen Antworten:

    -> Anleitung bis einschließlich Schritt 3 erfolgreich abgeschlossen
    -> -d 0 entfernt
    -> /local/ wurde eingefügt

    -> webseitenaufruf IP:8080/?action=stream FEHLGESCHLAGEN

    Zum Test:
    -> Ordner /usr/www existiert nicht (auch wenn er angelegt wurde keine Besserung)
    -> chmod des Scriptes ([font="Monaco, Consolas, Courier, monospace"]sudo chown pi.pi mjpg_streamer)[/font]gesetzt oder nicht ergibt keine Lösung


    Testlauf (Kamera leuchtet mit roter LED die ganze Zeit)


    Hat jemand eine Idee, warum ich auf der Website kein Bild oder ähnliches angezeigt bekomme?

    Vielen lieben Dank

    Christian

  • Hallo Joschi,

    danke für die schnelle Antwort, Ja ich nutze den Chrome.
    Habe es soeben mit dem FF und dem IExplore getestet, keiner hat mit etwas angezeigt.

    Zusätzlich habe ich ein portscan gemacht und dieser Zeigte an das SSH und 8080 HTTP geöffnet sind.

    Hat noch jemand eine Idee :)

    Danke Christian


  • benutzt du den chrome? teste mal mit Firefox. mein Chrome will leider auch nichts wiedergeben

    mjpg_streamer -i "input_raspicam.so -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/local/www"

    Bei mir funktioniert es mit dem Pfas /usr/local/www

  • mjpg_streamer -i "input_raspicam.so -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/local/www"

    Bei mir funktioniert es mit dem Pfas /usr/local/www

    Hallo Bensberg,

    genau das Funktioniert!
    im Chrome wird nichts angezeigt.
    Der Firefox funktioniert damit. IExplore leider nicht.

    Hat jemand eine Idee warum dies nicht richtig im Chrome angezeigt wird?
    was ich prinzipiell schade finde - da ich den gerne Nutze.

    Der aktuelle Code der start_mjpg_streamer.sh:

    Bash
    #!/bin/bash
    
    
    export LD_LIBRARY_PATH="/usr/local/lib"
    mjpg_streamer -i "input_raspicam.so -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/local/www"
    exit 0


    Vielen Dank!
    ich werde das Tutorial nun weiter machen, und entsprechend Berichten! Danke

  • So, habe das Tutorial auch durch. Als ich die ganzen Pfade so anpasst wie hier beschrieben, hats bei mir auch funktioniert. Blöde wenn man nur das Tuotial liest und dann nicht das, was drunter geschrieben steht ;) sollte ich mir abgewöhnen alles Fehler selber finden zu müssen ;)

    Aber das motion wollte ums verrecken nicht laufen. Hat mich nen ganzen Tag gekostet und das obwohl es mit ner USB und 2 IP Cams auf einem anderen Raspi seid Tagen gut durchläuft..... da gings einigermassen flott von der Hand. Aber mit der PI Cam wollte es ums verecken nicht laufen.

    Egal, ich habe folgendes Script gefunden, das ganz ohne Motion funktioniert, der Nachteil man zeichnet einen dauernden Stream auf ,immer 10 Minuten Filmchen, dann startet das Script wieder einen neuen.
    Für meine Anwendung spielt das keine Rolle, da ich eh auf ne exteren Platte streame.

    Für die von euch, die nicht mit motion rummeln wollen, empfehle ich folgenden Link:

    JanKarres

    Gruß Jürgen

  • Habe mir das ganze auch mal installiert mit dem Kamera-Modul für den Raspberry. Der
    Stream funktioniert auch ganz hervorragend, kann ihn mir im Browser ansehen mit
    http://192.168.178.35:8080?action=stream
    Allerdings funktioniert das nicht mit motion, ich bekomme immer den Fehler
    Invalid netcam_url (http://192.168.178.35:8080?action=stream)
    hat da jemand eine Idee was das sein könnte, das Internet gibt hierzu nicht
    besonders viel her.

    ... hat sich erledigt, es funktioniert jetzt. Ich habe einfach die ausgelieferte motion.conf
    durch die hier im Thread reingestellt ersetzt.

    Einmal editiert, zuletzt von gschoen57 (4. Februar 2014 um 20:34)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!