Probleme mit abstürzenden Stream
Aus unerfindlichen Gründen war der Stream nicht wirklich stabil. Er ist immer wieder abgeschmiert und man musste den libcamera
Befehl manuell neustarten. Da ergibt sich doch Automatisierungspotenzial, habe ich mir gedacht.
Autoneustart-Skript mit dem Bot erstellen
Um das schnell voranzutreibe, habe ich den Chatbot angeworfen und gleich einmal gefragt, wie so ein Skript aussehen könnte:
Und das ist das fertige bash-Skript:
#!/bin/bash
# Infinite loop to keep the process running
while true; do
echo "Starting stream..."
# Run the command
libcamera-vid -t 0 --inline --listen --bitrate 3000000 --width 1920 --height 1080 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! flvmux ! rtmpsink location='rtmp://localhost/live/1234 live=1'
# If the command exits, log it
echo "Stream stopped. Restarting..."
# Optionally, sleep for a second before restarting to prevent spamming if there's an immediate fail
sleep 1
done
Es gibt auch gleich noch eine Anleitung dazu:
Wobei man hier sagen muss, dass das Skript auch genauso gerne mit bash restart_stream.sh
startet.
Das “Stehaufmanderl”-Skript
Schauen wir uns das Skript in Action an. Nachdem man es gestartet hat, gebe ich ihm einmal einen “Tritt” (Strg + c) und siehe da, es steht wieder auf und der Stream werkelt munter weiter:
Ausblick
In den kommenden Tagen werde ich beobachten, wie stabil der Stream “meisen_aus_urfahr” durch das neue Skript geworden ist. Zumindest bisher scheint das Ergebnis vielversprechend zu sein. Weiters könnte das Skript auch noch die eine oder andere Verbesserung gebrauchen (Logging zum Beispiel), aber vorerst bin ich sehr zufrieden damit. Und es war auch interessant zu lernen, wie einfach so ein Skript sein kann, auch wenn eine große Schleife jetzt vielleicht auch nicht die eleganteste Lösung ist.