Raspberry Kamera funktioniert nicht in Docker Containern (Octoprint)

  • Guten Morgen zusammen,


    ich bin mittlerweile am verzweifeln. Über Google und in der Suche habe ich leider keine funktionierende Lösung für mein Problem gefunden. Ich möchte gerne Octoprint im Docker nutzen und dabei auch den mjpg Stream für Zeitraffer-Aufnahmen nutzen. Octoprint läuft ohne Probleme, aber leider bekomme ich den mjpg Stream nicht ans laufen.


    Aber erstmal bei der Ursuppe: Ich nutze ein Raspberry Pi 4 (4GB) mit Raspberry Pi OS Bullseye. Docker und Docker Compose laufen ohne Probleme. Als Kamera habe ich das Raspberry Kameramodul OV5647 mit den zwei IR-LED.


    Über die Konsole kann ich mit libcamera Fotos und Videos erstellen. In der Konsole wird /dev/media2 angezeigt. Das funktioniert nur, wenn der Docker Container mit dem Device nicht läuft. Mit "v4l2-ctl --list-devices" bekomme ich folgende Ausgabe:


    Meine Docker-Compose.yml habe ich aus https://github.com/OctoPrint/o…master/docker-compose.yml übernommen und an mein System angepasst:


    Wenn ich 192.xxx.xxx.xx:8100/webcam/?action=stream eingebe, erscheint ein vollständig schwarzes Browser-Fenster. Bei Port 4000 kommt eine Fehlermeldung "not fround". Wenn ich bei Octoprint /webcam/?action=stream eingebe und teste wird nichts angezeigt:


    Ich habe bereits versucht, den mjpg Streamer extra zu starten. In der gleichen yml-Datei wie Octorpint habe ich den Streamer wie folgt eingefügt. Dabei startet der Container durchgehend neu. Beim Befehl "docker ps" erscheint durchgehend "restarting".

    Daher nun meine Frage, ob jemand eine Idee hat, wie ich den mjpg Streamer ans laufen bekomme? Am liebsten über das octoprint eigene Image. Ansonsten kann ich auch ein anderes Image einrichten. Es sollte aber in einem Container laufen.


    Ich hoffe ich habe alle wichtigen Infos hier angegeben. Vielen Vielen Dank schonmal für eure Hilfe!


    Viele Grüße

    Thomas

    Edited once, last by Warlik ().

  • Go to Best Answer
  • Moin Warlik,


    erstmal: Herzlich Willkommen im Forum!


    Wenn du dich, via Webbrowser, mit dem Octoprint verbindest, sieht man, unter Steuerung, ein Videofenster.

    Ist das bei dir auch so?

    Hast du mal unter Einstellungen/Webcam und Zeitraffer mit den vorhandenen Möglichkeiten gespielt?

    Dann zeige mal das Ergebnis des Befehls ls -l /dev/. Natürlich in der Dockerconsole.


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Hi Bernd,


    vielen Dank schonmal für deine Antwort.


    Bei Steuerung habe ich kein Videofenster. Ich denke mal, weil ich bei "Webcam & Zeitraffer" keine funktionierenden Einstellungen habe. In diesen Einstellungen habe ich einiges rumgespielt. Insbesondere bei Zeitraffer mit IP-Adresse, localhost, verschiedene Ports. Die ganzen Eingaben habe ich auch im Browser versucht ans laufen zu bekommen.


    Das ist die Ausgabe im Docker Container. Du meinst doch, wenn ich mit Docker exec in den Container gehe oder?

    Gruß

    Thomas

    • New
    • Best Answer

    Moin Warlik,


    in https://hub.docker.com/r/octop…webcam-setup-in-octoprint steht folgendes:

    Quote

    You'll also need to add --device /dev/video0:/dev/video0 to your docker run, or ensure it's listed in the devices array in your docker-compose.yml.

    Dann gibt es noch eine Lösung. Aber Vorsicht, er hat nicht genau deine Kamera. Einiges sollte man weglassen.

    Es könnte aber ein Ansatz sein.

    Die Adresse: https://community.octoprint.or…rint-the-docker-way/43951


    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • Post by Warlik ().

    This post was deleted by the author themselves ().
  • Hallo Bernd,


    ich glaub es nicht xD Erst hats mit der Anleitung nicht so ganz hingehauen, weil ich vorher nie ein Image erstellt habe. Aber nach ein bisschen ausprobieren und einfügen, dass entrypoint.sh ausführbar gemacht wird, lief der Container.


    UND: Ich kann den Stream der Raspberry Pi Kamera über den mjpg-streamer aufrufen.


    Vielen Vielen Dank für deine Hilfe. Die Anleitung zum nativen Installieren hatte ich zwar gefunden, aber ich möchte so viel wie möglich in Container packen. Also war die Anleitung, die du mir gegeben hast, genau das richtige :) DANKE!


    Viele Grüße und schönen Abend noch

  • Warlik

    Selected a post as the best answer.