Hallo zusammen,
ich betreibe TVheadend auf einem RaspberryPi Modell 3B mit 2 Tunern. Ich möchte pro Tuner nur einen Stream zulassen, unabhängig davon, welcher Benutzer oder von welcher IP gestreamt wird.
Es macht mir nichts aus, andere Programme, Firewalls usw. einzurichten.
Ich habe bereits 1 Verbindung für den Benutzer * eingestellt, aber das funktioniert nur, wenn der Benutzer von derselben IP kommt.
# Überprüfen und Beenden von Streams, die das Limit überschreiten
for tuner in $(echo $ACTIVE_STREAMS | jq -c '.[]'); do
tuner_name=$(echo $tuner | jq -r '.input')
stream_count=$(echo $tuner | jq -r '.subs')
if [ "$stream_count" -gt "$MAX_STREAMS" ]; then
echo "Zu viele Streams auf $tuner_name. Beende überschüssige Streams."
# Beenden der überschüssigen Streams
count=0
for pid in $stream_pids; do
if [ "$count" -ge "$MAX_STREAMS" ]; then
curl -s --user $TVH_USER:$TVH_PASS http://$TVH_HOST:$TVH_PORT/api/status/subscriptions/stop?pid=$pid
fi
count=$((count + 1))
done
fi
done
Anpassen. Cronjob jede Minute
Oder
#!/bin/bash
# TVheadend API Zugangsdaten
TVH_USER="user"
TVH_PASS="password"
TVH_HOST="localhost"
TVH_PORT="9981"
# Maximale Anzahl der erlaubten Streams pro Tuner
MAX_STREAMS=1
# Überprüfen und Beenden von Streams, die das Limit überschreiten
for stream in $(echo $ACTIVE_STREAMS | jq -c '.[]'); do
tuner_name=$(echo $stream | jq -r '.input')
stream_id=$(echo $stream | jq -r '.id')
if [ -z "${tuner_streams[$tuner_name]}" ]; then
tuner_streams[$tuner_name]=0
fi
Ich teste es Danke.
¡Eres un crack!
Ich verstehe die Grammatik des Skripts, wie Variablen und Bedingungen, aber nicht, was es im Detail macht. Bash-Scripting ist der Hammer, wow. Für mich ist es, als ob ich ein bisschen lesen kann, aber nicht sprechen