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
    1. # Installation verwendeter Pakete
    2. 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
    1. 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
    1. [ 6.151576] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
    2. [ 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
    1. minicom --setup


    Dort navigiert man mittels der Pfeiltasten zu dem Menüpunkt


    Code
    1. 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
    1. 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
    1. cd ~
    2. mkdir .cache/gnokii/
    3. touch .cache/gnokii/gnokii-errors
    4. 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
    1. #Suche nach dem Dateipfad
    2. 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
    1. /etc/xdg/gnokii


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


    Code
    1. 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
    1. gnokii --identify


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


    Code
    1. GNOKII Version 0.6.30
    2. IMEI : XXXXXXXXXXXXXXX
    3. Hersteller : huawei
    4. Kein Abschnitt flags in der Konfigurationsdatei.
    5. Modell : E160
    6. Produktname: E160
    7. 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
    1. 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
    1. GNOKII Version 0.6.30
    2. Nr. Name Id #Nachrichten
    3. ================================================================
    4. 0 Interner Speicher ME 0
    5. 1 Kombiniertes ME-und SIM-Telefonb MT 0
    6. 2 SIM-Karte SM 1
    7. 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
    1. gnokii --deletesms SM 1 9


    Dies erzeugt dann folgende Ausgabe:


    Code
    1. GNOKII Version 0.6.30
    2. Deleted SMS (location 1 from memory SM)
    3. Deleted SMS (location 2 from memory SM)
    4. Deleted SMS (location 3 from memory SM)
    5. Deleted SMS (location 4 from memory SM)
    6. Deleted SMS (location 5 from memory SM)
    7. Deleted SMS (location 6 from memory SM)
    8. Deleted SMS (location 7 from memory SM)
    9. Deleted SMS (location 8 from memory SM)
    10. 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
    1. 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
    1. cd ~
    2. git clone https://github.com/jacksonliam/mjpg-streamer.git


    Nun wechseln wir in das Verzeichnis:


    Code
    1. 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
    1. # Öffnen des Makefiles (hier mittels des Editors vi)
    2. vi Makefile
    3. # In der nun folgenden Zeile die # entfernen vor dem Wort PLUGINS
    4. #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
    1. make
    2. sudo make install


    Installiert wird der mjpg_streamer unter


    Code
    1. /usr/local/bin


    Die Plugins sind hier zu finden:


    Code
    1. /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


    Shell-Script
    1. #!/bin/bash
    2. export LD_LIBRARY_PATH="/usr/lib"
    3. mjpg_streamer -i "input_raspicam.so -d 0 -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/www"
    4. 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
    1. 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
    1. cd /usr/local/bin
    2. 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
    1. /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
    1. cd ~
    2. mkdir .motion
    3. cd .motion
    4. sudo cp /etc/motion/motion.conf motion.conf
    5. 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
    1. 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
    1. width 640
    2. height 480


    Als Framerate nutze ich dabei folgende Rate:


    Code
    1. 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
    1. 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
    1. target_dir /home/pi/Desktop/Observer/Fotos_Observer


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


    Code
    1. 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
    1. cd ~/Desktop
    2. mkdir Observer
    3. 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


    Shell-Script
    1. #!/bin/bash
    2. touch /home/pi/smscommand.txt
    3. screen -S smscommand -d -m bash /home/pi/Desktop/Observer/smscommand.sh
    4. screen -S observer -d -m bash /home/pi/Desktop/Observer/observer.sh


    Mit


    Code
    1. 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
    1. # Öffnen der Datei rc.local mit einem Editor
    2. sudo vi /etc/rc.local
    3. # Einfügen der folgenden Zeile
    4. su pi -c "/home/pi/Desktop/Observer/start.sh &"


    Diese Zeile unbedingt (!!) vor


    Code
    1. 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 ()

  • 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
    1. 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
    1. 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 ()

  • 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
    1. 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
    1. /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 ()



  • 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 ()

  • Das "-d 0" hatte ich schon entfernt, weil sich der mjpg_streamer damit sofort beendet.
    Ich vermute das Problem liegt evtl. an den Rechten von "/usr/www".


    Gruß
    Kurt

  • 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:

    Shell-Script
    1. #!/bin/bash
    2. export LD_LIBRARY_PATH="/usr/local/lib"
    3. mjpg_streamer -i "input_raspicam.so -ex night -x 640 -y 480" -o "output_http.so -p 8080 -w /usr/local/www"
    4. 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.
    [hr]
    ... 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 ()