Multimedialer Umbau im ckl-net

Nachdem ich nun meinen neuen Rechner vor zwei Wochen geliefert und eingerichtet habe, sitze ich nun auch wieder öfter vor dem PC. Die letzten Monate verbrachte ich hauptsächlich am Notebook und erledigte dort meine Arbeiten.

Wie aus den Anfangstagen des Blogs vielleicht noch bekannt ist, habe ich einen alten Rechner als Medienserver eingerichtet und diesen über LWL an meine Steroanlage angebunden. Allerdings liegen alle aktuellen Lieder auf meinem Embedded-Server, der sowieso die ganze Zeit über läuft. Der kleine Server steht direkt neben der Stereo-Anlage und somit liegt nichts ferner, als beide miteinander über 3,5-Klinke zu verbinden.
An sich kein Problem. Ich wollte nun aber auch wieder meine MP3s an meinem neuen PC hören. Die Möglichkeit, per NFS auf die Dateien zuzugreifen, besteht – finde ich aber persönlich nicht schön. Ich will nämlich gerne bei Parties auch MP3s hören und dafür müssten dann zwei verschiedene Systeme laufen (Medienserver und Embedded-Board).

Nach einigem Überlegen bin ich zu dem Schluss gekommen, dass meine MP3s zentral auf dem Embedded-Board liegen. Das Board wird über Klinke an die Stereoanlage angeschlossen. Musik wird live sowohl an die Soundkarte ausgegeben, als auch per Icecast als OGG-File gestreamt. Die Musik möchte ich sowohl mit meinem Handy, mit meinem Notebook als auch mit meinem N770 ändern können.

Nichts lag nun ferner, als auf altbekanntes zurückzugreifen: MPD hatte mich vor einem Jahr schon begeistert. Die Installation erfolgte mit einem einfachen

apt-get install mpd

.
/etc/mpd.conf muss folgendermaßen angepasst werden:

music_directory         "/share/public/mp3"
playlist_directory      "/share/public/playlists"
db_file                 "/var/lib/mpd/tag_cache"
log_file                "/var/log/mpd/mpd.log"
error_file              "/var/log/mpd/errors.log"
pid_file                "/var/run/mpd/pid"

audio_output {
        type                    "shout"
        name                    "$FILE"
        host                    "$IP"
        port                    "8000"
        mount                   "/mpd.ogg"
        password                "$ICECAST_PASSWORT"
        quality                 "5.0"
        format                  "44100:16:1"
}

Dadurch werden alle Medien-Dateien im Verzeichnis /share/public/mp3 automatisch an den Icecast-Server gesendet. Der Stream ist dann unter $IP:800/mpd.ogg für die Clients verfügbar. Es kann übrigens entweder bitrate ODER quality gesetzt werden. Beides funktioniert nicht.

Als nächstes folgte ein

apt-get install icecast2

.
Hier muss auch wieder die Konfiguration /etc/icecast2/icecast.xml angepasst werden. Die wichtigen Einträge sind:

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>$ICECAST_PASSWORT</source-password>
    </authentication>

    <listen-socket>
        <port>8000</port>
        <bind-address>$IP</bind-address>
    </listen-socket>

    <mount>
        <mount-name>/mpd.ogg</mount-name>
    </mount>

Mit den Einstellungen kann MPD die Daten an Icecast senden.
Icecast veröffentlich den Stream dann unter /mpd.ogg
$ICECAST_PASSWORT muss logischerweise in beiden Konfigurationen identisch sein.
Außerdem muss -wenn Icecast als Daemon gestartet werden soll- in der Datei /etc/default/icecast2 ENABLED auf “true” gesetzt werden.

Nun muss zuerst Icecast, danach dann MPD gestartet werden

/etc/init.d/icecast start
/etc/init.d/mpd start-create-db

MPD muss beim ersten Start die MP3-Datenbank initalisieren, was je nach Umfang der MP3s ein paar Minuten dauert.

Mit

apt-get install ncmpc

lässt sich ein einfach NCurses-basierender Client installieren. Über

ncmpc -h $IP

kann man sich nun mit dem MPD verbinden und Dateien abspielen.

An meinem Client kann ich nun z.B. in Winamp die URL $IP:8000/mpd.ogg öffnen und höre die gerade abgespielte Datei.
Neben ncmpc existieren natürlich noch viele weitere Clients, z.B. Pitchfork, der auf Apache/PHP basiert.

Soweit bietet das Tutorial nicht viel Neues – viel steht auch im Wiki von ubuntuusers.de. Ich will nun aber einen Schritt weiter gehen. Mit meinem Handy möchte ich nun die MP3s abspielen. Pitchfork bietet zwar diese Möglichkeit, allerdings ist mein P910i nur begrenzt XHTML fähig, so dass ich da lieber etwas netteres hätte.
Auch hier kann ich auf alt-bekanntes zurückgreifen: Bemused ist eine Client-/Server-Software. Der Client läuft auf Symbian-Handys – also auch auf meinem P910i. Installieren musste ich diesen nicht weiter, der war noch auf meinem Handy.
Der Server allerdings unterstützt standardmäßig nur das Abspielen, wenn XMMS bzw. noXMMS als Music Dispatcher läuft. Glücklicherweise gibt es unter http://bemused-lnx-mpdhack.origo.ethz.ch/download/513 einen Patch, der Bemused MPD fähig macht.

Die Installation erfordert ein paar mehr Schritte:

cd /tmp
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.11.tar.gz
tar -xvzf libiconv-1.11.tar.gz
cd libiconv-1.11.tar.gz
./configure
make
make install-lib
# Folgendes war nur bei mir nötig
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/i486-linux-gnu/libiconv.so.2

# noXMMS hat zwar viele Dependencies, aber egal
apt-get install xmms-dev
apt-get install libbluetooth2-dev

wget http://download.origo.ethz.ch/bemused-lnx-mpdhack/513/bemused-mpd-r060.tar.gz
tar -xvzf bemused-mpd-r060.tar-gz
cd bemused-mpd-r060
make
cp bemused.conf /etc/
cp bemusedlinuxserver /usr/bin

Das passende start-stop-Script für Bemused gibts hier im Blog.
Wenn am Board ein Bluetooth-Stick angeschlossen ist, kann nach dem Start von Bemused (./bemusedlinuxserver) die Dateien in der MPD-Library direkt über den Bemused-Client vom Handy aus angetriggert werden.

Leave a reply

Your email address will not be published.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>