Kamera-Stream: µStreamer statt MJPG-Streamer



OctoPrint neu gemacht: Nach dem Umzug der Instanz von einem Raspberry auf eine AMD64-Kiste und der Aktualisierung auf Python 3.13 über µStreamer gestolpert.

MJPG-Streamer deaktiviert, µStreamer installiert und nach 5 Minuten läuft die Logitech C920 am alten Anycubic I3 Mega, dem "old reliable".

Eine einfachte Service Unit /etc/systemd/system/ustreamer.service für den Dienst:

[Unit]
Description=uStreamer service
After=network.target
[Service]
Environment=""
User=root
PIDFile=/run/ustreamer.pid
ExecStart=/usr/bin/ustreamer \
        --device=/dev/video0 \
        --host=0.0.0.0 \
        --port=9000 \
        --encoder=HW \
        --quality=80 \
        --workers=3 \
        --brightness=80 \
        --resolution=1280x720 \
        --desired-fps=25 \
        --blank=/opt/zdf.jpg \
        --drop-same-frames=30
[Install]
WantedBy=multi-user.target

Dann systemctl daemon-reload ; systemctl enable ustreamer ; systemctl restart ustreamer

Der Kamera-Stream ist für OctoPrint unter http://127.0.0.1:9000/stream erreichbar, der Snapshot für Timelapse-Aufnahmen unter http://127.0.0.1:9000/snapshot. Auf http://[IP]:9000/ ist eine Seite mit Informationen und Hilfe verfügbar.

In der config.yaml von OctoPrint lassen sich dann leicht die Actions für µStreamer einbinden:

[...]
system:
  actions:
  - action: streamon
    command: sudo service ustreamer start
    confirm: false
    name: Kamera Stream an
  - action: streamoff
    command: sudo service ustreamer stop
    confirm: false
    name: Kamera Stream aus
  - action: streamrestart
    command: sudo service ustreamer restart
    confirm: false
    name: Kamera Stream Neustart
  - action: divider
[...]

ustreamer-octoprint-actions.png

Das "blank"-Bild für die Ü50-User ist hier:

zdf.jpg

Slicer-Thu…

Permalink CC BY-NC 4.0 DEED 50 12.02.2026 12.02.2026