Installation des mjpg-streamer.

  • Zunächst mal danke für die schnelle Antwort.


    Ja, die Datei ist vorhanden. Allerdings fällt mir auf, dass die mjpg_streamer Datei im Terminal als einzige weiß dargestellt wird. (Siehe Anhang)
    Hat das eventuell mit den Dateirechten zu tun? Diese sehen aus, wie folgt:
    -rw-r--r-- 1 root root 814 Feb 11 23:42 /etc/init.d/mjpg_streamer


    Der Inhalt der Datei sieht soweit eigentlich gut aus. Habe das ganze über nano im Terminal eingefügt.


  • Das bewirkt, dass die Datei grün wird (und somit - vermute ich - ausführbar). Die Dateirechte sehen dann zumindest gleich aus, wie die anderen.


    Wenn ich dann allerdings sudo update-rc.d mjpg_streamer defaults und anschließend sudo service mjpg_streamer start ausführe passiert gar nichts. Der Server wird nicht gestartet, ich bekomme nun allerdings auch keine Fehlermeldung, wie bisher.
    Ich vermute mal, weil mjpg_streamer.service jetzt existiert, nur wohl eben fehlerhaft.


    Spricht also evtl. dafür, dass die Datei irgendwie fehlerhaft ist. Wie finde ich das denn am besten heraus?
    Ich habe sie mal angehängt (und dafür in eine .txt umgewandelt).


    Habe außerdem mal die Datei von "osu" (von Seite 1 dieses Threads) ausprobiert, leider ebenso ohne Erfolg.

  • Das bewirkt, dass die Datei grün wird (und somit - vermute ich - ausführbar).

    Genau. Dadurch wird die Datei für jeden ausführbar.


    Wenn ich dann allerdings sudo update-rc.d mjpg_streamer defaults und anschließend sudo service mjpg_streamer start ausführe passiert gar nichts. Der Server wird nicht gestartet, ich bekomme nun allerdings auch keine Fehlermeldung, wie bisher.

    Sicher, dass der Dienst nicht gestartet ist?
    Bei mir kommt da auch keine Ausgabe.
    Ich bin ja noch vom "alten Schlag" und benutze noch die SysV-Syntax (z.B. sudo /etc/init.d/mjpg_streamer restart). Da kommt aber auch nur:

    Brainfuck
    Stopping mjpg-streamer...
    Starting mjpg-streamer...

    Sonst eventuell die Zeile 19 temporär abändern, dass die Ausgabe nicht umgeleitet werden

    Brainfuck
    /usr/local/bin/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 1024x768 -f 24 –q 80" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 9000" &

    Danach bringt ein sudo /etc/init.d/mjpg_streamer restart ungefähr die gleiche Meldungen, wie beim Hand starten. Bzw, wenn etwas falsch ist, die entsprechende Fehlermeldung.


    Wenn es denn läuft, dann wieder zurück ändern und noch sudo systemctl daemon-reload ausführen, damit systemd den Service wieder richtig verarbeiten kann.


    HTH

  • Okay, ich habe jetzt eine Fehlermeldung bekommen, nachdem ich die Datei wie du beschrieben hast temporär geändert habe:


    Bash
    MJPG Streamer Version: svn rev: 3:172M
    ERROR: could not find output plugin output_http.so
           Perhaps you want to adjust the search path with:
           # export LD_LIBRARY_PATH=/path/to/plugin/folder
           dlopen: output_http.so: cannot open shared object file: No such file or directory

    Habe das Problem gegoogelt und folgendes gefunden: https://wiki.ubuntuusers.de/MJ…-find-input-output-plugin

    ...liegt das daran, dass ihr Verzeichnis nicht in der Umgebungsvariable LD_LIBRARY_PATH steht. Die Plugins werden nach /usr/local/lib installiert, demnach wird vor der Ausführung von MJPG-streamer folgender Befehl benötigt:



    export LD_LIBRARY_PATH=/usr/local/lib 


    Habe das ausprobiert, aber es funktioniert noch immer nicht.


    Edit: Oder wie genau soll ich das export LD_LIBRARY_PATH=/usr/local/lib  verwenden?

  • Du hattest es doch es Manuell am Laufen. Oder?
    Kannst du mal die Zeile komplett schreiben?


    Weil rein theoretisch wird der komplette Pfad für das Output-Plugin angegeben (/usr/local/lib/output_http.so).
    Brainstorming: Den ersten Schrägstrich vergessen? Der muss innerhalb der Anführungsstrichen sein ... -o "/usr/ ...


    Durch die Zeile/Befehl export LD_LIBRARY_PATH=/usr/local/lib wird eine Umgebungsvariable gesetzt.
    Bei mir gibt es die nicht. Was nichts heißen soll.


    Du kannst die Zeile im Start-Skript einfügen. Aber ob das was bringt?
    (Vor die lange Zeile 19)


    Sonst bliebe noch nach der Datei output_http.so zu suchen:


    Bash
    sudo find / -name "output_http.so"


    So wird das ganze Dateisystem nach der Datei durchsucht und angezeigt, wo die Datei/en liegen.


    HTH

  • Du kannst die Pfade direkt in der mjpg_streamer setzen. Du musst nur schauen ob sie auch da sind.


    /usr/local/bin/mjpg_streamer -i "/usr/local/lib/mjpg-streamer/input_uvc.so -n -f 10 -r 640x480" -o "/usr/local/lib/mjpg-streamer/output_http.so -p 9000 -w /usr/local/www" >/dev/null 2>&1 &


    bei mir sind sie unter /usr/local/lib/mjpg-streamer/


    Upss, es war einer schneller.

  • Ich hab mich heute erst wieder intensiver mit dem Thema auseinandersetzen können. Ich habe heute sehr viel ausprobiert, bekomme es aber einfach nicht zum laufen (bzw. autostarten).

    Du hattest es doch es Manuell am Laufen. Oder?
    Kannst du mal die Zeile komplett schreiben?

    Wenn ich folgenden Code ausführe, startet der mjpg-streamer ohne Probleme und ich kann den Stream über den Server (im Browser) abrufen.

    Bash
    mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 1024x768 -f 24 –q 80" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 9000"


    So sieht die Zeile in der autostart aus, um die es wohl geht:

    Bash
    /usr/local/lib/mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 1024x768 -f 24 –q 80" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 9000" >/dev/null 2>&1 &

    Die Dateien befinden sich alle dort, wo sie laut dieser Zeile eigentlich sein sollten. Habe ich nun sehr, sehr oft gecheckt.
    Interessant ist, wenn ich sudo service mjpg_streamer status eingebe, kommt folgende Nachricht. Ich meine das sollte bei funktionierendem Skript anders aussehen:


    Wenn ich sudo /etc/init.d/mjpg_streamer restart ausführe kommt übrigens gar keine Meldung. Auch nicht, wenn ich die Datei so anpasse, dass sie im Debugmodus (ohne '>/dev/null 2>&1') ausgeführt wird. (Ich glaube da habe ich in Post 26 einen Fehler gemacht. Diese Fehlermeldung bekomme ich nur, wenn ich sudo mjpg_streamer restart ausführe.


    Danke auf jeden Fall schonmal für all eure Antworten bislang. Vielleicht hat ja jemand von euch noch eine Idee, ich werde auf jeden Fall weiter "kämpfen" :D

  • mjpg_streamer:

  • Kurzes Update meinerseits:


    Es funktioniert jetzt. Habe sehr viel rumprobiert und letztendlich entdeckt, weshalb es nicht funktionierte.


    Die Zeile sieht jetzt folgendermaßen aus:


    Bash
    mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -r 1024x576" -o "/usr/local/lib/output_http.so  -p 9000 -w /usr/local/www" >> /var/log/mjpg_streamer_upstart.log 2>&1

    Also nur mjpg_streamer -i anstatt /usr/local/bin/mjpg_streamer -i.


    Ich weiß ehrlich gesagt nicht, weshalb es so (ohne den Pfad) funktioniert, aber es funktioniert.


    Vielen Dank @korky2 und @Wal ihr wart mir eine große Hilfe!

  • Hallo
    ich hab das gleiche Problem wie Manipi aus Beitrag 7


    patch: **** malformed patch at line 17: @@ -418,8 +422,6 @@


    Ich nutze Raspbian Buster lite, Installation hat bis zum Patch funktioniert. Die Patchdatei hab ich überprüft, Inhalt ist korrekt.


    Als Neueinsteiger weiss ich nicht wo ich ansetzen muss. Deshalb bitte ich um Hilfe

  • Hallo,


    ich bin dabei DoorPi auf Basis "Rasbian Buster" (nicht -lite) neu aufzusetzen.
    DoorPi läuft aber ich bekomme einfach die Installation des MJPG-Streamers nicht hin.
    Ich habe mich an die Anleitung von NEA gehalten und bis inklusive
    patch -p0 < input_uvc_patch
    funktioniert es auch
    aber nach Eingabe von
    make USE_LIBV4L2=true clean all
    kommt diese Meldung



    Ich habe mal Google kontaktiert und dort wurde von ähnlichen Fehlern in anderen Anwendungen gesprochen,
    weil wohl mit dem neuen Kernel von Buster die Strukturen
    struct statx_timestamp
    und
    struct statx
    bereits inkludiert sind und es dadurch zu einem Doppelimport/Aufruf kommt.


    Wenn ich den Fehler einfach hinnehme sieht es bei
    sudo make DESTDIR=/usr/local install
    folgendermaßen aus



    Die Eingabe von
    CD
    sudo modprobe bcm2835-v4l2
    ergeben keine Info aber das Ergebnis von
    mjpg_streamer -i "/usr/local/lib/input_uvc.so -d /dev/video0 -n -r 1024x768 -f 24 –q 80" -o "/usr/local/lib/output_http.so -n -w /usr/local/www -p 9000"


    ist


    Kann mir jemand helfen.
    Die Ausgabe als JPG ist mir mit einer Installation einer älteren/Testversion von MJPG-Steamer gelungen
    aber ich brauche den MJPG-Stream.


    Danke für eure Hilfe

  • Da ich dachte es hängt mit Raspbian Buster zusammen, hab ich zusätzlich Raspbian Stretch Lite eingerichtet.


    Ich hab leider den gleichen Fehler in Zeile 17 beim patch.


    Entweder wurden durch update/upgrade/dist-upgrade Teile geladen, die den gleichen Fehler zur Folge haben oder es ist bei mir irgendein prinzipielles Problem.


    Übrigens wurde sowohl unter Buster als auch Stretch eine Version 182 angegeben.


    Wer hat einen Rat für mich?

  • Ich habe ja nicht viel Ahnung, aber IMHO muss es, für den Patch, die Version unbedingt die 174 sein.


    Soweit ich das von derSourceforge- Seite lesen konnte, soll man https://github.com/jacksonliam/mjpg-streamer verwenden. Hier wäre nach deren Seite auch kein Patch notwendig.


    Keine Ahnung, ob das unter Buster funktioniert.


    Viele Grüße
    Olaf

  • Gehört jetzt eigentlich nicht in diesen Thread, aber ich kann unter Buster nur die Verwendung des RPi_Cam_Web_Interfaces empfehlen. Läuft bei mir sehr zuverlässig. Unter Jessie und Stretch hatte ich damit aber kürzlich Probleme, so dass ich auf Buster umsteigen musste. Hab die Installation hier beschrieben.

  • Hallo dtp,


    nach inzwischen unzähligen Stunden habe ich mich von MJPG-streamer verabschiedend (zumal eh keine weitere Entwicklung lt. Homepage)
    und deinen Rat befolgt.
    Das RPI-Cam_Interface ist installiert, läuft und sieht gut aus.
    Ich habe allerdings den html-Ordner mit ausgewählt.


    Wie kann ich den Stream nun weiterleiten oder als Datei speichern.
    Es sollen nur Aufnahmen gemacht werden wenn Bewegung erkennbar.




    Danke
    Mike

  • Einen simplen Snapshot des Kamerabilds erhältst du mit


    Code
    http://<IP-Adresse des RPi_Cam_Web_Interfaces>:<freigegebener Port>/cam.jpg


    also z.B. http://192.168.0.21:8181/cam.jpg.


    Schau dir mal meine Shellskript-Beispiele an. Da hole ich mir z.B. einen Screenshot über

    Code
    wget -O /home/pi/Haustürklingel.jpg http://192.168.0.21:8181/cam.jpg

    und schicke ihn mir anschließend per Pushover bzw. Telegram.


    Videostreams sollten sich mit


    Code
    http://<IP-Adresse des RPi_Cam_Web_Interfaces>:<freigegebener Port>/cam_pic_new.php?

    anzeigen lassen.


    Die Bewegungserkennung des RPi_Cam_Web_Interfaces ist zwar gut, aber ich weiß nicht, ob ich das für eine Kamera an der Haustür oder im Briefkasten realisieren würde, weil es vermutlich zu viele Fehlauslösungen geben dürfte. Ich benutze die Bewegungserkennung daher nur für das Innere unseres Briefkastens. Hört sich vielleicht komisch an, funktioniert aber prächtig. Hab das mal hier genauer beschrieben.


    Gruß,


    Thorsten