1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

Dieses Thema im Forum "Internetradio- und Heimstudio-Software" wurde erstellt von Invocation, 23. Juni 2008.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Invocation

    Invocation Benutzer

    Hallo Zusammen,

    um trotz der Urlaubszeit unseren Sendebetrieb aufrecht erhalten zu können, planen wir Sendungen vorzuproduzieren und diese dann jeweils zu den entsprechenden Sendeterminen automatisiert starten zu lassen.

    Derzeit betreiben wir das Radio auf einem virtuellen Root Server inkl. Shoutcast und SC_Trans. Heute schon füllen wir die Nicht-Sendezeit mit automatisierten Playlist-Tracks auf.

    Im Prinzip geht´s darum, diverse Playlists zeitgesteuert aufzurufen.
    Das soll dann ungefähr so aussehen:

    - Die generelle Playlist läuft außerhalb der normalen Sendezeit.
    - Zum Zeitpunkt einer Sendung möchten wir die entsprechend vorproduzierte Sendung anlaufen lassen
    - Danach soll die generelle Playlist wieder anlaufen

    Gibt es eine zuverlässige Möglichkeit, dies umzusetzen?
    Ich schätze, dass es so oder so etwas komplexer wird.

    Danke Euch im Voraus,

    Grüße
    Invocation
     
  2. Flugsaurier

    Flugsaurier Gesperrter Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Lässt sich mit der Serverinternen Uhr und mit PHP erledigen. Vom Prinzip her machst Du Playlisten die gelagert werden, ebenfalls die Musik (oder Files jeglicher Art). Wir haben es so gelöst, das es 2 x sc_trans auf dem Server gibt, der eine der gerade die Playlist 1 abfeuert und der andere welche zum gegebenen Zeitpunkt umschaltet auf den 2ten im Bunde und den 1. ausschaltet. In dem Moment wo umgeschalten wird, wird die Playliste die gespielt wurde umbenannt und die kommende Playliste rausgesucht und ebenfalls für den wartenden SC_trans umbenannt. Klingt etwas kompliziert, aber funktioniert bestens, 1 Sec. Luft haben wir dazwischen, weil wir das zum Umschalten benötigen.

    Wenn Du PHP kannst, wird es Dich bestimmt inspiriert haben und Du baust Dir schnell sowas selber.

    Gruß
     
  3. nwd

    nwd Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Mit Ices von Icecast und php selbst entwickeln.
     
  4. Invocation

    Invocation Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    @nwd
    Ices müsste der Pedant zu SC_Trans von/für Shoutcast sein.

    @Flugsaurier
    Hört sich realisierbar an, da ich PHP-mäßig allerdings relativ blank dastehe, bin ich für Denkanstöße immer offen :)

    Um es nochmal zusammenzufassen:
    - SC_Trans läuft zweimal
    - Es gibt mehrere Playlisten
    - Mittels PHP habt ihr eine Zeitsteuerung realisiert, die die jeweilis abzuspielende Playlist abruft

    Im Prinzip ist es mir klar, hört sich allerdings so an, als sollte man ein paar mehr Basis in PHP haben, als es bei mir der Fall ist :)
     
  5. Flugsaurier

    Flugsaurier Gesperrter Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Naja so problematisch ist das garnicht zu programmieren, es ist lediglich ein Spiel mit der Zeit und ein verschieben und umbenennen von Dateien. PHP lässt sich ja auch unterhalb von htdocs steuern und von daher ist das wirklich nicht schlimm. Ich habe es während meines PHP Lehrganges geschrieben, allerdings ist mein Script mitlerweile etwas arg aufgeblasen, sonst hätte ich es Dir gegeben, aber Du schaffst das schon.

    Gruß
     
  6. Pegasus

    Pegasus Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Ich würde aber keine Dateien verschieben oder umbenennen, ich würde da konsequent mit symbolischen Links arbeiten. Dadurch wird verhindert, das Dateien beim Verschieben zerschossen werden, falls gleichzeitig noch andere Prozesse drauf zugreifen.

    Allerdings würde ich zum anlegen der Links und zum Starten/Stoppen der Plaliste ein Bash-Script (oder evtl. Perl) und Cron verwenden (ich geh jetzt mal von Linux aus, es steht ja nirgends, welches System ihr verwendet). Ist wesentlich schneller, sicherer und Speicherschonender. PHP in der Kommandozeile ist zwar möglich aber nicht wirklich gut.
     
  7. Invocation

    Invocation Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Ok,

    es handelt sich in der Tat um ein Linux-System (SuSe 9.3).

    Von CRON-Jobs bin ich jetzt auch ausgegangen, habe allerdings noch immer keine zündende Idee, wie man dies am besten realisieren könnte.

    Einfach machen möchte ich es mir ja gar nicht, aber auch mittels Google bin ich noch nicht richtig fündig geworden.

    Man könnte natürlich jetzt sehr simpel hergehen und mittels CronTab mehrere Jobs definieren, die eine jeweils unterschiedliche Playlist anstoßen.
    Momentan starten und stoppen wir die Playlist allerdings über ein Skript von Pegasus, das so dann auch nicht mehr hinhauen würde.

    Ganz so einfach scheint es also wirklich nicht zu sein...
     
  8. Pegasus

    Pegasus Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Beileid
    Du kannst z.B. die Zeiten direkt nach /etc/cron.d schreiben. Zumindest bei einem anständigen Linux liegt der Ordner da, bei Suse kann es sein, das er woanders liegt, da Suse sich nicht an Standards hält (Praktisch Microsoft in der Linuxwelt)
    Einfach ist das auch nicht. Da ist schon einiges an Wissen nötig in Bezug auf Cron und die Shell
    So sollte es sein.
    Ich gehe mal von shoutcontrol aus. Stellt gar kein problem dar, da das Bash-Script nur per PHP aufgerufen wird. Es stellt kein Problem dar, das Script direkt per Cron ohne PHP aufzurufen.
     
  9. Invocation

    Invocation Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Pegasus,

    habe schon ein paar Erfahrungen mit Suse und Crons gesammelt. Manchmal war es in der Tat nicht so einfach, denn Du hast schon Recht, habe nicht immer alles dort gefunden, wo es sein sollte.

    Es ist in der Tat Shoutcontrol, wobei ich mir nicht sicher bin, ob wir vom gleichen sprechen. Wenn ich das ganze lediglich mit Cron definiere, ist es wirklich nicht sooo schwierig. Diverse Playlisten, die zeitlich sich abwechseln, ok.

    Schalte ich jetzt allerdings mittels Shoutcontrol SC_Trans aus und wieder ein, dürfte wahrscheinlich die Playlist gestartet werden, die im Verzeichnis von SC_Trans liegt. Und das wiederum würde ja auch nicht passen.

    Macht es da nicht mehr Sinn, das ganze so zu gestalten:
    - Diverse Playlists, z.B. mit dem Namen Playlist1, 2, 3 usw.
    - Mittels Cron wird ein Skript ausgeführt, das die jeweilige Playlist in den Ordner von SC_Trans kopiert, dann in Playlist umbennent und diese starte.
    - Wird nun die Playlist über das Skript ein- und ausgeschaltet, spielt sie genau das weiter, was vorher festgelegt wurde.

    So dürfte das ja eigentlich auch funktionieren, ganz rund finde ich es allerdings immer noch nicht. So würde könnte man folgendes Szenario nur aufwendig realisieren:
    18-20: Playlist mit Musik-Stil Rock
    20-22: Live-moderierte Sendung
    22-06: Playlist mit Musik-Stil Klassik (nur ein Beispiel :D)
     
  10. Flugsaurier

    Flugsaurier Gesperrter Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    @ Pegasus, das Problem ist blos, das ich halt von bash Scripten keine Ahnung habe, deswegen ist es bei mir ein PHP Script, da kenne ich mich halt aus und man sollte halt immer wissen was man tut wenn man auf einem Server etwas macht.

    Zum Thema bash haste da vielleicht etwas wo man sich einlesen könnte, denn interessant ist es allemal.

    Was das verschieben von Dateien betrifft liegt es ja wohl mehr daran, das man schon sauber arbeiten sollte, dann passiert im groben mal nichts würde ich behaupten wollen, oder täusche ich mich da?

    @ Invocation das mit den mehreren Playlisten und der Namensgebung habe ich eben so gelöst, das mein Script schaut ob eine Playliste mit dem entsprechendem Datum und Uhrzeit vorliegt, wenn ja wird es in den Ordner für den SC Trans geschoben und umbenannt. Mir persönlich war es zu kompliziert, die SC Trans config zu öffnen und den entsprechenden Part bzw. Zeile umzuschreiben. Ich dachte mir das es hier Probleme geben könnte. Da ich den Zeitraum nicht definieren konnte, wie lange sowas dauert, habe ich einen 2 ten SC Trans genommen, so das diese sich abwechseln. Sollte keine Playlistdatei vorhanden sein, habe ich den Error abgefangen und stope das Script. Da keiner auf den Stream konnectet geht SC Trans 3 mit der NotfallPlaylist an.

    Da es mir mit den Eskapaden einiger Moderatoren auch zu dumm war, hat bei mir jeder Moderator seinen eigenen Shoutcastserver, somit seine eigenen Passwörter und ich keinerlei Ärger, denn wenn aus dem Sendeplan ersichtlich der Moderator dran ist, dann darf dieser connecten, wenn nicht kann er connecten so viel er will, das interessiert mich nicht. Kam leider häufig vor, das ein Moderator meinte das genau just wenn er auftaucht auch gestreamt werden muss. Natürlich sind die Shoutcastserver nicht erreichbar von Außen und selbst wenn lassen diese nur 1 Hörer zu.

    Also ich sage mal so, es gibt viele gedankengänge dazu und auch viele Sachen die man damit machen kann. Denke mal mittels bash wäre das Ganze etwas eleganter, aber das beherrsche ich nicht und ich habe mich damit auch nicht befasst.

    Gruß
     
  11. Pegasus

    Pegasus Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Ich hab nur eine Scriptsammlung, Namens SHoutcontrol, veröffedntlicht ;) Und darin ist ein Bash-Script, das von PHP über exec() gesteuert wird.

    1. Ausschalten und wie einschalten ist gar nicht nötig. es gibt zwei Signale (USR1 und USR2), mit denen du die Playliste und die COnfig neu einlesen kannst. Steht ganz oben in der Config beschrieben.

    2. Wenn die als Parameter beim Start keine Playliste angeben kannst (hab das grad nicht im Kopf), dann ist die beste Lösung das mit den symbolischen Links. Einfacvh alle Playlisten in nen Ordner und auf die, die genutzt werden soll, nen Link legen, den dann sc_trans aufruft.

    @Flugsaurier
    Bashscripting ist nicht sehr schwer (zumindest die grundlagen, die hier nötig sind). Was du da in PHP in 100 Zeilen programmierst, zauber ich dir in Bash in nen 10-Zeiler und das ist dann auch noch um ein Vielfaches schneller ;)
    PHP ist als PrograMMIERSPRACHE FÜR DIE kOMMANDOZEILE NUR BEDINGT GEEIGNET.
     
  12. Invocation

    Invocation Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Pegasus,

    ob nun aus- bzw. einschalten, so richtig klar ist mir noch nicht, wie das ganze von den Verweisen (Symbolische Links) realisiert werden kann.

    Oder geht es wirklich so einfach, dass ich über USR1 und USR2 mittels CRON und Bash sage, er soll nun Playlist 1 anstoßen und mit dem nächsten Signal sage, er soll Playlist 2 einlesen?
     
  13. Pegasus

    Pegasus Benutzer

    AW: Zeitgesteuertes Abspielen von aufgezeichneten Sendungen

    Ich hab dir doch gesagt, die Signale sind in der Config beschrieben. Was verstehst du an dieser Beschreibung nicht?
     

Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen