Seite 1 von 1

Script Streamtests

Verfasst: Montag 14. November 2011, 11:36
von PhilF
Hi,

ich möchte mittels ffmpeg testen, ob ein TV stream verfügbar ist. Das ganze soll nach 20 sek beendet werden, sollte der Stream nicht erreichbar sein. leider weis ich nicht wie ich den Timeout in die os.system Funktion einbringe. kann mir jemand dabei helfen?

STREAMS = Feld mit Stream-Urls

Code: Alles auswählen

    for row in STREAMS:
        
        PINGCOMMAND = "ffmpeg -i "+str(row)+" > /dev/null 2>&1"
        #x = os.system("/root/timeout.sh")
        #print x
        print PINGCOMMAND
        cmd = os.system(PINGCOMMAND)
        print "CMD " + str(cmd)
        if cmd == 0:
            print str(row) + " ---> OK"
        else:
            print str(row) + " ---> FAILED"
            failedstreams.append(str(row))
        pass
    print "--------------"
    print "Failed STREAMS: " + str(failedstreams)
als Vorlange habe ich nur eine php Datei:

Code: Alles auswählen

#!/bin/bash
TIMEOUT=20

(
  ((t = TIMEOUT))
  while ((t > 0)); do
    sleep 1
    kill -0 $$ || exit 0
    ((t -= 1))
  done

  kill -s SIGTERM $$ && kill -0 $$ || exit 0
  sleep 1
  kill -s SIGKILL $$
) > /dev/null 2>&1 &
exec "$@"



STREAMSLEN=${#STREAMS[@]}
for (( i=0; i<"$STREAMSLEN"; i+=2 )); do
  echo "Testing ${STREAMS[i]} (${STREAMS[((i+1))]})" >> $LOGFILE
  $TIMEOUT ffmpeg -i udp://@${STREAMS[((i+1))]} > /dev/null 2>&1
  if [ "$?" == "1" ]; then
    echo "Stream ${STREAMS[i]} is OK" >> $LOGFILE
  else
    echo "ERROR: Stream ${STREAMS[i]} is not running!" >> $LOGFILE
    GOTERROR="true"
  fi
done

Re: Script Streamtests

Verfasst: Montag 14. November 2011, 11:57
von BlackJack
@PhilF: Die Vorlage ist ein Bash-Skript und kein PHP.

Bei `os.system()` bringst Du kein Timeout ein. Im Grunde auf eine ähnliche Art wie das Bash-Skript kannst Du das bei `subprocess.Popen` machen, was man sowieso `os.system()` vorziehen sollte. Es läuft also darauf hinaus den Unterprozess zu starten und dann bis zum Timeout regelmässig zu testen ob der Unterprozess schon abgearbeitet ist.

Re: Script Streamtests

Verfasst: Montag 14. November 2011, 11:58
von JonasR
Hmmm Blackjack du hast mich jetzt davon abgehalten ein fertiges Script zu posten :D

Re: Script Streamtests

Verfasst: Mittwoch 16. November 2011, 12:06
von PhilF
Die Vorlage ist ein Bash-Skript und kein PHP.
ups :oops:

Danke für die Antwort. Ich muss gestehen, dass ich nicht viel Erfahrung mit Scripten habe, geschweige von Subprozessen :cry:


Hmmm Blackjack du hast mich jetzt davon abgehalten ein fertiges Script zu posten :D


dafür wäre ich dir mehr als nur dankbar, wenn du es doch tun würdest :wink:

Re: Script Streamtests

Verfasst: Mittwoch 16. November 2011, 15:02
von JonasR
Wie weit bist du denn mit dem Vorschlag vom BlackJack?

Re: Script Streamtests

Verfasst: Freitag 18. November 2011, 11:22
von PhilF
derzeit bin ich noch nicht dazu gekommen, da was wichtigeres Inzwischen gekommen ist ;(

Re: Script Streamtests

Verfasst: Donnerstag 1. Dezember 2011, 08:32
von PhilF
kann geclosed werden , hat sich erledigt danke ;)