Inhaltsverzeichnis

Audio Streaming

8.9.2014

Zweck

Ich hab mir schon öfters gewünscht, die Audio-Ausgabe der Soundkarte über WLAN auf ein Smartphone zu übertragen, und somit mit vorhandenen Mitteln Funkkopfhörer zu emulieren.
Ob es alltagstauglich ist, wird sich herausstellen.

Struktur

Ich hab schon mal nach einem kleinen Tool gesucht, das das einfach so macht. Leider bin ich nicht fündig geworden.
Das ganze scheint etwas komplizierter zu sein:
Heute bin ich auf Icecast gestoßen. Das ist die eigentliche Server-Software. Aber die tut so noch nichts. Diese muss noch von so genannten „Source Clients“ mit Audio-Daten versorgt werden.

Für meinen Zweck läuft dann auf meinem Notebook einerseits der Icecast2-Server, und weiters noch der Source-Client Namens IceS. Der Sourc-Client hat als Audioquelle die Soundkarte. Auf dem Android-Telefon verbindet sich der VLC-Mediaplayer dann zum Notebook, und spielt dann den Audio-Stream.

Installation

icecast2

sudo apt-get install icecast2

Das config-file liegt dann im Verzeichnis /etc/icecast2

Fürs erste braucht man nur die 3 Passwörter verändern.

Dann schreibt man das ENABLE-flag in

sudo kate /etc/default/icecast2

auf

ENABLE = true

um.

Mit

sudo /etc/init.d/icecast2 start

wird der Server gestartet und im Browser kann man das Webinterface unter

http://localhost:8000

aufrufen.

Unter

/etc/icecast2/

gibt es eine Datei namens icecast.xml
Diese kann man auf seine eigenen Bedürfnise anpassen. Siehe http://icecast.org/docs/icecast-2.3.3/basic-setup.html

Edit-2014-11-11: Klickt man auf 'Admin Home', kommt ein Login-Fenster, bei dem man sich mit 'admin' und 'test123' anmelden kann. Soweit so gut.

ices2

sudo apt-get install ices2

Wir brauchen dann noch ein paar neue Verzeichnisse:

sudo mkdir /var/log/ices
sudo mkdir /etc/ices2

Kubuntu verwendet standardmäßig das ALSA Audio System. Daher kopieren wir die entsprechende Vorlage:

sudo cp /usr/share/doc/ices2/examples/ices-alsa.xml /etc/ices2

Diese Config-Datei bearbeiten wir nun mit dem bevorzugten Editor:

sudo kate ices-alsa.xml

Dabei verändern wir folgendes:

<background>1<background>
<param name="metadata">0</param>

In <instance>:

<password>*******</password>
<mount>/lenovo-audio.ogg</mount>
<yp>0</yp>
<downmix>0</downmix>

Dann starten wir Ices

sudo ices2 /etc/ices2/ices-alsa.xml

Probleme

Stream Client kann sich nicht verbinden

Derzeit funktioniert das ganze noch nicht.
In der Log-Datei von IceS findet man folgenden Fehler:

EROR stream/ices_instance_stream Failed initial connect to localhost:8000 (Login failed: Success)

Vielleicht hat das etwas damit zu tun, dass auch der Admin-Login im Webinterface nicht funktioniert… Heute ist's schon spät…

11.11.2014
Nun läuft die Sache bereits. Ich glaub, dass ein neustart notwendig war. Denn ansonsten hab ich nichts geändert - soweit ich weiß.
Ich konnte mich mit meinem Android Telefon auf den Server im WLAN verbinden.

Große Verzögerung

Die Audioübertragung hat eine sehr große Verzögerung von 7 Sekunden und mehr! Das sollte man angeblich im icecast.xml beheben können:

<burst-on-connect>0</burst-on-connect>

Diese Einstellung war zuvor auf 1. Aber das umstellen auf 0 hat auch nichts geholfen.

Audio-Quelle ist Mikrophon statt Ausgang

Notizen

Um die Latenz zu verkürzen, ist sighttpd evt eine Lösung. (http://www.kfish.org/software/sighttpd/)
Darkice würde sich als stream-source anbieten. (siehe http://askubuntu.com/questions/28496/how-do-i-setup-an-icecast-server-for-broadcasting-audio-in-my-network)

Quellen

http://www.icecast.org http://www.icecast.org/ices.php/ http://www.howtoforge.com/linux_webradio_with_icecast2_ices2 http://askubuntu.com/questions/28496/how-do-i-setup-an-icecast-server-for-broadcasting-audio-in-my-network