Installation des mjpg-streamer.

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    Da in jedem Forum ein paar Regeln eingehalten werden müssen, möchte ich diese auch vorher hier festlegen und niederschreiben. Die grundsätzliche Netiquette setze ich bei Jedem voraus. Darüber hinaus möchte ich nur spezielle Regeln ansprechen:
    - Unterlasse FullQuote sondern nutze Alternativen wie Inline-Quoting
    -> siehe auch https://de.wikipedia.org/wiki/Fullquote vs. https://de.wikipedia.org/wiki/TOFU#Alternativen_zu_TOFU
    - Unterlasse nichtssagende Antworten wie "Danke" oder "werde ich mal testen" oder ähnliches, sofern Du nicht der Threadersteller bist und einen Lösungsvorschlag angeboten bekommen hast.
    - Vermeide Doppel-Posts (zwei Beiträge von Dir hintereinander) sondern editiere wenn möglich Deine Posts.

    Danke...

    • 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.
      Files
    • schlaxel wrote:

      Das bewirkt, dass die Datei grün wird (und somit - vermute ich - ausführbar).
      Genau. Dadurch wird die Datei für jeden ausführbar.

      schlaxel wrote:

      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 Source Code

      1. Stopping mjpg-streamer...
      2. Starting mjpg-streamer...
      Sonst eventuell die Zeile 19 temporär abändern, dass die Ausgabe nicht umgeleitet werden

      Brainfuck Source Code

      1. /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
      --
      Wer nicht gekennzeichnete Rechtschreibfehler findet darf sie gerne behalten.
    • Okay, ich habe jetzt eine Fehlermeldung bekommen, nachdem ich die Datei wie du beschrieben hast temporär geändert habe:

      Shell-Script

      1. MJPG Streamer Version: svn rev: 3:172M
      2. ERROR: could not find output plugin output_http.so
      3. Perhaps you want to adjust the search path with:
      4. # export LD_LIBRARY_PATH=/path/to/plugin/folder
      5. dlopen: output_http.so: cannot open shared object file: No such file or directory
      Habe das Problem gegoogelt und folgendes gefunden: wiki.ubuntuusers.de/MJPG-Strea…-find-input-output-plugin

      wiki.ubuntuusers.de wrote:

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

      Shell-Script

      1. sudo find / -name "output_http.so"

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

      HTH
      --
      Wer nicht gekennzeichnete Rechtschreibfehler findet darf sie gerne behalten.
    • 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.
      Gruß
      Wal

      Kaum macht man es richtig, funktioniert es auch !
    • 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).

      korky2 wrote:

      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.

      Shell-Script

      1. 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:

      Shell-Script

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

      Shell-Script

      1. sudo service mjpg_streamer status
      2. ● mjpg_streamer.service - LSB: MJPG_Streamer_autostart
      3. Loaded: loaded (/etc/init.d/mjpg_streamer; generated; vendor preset: enabled)
      4. Active: active (exited) since Fri 2019-02-15 22:50:14 CET; 54s ago
      5. Docs: man:systemd-sysv-generator(8)
      6. Process: 243 ExecStart=/etc/init.d/mjpg_streamer start (code=exited, status=0/SUCCESS)
      7. CGroup: /system.slice/mjpg_streamer.service
      8. Feb 15 22:50:14 raspberrypi systemd[1]: Starting LSB: MJPG_Streamer_autostart...
      9. Feb 15 22:50:14 raspberrypi systemd[1]: Started LSB: MJPG_Streamer_autostart.

      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
    • Brainfuck Source Code

      1. doorpi@raspberrypi:~ $ sudo service mjpg_streamer status
      2. ● mjpg_streamer.service - LSB: MJPG_Streamer_autostart
      3. Loaded: loaded (/etc/init.d/mjpg_streamer; generated; vendor preset: enabled)
      4. Active: active (running) since Sat 2019-02-09 11:21:27 CET; 6 days ago
      5. Docs: man:systemd-sysv-generator(8)
      6. Process: 397 ExecStart=/etc/init.d/mjpg_streamer start (code=exited, status=0/SUCCESS)
      7. CGroup: /system.slice/mjpg_streamer.service
      8. └─450 /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
      9. Feb 09 11:21:28 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: Frames Per Second.: 10
      10. Feb 09 11:21:28 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: Format............: JPEG
      11. Feb 09 11:21:28 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: TV-Norm...........: DEFAULT
      12. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: www-folder-path......: /usr/local/www/
      13. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: HTTP TCP port........: 9000
      14. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: HTTP Listen Address..: (null)
      15. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: username:password....: disabled
      16. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: commands.............: enabled
      17. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: starting input plugin /usr/local/lib/mjpg-streamer/input_uvc.so
      18. Feb 09 11:23:10 raspberrypi mjpg_streamer[450]: MJPG-streamer [450]: starting output plugin: /usr/local/lib/mjpg-streamer/output_http.so (ID: 00)
      Display All
      mjpg_streamer:

      Shell-Script

      1. #!/bin/sh
      2. # /etc/init.d/mjpg_streamer
      3. ### BEGIN INIT INFO
      4. # Provides: mjpg_streamer
      5. # Required-Start: $all
      6. # Required-Stop: $all
      7. # Default-Start: 2 3 4 5
      8. # Default-Stop: 0 1 6
      9. # Short-Description: MJPG_Streamer_autostart
      10. ### END INIT INFO
      11. start()
      12. {
      13. modprobe bcm2835-v4l2
      14. sleep:2
      15. echo "Starting mjpg-streamer..."
      16. /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$
      17. # /usr/local/bin/mjpg_streamer -i /usr/local/lib/mjpg-streamer/input_uvc.so -n -f 10 -r 1024x576 -o /usr/local/lib/mjpg-streamer/output_http.so -p 9000 -w /usr/$
      18. }
      19. stop()
      20. {
      21. echo "Stopping mjpg-streamer..."
      22. kill -9 $(pidof mjpg_streamer) >/dev/null 2>&1
      23. }
      24. case "$1" in
      25. start)
      26. start
      27. ;;
      28. stop)
      29. stop
      30. ;;
      31. restart)
      32. stop
      33. start
      34. ;;
      35. *)
      36. echo "Usage: $0 {start|stop|restart}"
      37. ;;
      38. esac
      39. exit 0
      Display All
      Gruß
      Wal

      Kaum macht man es richtig, funktioniert es auch !
    • Kurzes Update meinerseits:

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

      Die Zeile sieht jetzt folgendermaßen aus:

      Shell-Script

      1. 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!