Das Konzept von NOPLLI

 

Die Grundidee ist, einfach einen Computer nehmen, der den ganzen Tag Musik streamt - nicht in die weite Welt - obwohl das natürlich gehen würde - sondern nur im lokalen Netzwerk. Also ein eigener Internet-Radio-Sender.

Zusätzlich muss es ein Webinterface geben für ein paar Einstellungen, ggf. eine App für die Funktionen Skip und Insert. Elegant wäre es natürlich, wenn man die Skip-Funktion durch die SONOS-Funktion "Doppel-Klick auf Play" realisieren könnte. Ich habe dazu etwas gefunden, aber später mehr.

Benötigt werden dazu: Ein Dienst, der einen  RTMP Stream bereitstellen kann (das macht z.B. icecast2), einen Player der "immer" läuft - also ein Dienst (Linux: daemon) der für den RTMP-Stream die Daten bereit stellt (MPD) und ein Client zur Steuerung des Players (MPC).  Eigentlich ganz einfach und doch verwirrend.

Nun gibt es verschiedene Wege, die nach Rom führen.

1. icecast2 + MPD, dazu ein selbstgebautes Webinterface, dass den MPD füttert

2. icecast2, MPD und MPC, dazu ein selbstgebautes Webinterface, dass den MPC füttert

Der Unterschied ist hoffentlich klar - im ersten Fall muss ein MP-Client programmiert werden, im zweiten Fall "nur" eine Fernsteuerung für den MP-Client

Trotzdem löst das noch nicht "mein" Problem - denn eigentlich möchte ich ja einen Client haben, der selbst als "Dienst" läuft und "selbstständig" "Entscheidungen" trifft.

Es soll ja so sein, dass der MPD immer genug Daten bekommt (also: spiele jetzt, spiele danach), der Client soll aber aus der Datenbank

  • selbstständig das nächste Stück auswählen (aber nicht gleich tausende)
  • das gewählte Stück soll überprüft werden, wie oft es schon in den letzten y Wochen gelaufen ist
  • er soll aber auch einen oder mehrere Wunschtitel als nächstes einfügen können
  • er soll ggf. ein skip durchführen

 

Noch einmal der Hinweis: dieser RPi soll keine anderen Radio-Streams wiedergeben, er ist selbst ein "Radio".

 

Möglich ist z.B. den MPC durch ein weiteres Programm zu steuern, dieses Programm liefert via Webinterface ein paar Informationen (Datenbank und Titel), überprüft regelmäßig die Musik-Ordner, bzw. stößt den MPC an, seine DB zu aktualisieren. Dieses Programm überprüft den MPC und sorgt dafür, das die MPD Playlist maximal 1 Titel beinhaltet und sucht kurz vor Ende den nächsten Titel (Crossfade Time). Wenn mann den MPC als "Zwischenstation" benutzt, dann könnte man ohne Socket-Verbindung durch z.B. php shell_exec () arbeiten. Ist aber nicht sehr elegant.

 

Die andere Möglichkeit ist, das der programmierte Client den MPD direkt steuert - die API des MPD ist gut dokumentiert und ich werde hier die (IMHO) wichtigsten Befehle beschreiben.

 

Hardware:

RaspberryPi 1-3, 4++ GB SDCard

Software:

LAMP oder LEMP-Server, RTMP-Server, Streaming-Player, Web-Interface

 

Zur Hardware:

Ein RPi ist ideal, er benötigt wenig Strom, ist klein, hat RJ45 und WLAN, kann USB oder Netzwerkshares ansprechen.

 

Zur Software:

Es gibt für den RPi das Paket Raspbian Strech Lite .

Als Webserver nginx (für den eigenen Webclient)

Als RTMP-Server IceCast2

Als Streaming-Player MPD

Als Stream-"Fütterer": muss ggf. programmiert werden (HILFE!)

Als Webinterface: mpdinterface2 (als Basis)

Als App: noch nix.

 

Sonstiges:

Lizenz ist GNU GPLv3

Ein GIT-Projekt: Wer kennt sich damit aus?

Eine Community: wenn es interesannt ist, wird es sich wohl ergeben

Ein Wiki: auf meinem Server, aber es benötigt Pflegepersonal

Ein Forum: auf meinem Server, aber es benötigt Pflegepersonal

Ein Logo: Wer hat eine gute Idee?

Die Finanzierung: im aktuellen Status werde ich den Server und die Domain stellen. Sollte mein Server irgendwann "überfordert" sein, dann kann man über Spenden oder den Verkauf fertiger SDCards nachdenken, aber bis dahin ist noch viel Zeit

 

Das war's dann auch schon.

Wer also Lust hat und der Meinung ist, das Projekt unterstützen zu wollen, der kann sich gerne bei mir melden. projekt[at]noplli[dot]de