VLC Player als simples WebRadio

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:

Konfiguration

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

Hier der Link zum o.a. Skript

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.

WebRadio, vlc, graphisches Interface
vlc, graphisches Interface
WebRadio, vlc player selbst, graphisches Interface
vlc player selbst, graphisches Interface

Command Line

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

WebRadio, vlc, raspi, command line
vlc, raspi, command line

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.

raspi-Einstellungen
raspi-Einstellungen
Sound Default
Sound Default

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“

WebRadio, vlc, settings löschen
vlc, settings löschen

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

unsere Leidenschaften sind Fotografie, digitale Bildbearbeitung und Programmierung (allg.)