PEX-Transcoder by Prism-J

  • PEX-Transcoder Beta 1 Update 4

    "PEX" ist der Codename unter dem ich seit ca. 2 Jahren alles was mit Streamsystemen zu tun hat schreibe und veröffentliche.


    Bei dem PEX-Transcoder handelt es sich um ein in der Skriptsprache "Liquidsoap" geschriebenes Streamsystem,

    welches weder auf SHOUTcast noch auf IceCast angewiesen ist und eine lange Palette an Besonderheiten mitbringt.


    Besonderheiten:

    • Kein Icecast oder SHOUTCast mehr benötigt.
    • Beliebig viele zeitgesteuerte Playlists und Jingles.
    • JSON-API zum auslesen von Stream und DJ-Infos.
    • DJ-Zugangsdaten über die API anlegen/entfernen.
    • DJ kicken und Song skipen über die API (bald noch mehr).
    • Kein Neustart nach anlegen/entfernen von DJ's nötig.
    • Kein Neustart nach hinzufügen/entfernen von Liedern nötig.
    • Anpassbaren Crossfadeing(Übergänge zwischen Liedern).
    • Unterstützung aller gängigen Audio-Formate.
    • Beliebig viele Outputs (z.B. /mobil.m4a, /stream.mp3).
    • Individuelles Audio-Format für jeden Output.
    • Kinderleichte Installation und Konfiguration.
    • Komplett kostenlos und Open-Source gehalten


    Da ich leider kein bezahltes Entwicklerteam bin, sondern nur eine einzelne Person mit Job und Reallive, werden Updates

    wahrscheinlich nur langsam oder Phasenweise kommen. Weiterhin sind mir keine Liquidsoap Projekte in diesem bereich

    bekannt bei denen ich abgucken könnte, wodurch die Entwicklung sehr viel Zeit, Geduld und Einfallsreichtum beansprucht.

    Trotz 2 Jahren Erfahrung mit Liquidsoap hat die Entwicklung schon 3 Monate gedauert und ein Ende ist noch nicht in Sicht.


    Aktuelle Probleme:

    • Stabilität ist noch fragwürdig.
    • Probleme mit Liquidsoap Bugs.
    • Manchmal unsauberes Crossfade.
    • AutoDJ ignoriert manchmal Songs.


    Auch wenn der PEX-Transcoder wahrscheinlich niemals die Stabilität vom SHOUTcast und SHOUTcast-Transcoder besitzen wird,

    versuche ich hiermit einfach mal etwas Neues in die Retro- bzw Radioszene zu bringen und mit "100% selfmade" zu Punkten.

    Fragen, Vorschläge, Anmerkungen, Bugs und alles andere gerne unten in die Kommentare ;)


    Sonnstiges:

  • Frage zum Update


    Bisher wird in der API Statusseite im Abschnitt der Listeners folgendes ausgegeben:

    Man sieht die Zuhörer und deren Header-Information. wegen einem Bug in Liquidsoap müssen die Header-Informationen 2x in JSON-Code umgewandelt werden. Problem ist nun, dass das doppelte umwandeln in JSON ab einer bestimmten Hörerzahl sehr stark auf die CPU geht.


    Die Information sind zwar interessant aber brauch man sie wirklich? wenn es kein anderes Feedback gibt, kick ich sie im nächten Update raus. API abschnitt sähe dann nur noch so aus:

    also nur noch die IP der Listeners.

  • Also mich als Entwickler würden diese Informationen schon interessieren, anhand dieser kann ich zum Beispiel bestimmen auf welchen Geräten es abgespielt wird.

    Außerdem sind so genauere Statistiken möglich.


    Kannst du es nicht als eine Option in einer Konfigurationsdatei separat einstellen lassen ?

  • Kannst du es nicht als eine Option in einer Konfigurationsdatei separat einstellen lassen ?


    Die Idee ist gut und ich habe die letzten 2 Tage versucht dies umzusetzen. Leider macht Liquidsoap mir auch dabei wieder ein Strich durch die Rechnung.

    Ich habe aber eine Email mit meinem Hauptproblem direkt an den "Liquidsoap Support" geschickt und eventuell kommt da ja eine Lösung bei rum.

    Bis dahin werde ich die Header-Informationen ersmal entfernen müssen, die machen so wie sie jetzt umgesetzt sind nur Probleme :/



    PS: Update ist nun hochgeladen. Es reicht die pex.liq zu ersetzen und den Stream neuzustarten.

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Prism-J ()

  • Beta 1 Update 2 ist fertig!


    - PEX Startup Logo hinzugefügt

    - Delemitters von "-" zu "|" geändert

    - Callback-Funktionen hinzugefügt

    - Bug beim Song skipen gefixt


    Callback-Funktionen

    In der settings.cfg gibt es jetzt 3 neue Einträge:

    cmd_on_new_track = ""

    cmd_on_dj_connect = ""

    cmd_on_dj_disconnect = ""


    Hier können Linux Bash Befehle eingetragen werden, die immer ausgeführt werden,

    wenn ein DJ connected/disconnected oder ein neues Lied beginnt.


    Verwendung

    Könnte z.B. verwendet werden, um TS3-Bots oder Hotel-Alerts zu triggern.

    cmd_on_new_track = "php -f ts3_channel_name_bot.php"

    cmd_on_dj_connect = "wget -O /dev/null -q http://hotel.bla/alert.php?key=123"

    Dieser Beitrag wurde bereits 2 Mal editiert, zuletzt von Prism-J ()

  • Beitrag von TIMON ()

    Dieser Beitrag wurde von Bruno gelöscht ().
  • Beitrag von MagicMaXx ()

    Dieser Beitrag wurde von Bruno gelöscht ().