Webradio – Basiskonfiguration
Um mein defektes „Uralt-Analog-Radio“ durch ein WebRadio zu ersetzen, habe ich einen meiner Raspis ein wenig „zweck entfremdet“ und den beliebten vlc Player installiert, alte Stereo-Lautsprecher per Klinke angehängt und das ganze gestartet.
Hier die Schritte:
VLC installieren
$sudo apt-get install vlc
externe (alte) Stereo-Lautsprecher per „Klinke“ angehängt.
Beim ersten Start bittet der Player (im graphischen Modus) um den Web-Zugriff (s.u.).
Sollte kein Ton ausgegeben werden (auch nach reboot nicht), kann man den Audio-Ausgang von „automatic“ auf „Klinke“ (oder, s.u. HDMI) festlegen:
ein simples bash-Skript startet den VLC-Player mit der „festen“ URL eines bestimmten Radio-Senders.
#!/bin/bash
# Zweck: WebRadio per vlc player
# Datum: 2018-08-02
# Autor: Jürgen Blaser
#
/usr/bin/vlc http://mp3-live.swr3.de/swr3_m.m3u
Anmerkung: Wenn man das Skript startet, bleibt die Session „im Skript hängen“, was jedoch kein Problem, sondern sogar ein Vorteil ist (weitere Erläuterungen s.u.).
Je nachdem, ob Ihr per ssh oder per graphischem User-Interface auf Euren Raspi zugreift, werden unterschiedliche Meldungen ausgegeben:
Graphische Steuerung
Auf dem graphischen Interface des Rasbis ist das ganze (vlc steuern) kein Problem. Hier kann man mit der Maus etc. konfgurieren.


Command Line
Das Skript per command shell OHNE GUI gestartet, bringt ein paar zusätzliche Meldungen, die jedoch (wie MIT GUI) nicht stören ..

Dort (per command shell) ist die direkte Steuerung des VLC Players per Kommando möglich.
Die „RETURN“ Taste (oder „Eingabe“) bringt eine Liste der kommandos, die der vlc Player „versteht“ (ob die alle im aktuellen Modus sinnvoll sind, ist eine andere Sache …)
Vorweg: stoppen kann man den Player mit „shutdown“ oder „quit„(natürlich auch mit Ctrl/C, CTRL/D, „logout“, ..)
Dann kann man z.B. die aktuelle Lautstärke mit simplem
„volume„
ermitteln oder mit
„volume +100„
erhöhen oder z.B. mit
„volume -100„
verringern.
Auch „Festwerte“ wie „volume 400„ sind möglich.
Seht Euch die weiteren Möglichkeiten selbst an 😉
Erweiterungen
mehrere Radiosender auswählen
Dieses Skript kann man natürlich leicht noch verbessern, erweitern:
Z.B. könnte man statt einer „festen Adresse“ eine Liste vieler Web-Radio-URLs in einem Textfile ablegen und mittels „grep“ die passende URL an den vlc Player übergeben ..
Klang verbessern
Natürlich kann man auch den HDMI-Ausgang oder eine spezielle Sound-Karte des Raspi dafür nutzen, um einen besseren Klang oder den Anschluss an eine grosse „sound Box“ zu ermöglichen.
Mir kam es mit diesem „Projekt-chen“ jedoch / nur darauf an zu zeigen, dass man mit einfachen Mitteln ein brauchbares (Zwischen-) Ziel erreichen kann.
Fernsteuerung
Im Web werden Fernsteuer-APPs (z.B. von Android zu Windows, MAC, Linux) angeboten, die ich nicht alle testen kann.
Die Installationsanleitungen dieser APPs sind of sehr kurz, gehen von „ganz bestimmten“ Voraussetzungen aus, oder sind schlichtweg fehlerhaft.
Eine ausführliche und (zumindest für mich) brauchbare Anleitung habe ich bei „https://www.howtogeek.com/“ gefunden. Die Hardcopies sind zwar für Windows, aber im Text sind auch MAC und Linux Kommandos und Einstellungen erläutert.
Eine kurze Zusammenstellung meiner Erfahungen habe ich unter „VLC Player ferngesteuert“ abgelegt.
Wenn man DIESE Anleitung zusammen mit der Anleitung der APPs benutzt, sollte es klappen ..
Wenn gar nix geht ..
Es kann sein, dass gar keine (Audio) Ausgabe möglich ist.
Das KÖNNTE daran liegen, dass der vlc Player VOR dem ersten Ton Euch bittet, ihm den Zugriff aus WEB zu erlauben.
Kurz gesagt:
startet den vlc Player ZUERST per graphischem Interface. Bestätigt im dann erscheineden Fenster, dass der Player WEB Zugriff bekommt.
Bei einem weiteren, zweiten USER kam die Fehlermeldung:
[01ebe9d8] alsa audio output error: cannot open ALSA device „default“: Datei oder Verzeichnis nicht gefunden
[01ebe9d8] core audio output error: Audioausgabe fehlgeschlagen
[01ebe9d8] core audio output error: Das Audiogerät „default“ konnte nicht benutzt werden:
Datei oder Verzeichnis nicht gefunden.
[01ebe9d8] core audio output error: module not functional
[7192aed8] core decoder error: failed to create audio output
Grund: die Soundkarte war nicht als default gesetzt..
-> einfach „make default“ klicken, s.u.


