miniDLNA mit .m4b-Support auf dem BananaPi

Da ich gerne eine einfache und unkomplizierte DLNA Lösung haben wollte, hatte ich mir ja den BananaPi angeschafft. Nun bin ich endlich mal dazu gekommen, diesen richtig in Betrieb zu nehmen und habe das Debian installiert und den miniDLNA. Leider kennt der miniDLNA das Dateiformat „.m4b“ nicht, kann aber eingerichtet werden. Hinzu kommt, dass das Paket in den Debian-Repositories nicht mehr ganz aktuell ist und so kompilieren wir das eben selber.

Zuerst laden wir uns die aktuelle Version vom miniDLNA herunter:

wget http://downloads.sourceforge.net/project/minidlna/minidlna/1.1.4/minidlna-1.1.4.tar.gz

und mit

tar xzf minidlna-1.14.tar.gz

entdecken wir das ganze. Nun wechselt ihr in das Verzeichnis und editiert die Datei metadata.c und utils.c.

Patch anwenden

In der metadata.c sucht ihr nach

else if( ends_with(path, ".m4a") || ends_with(path, ".mp4") ||

und fügt vor dem zweiten ends_with ein

ends_with(path, ".m4b") ||

Die Zeile sollte dann so aussehen:

else if( ends_with(path, ".m4a") || ends_with(path, ".m4b") || ends_with(path, ".mp4") ||

In der utils.c sucht ihr euch die Zeile

ends_with(file, ".m4a") || ends_with(file, ".aac")  ||
und fügt hier folgendes ein
ends_with(file, ".m4b")

Die Zeile sollte dann so aussehen:

ends_with(file, ".m4a") || ends_with(file, ".m4b") || ends_with(file, ".aac")  ||

Bibliotheken installieren

Habt ihr beide Dateien erfolgreich editiert, müssen wir nun die Entwicklungsumgebung mit den passenden Bibliotheken installieren. Unter Debian geht das einfach mit

sudo apt-get install build-essentials ffmpeg libavutil-dev libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libFLAC-dev gettext

Ganz wichtig ist gettext. Ohne dieses Tool schlug make immer fehl. Wenn das erledigt ist, könnt ihr mit

./configure

im miniDLNA Verzeichnis die Konfiguration prüfen. Falls doch noch ein Paket fehlen sollte, so installiert es einfach nach und führt ./configure erneut aus.

Mit einem

sudo make install

wird miniDLNA dann im Verzeichnis

/var/local/sbin

installiert. Eine Beispielkonfiguration minidlna.conf-Datei findet ihr im minidlna-Verzeichnis. Hier ist meine in Kurzform:

# miniDLNA Config File
# 2015-01-05
# Port number for HTTP traffic (descriptions, SOAP, media transfer).
port=8200
# nutzer und gruppe muss vorher angelegt werden
user=minidlna
# verzeichnisse
media_dir=/var/lib/minidlna
db_dir=/var/lib/minidlna
log_dir=/var/log
log_level=error
# Name that the DLNA server presents to clients.
friendly_name=Bananian-DLNA
# Serial number the server reports to clients.
serial=0192837465
# Model name the server reports to clients.
model_name=Bananian-DLNA
# Automatic discovery of new files in the media_dir directory.
inotify=yes
# List of file names to look for when searching for album art. Names should be
# delimited with a forward slash ("/").
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg/AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg/Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
enable_tivo=no
# Notify interval, in seconds.
notify_interval=895

Dieses speichert ihr am besten in einer minidlna.conf Datei in eurem Home-Verzeichnis. Den Server startet ihr dann mit dem folgenden Befehl:

 sudo /usr/local/sbin/minidlnad -f ˜/minidlna.conf

Wenn alles funktioniert hat, dann sieht das im Log so aus:

miniDLNA Log

Sobald eine neue Datei hinzukommt, wird die Datenbank aktualisiert. Im VideoLanClient sieht das dann so aus:

miniDLNA im VLC

Zum testen habe ich mir ein paar Videos von Youtube heruntergeladen. Einmal als .mp4, als .flv, als .mp3 und .ogg. Alle Dateien lassen sich ohne Verzögerung abspielen und auch das hin und herspringen in Musik und Video funktionieren gut.

Und bevor ich es vergesse, die .m4b-Dateien werden ebenfalls erkannt und gelistet. Nur hatte ich da den Screenshot schon fertig.

ToDo

Als nächstes will ich das am Fernseher testen und schauen, wie schnell dort die Sachen laden. Ausserdem kann mein TV auch Bilder anzeigen. Die Daten die ich habe in das richtige Format bringen, richtig benennen und mal richtig einsortieren. Meine Youtube-ToDownload-Playlist endlich herunterladen und im Netzwerk zur Verfügung stellen.

Für heute reicht es aber – genug gefummelt.

Dieser Beitrag wurde unter Allgemein abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.