Bei einem unprivilegierten Benutzer klappte es manchmal, manchmal nicht
Die Meldung war (ein Auszug daraus:)
[71800a40] http access: Raw-audio server found, mp3 demuxer selected
[0010c9d8] alsa audio output error: cannot open ALSA device „default“: Keine Berechtigung
[0010c9d8] core audio output error: Audioausgabe fehlgeschlagen
[0010c9d8] core audio output error: Das Audiogerät „default“ konnte nicht benutzt werden:
Keine Berechtigung.
[0010c9d8] core audio output error: module not functional
[71836568] core decoder error: failed to create audio output
Ich denke, dass es mit den Software-Updates (die ich regelmässig durchführe) zu Zugriffsproblemen kam.
Unter „https://wiki.ubuntuusers.de/Sound_Problembehebung/“ fand ich detaillierte Schritte zur Fehlerbehebung.
Bei mir half das Kommando (Privilegierter User) „sudo addgroup <BENUTZERNAME-durch-richtigen-ersetzen> audio“ das Problem zu beseitigen. Der Test (UNprivilegierter User) „aplay /usr/share/sounds/alsa/Front_Center.wav “ brachte eine Ton-Ausgabe zu Stande.
Notbremse, vlc settings löschen
im GUI des Players gibt es eine Möglichkeit auf die Standard-Einstellungen zurück zu kehren. (Werkzeuge – Einstellungen – Einstellungen zurück setzen)
falls Ihr Euch beim „spielen“ mit den Einstellungen jedoch total vertut, das graphische Interface z.B. nicht mehr hoch kommt, …
… könnt Ihr mit dem Kommando
$ rm ./.config/vlc/*
die Einstellungen löschen. Details dazu z.B. „hier“

Wenn die ssh-Verbindung abbricht, jedoch der vlc-Player weiterspielt „hat man ein Problem“ ..
mit einem kleinen Skript kann man dann elegant den player stoppen:
Prinzip:
- erneut mit dem selben user einloggen
- Prozess ID mit ps ermitteln
- Prozess killen
#!/bin/bash # Zweck: WebRadio per vlc player stoppen # Hintergrund: manchmal verliert mein Smartphone (von dem ich vlc starte) # die VErbindung zum Raspberry Pi # .. der vlc player spielt weiter, jedoch kann ich keine Zeilen-Kommandos mehr eingeban .. # .. kill der ID ist das einzige (was mir einfällt) was hilft .. # Datum: 2018-08-23 # Autor: Jürgen Blaser ps -ef > ~/Downloads/vlcsuche.lis; radioid=`grep -i vlc ~/Downloads/vlcsuche.lis | awk '{ print $2 }'`; rm ~/Downloads/vlcsuche.lis echo if [ "$radioid" == "" ]; then echo KEINEN vlc player gefunden .. echo else echo vlc Player unter ID $radioid; kill $radioid sleep 2 # ps -ef > ~/Downloads/vlcsuche.lis; radioid=`grep -i vlc ~/Downloads/vlcsuche.lis | awk '{ print $2 }'`; if [ "$radioid" == "" ]; then echo vlc player stopped .. echo else echo vlc Player unter ID $radioid; echo vlc player NOT stopped # zombie, keine Rechte, .. fi fi echo