TwonkyServer unter Ubuntu 10.04 verwenden

Mit dem Erwerb eines neuen, netzwerkfähigen Fernsehers entstand der Wunsch die zentral verwalteten Musikstücke nicht nur per DAAP-Protokoll zu verteilen, sondern auch per DLNA MediaServer. Gleiches sollte auch für andere Medien (Fotos & Videos) geschehen.

Die Wahl der Software fiel dabei auf den TwonkyServer der PacketVideo Corporation, ein kommerzielles aber bezahlbares closed-source Produkt der TwonkyMedia Suite. Für die Installation unter Ubuntu 10.04 Lucid Lynx mussten einige Informationen zusammengesucht werden, die ich hier gesammelt zur Verfügung stelle.

Mein Heimserver ist ein stromsparender PC auf Intel Atom 330 Basis mit Ubuntu Linux 10.04.2 LTS (Lucid Lynx) in der 64-Bit Server-Variante. Angesprochen wird die Maschine ausschließlich per SSH oder Browser, einen Bildschirm gibt es nicht.

Falls bisher noch keine 32-Bit-Applikation installiert wurde, muß zunächst ein Paket zur Kompatibilität installiert werden.

$ sudo apt-get install ia32-libs

Zur Installation des TwonkyServers habe ich mich für das einfache ZIP-Archiv entschieden. Der Installer funktioniert zwar grundsätzlich, bot mir aber nicht genug Kontrolle über die Installation.

$ wget http://www.twonky.com/upfiles/twonkymedia-i386-glibc-2.2.5-6.0.38.zip

Gemäß des Linux FHS werden die eigentlichen Programmdateien unter /opt/twonkymedia installiert.

$cd /opt
$ sudo unzip twonkymedia-i386-glibc-2.2.5-6.0.38.zip
$ sudo ln -s twonkymedia-6.0.38 twonkymedia

Dann werden das mitgelieferte Start/Stop-Skript und die Beispiel-Konfiguration an entsprechende Stellen kopiert.

$ sudo cp /opt/twonkymedia/twonkymedia.sh /etc/init.d/twonkymedia
$ sudo chmod +x /etc/init.d/twonkymedia
$ sudo cp /opt/twonkymedia/twonkymedia-server-default.ini /etc/opt/twonkymedia.ini

Als nächstes stehen Anpassungen an diesen beiden Dateien an. In der Start/Stop-Datei werden zunächst einige Pfade gesetzt. Ohne diese Anpassungen tendiert TwonkyServer dazu, sich im gesamten System zu verteilen.

Ich bin vim-Freund, natürlich kann auch jeder andere Editor zum Einsatz kommen.

$ sudo vim /etc/init.d/twonkymedia

Ab Zeile 28 wird der Setup-Bereich modifiziert:

#==================================================================[ Setup ]===

WORKDIR1="/opt/twonkymedia"
WORKDIR2="`dirname $0`"
PIDFILE=/var/run/mediaserver.pid
LOGFILE=/var/log/twonkymedia.log
INIFILE=/etc/opt/twonkymedia.ini
APPDATA=/var/opt/twonkymedia/config

#=================================================================[ Script ]===

Gerne hätte ich auch den Namen des PID-Files geändert, aber dies wird vom Server nicht unterstützt. Ab Zeile 94 überredet man den Server-Prozeß zur Verwendung der neuen Werte. Außerdem wird duch das Entfernen des -D Parameters der Dienst nicht mehr im Dämon-Modus gestartet:

"$TWONKYSRV" -inifile "$INIFILE" -logfile "$LOGFILE" -appdata "$APPDATA"

Jetzt geht es in die Konfigurationsdatei. Hier sind ebenfalls einige Pfade zu setzen, damit der Server innerhalb der angedachten Grenzen des Filesystems bleibt.

$ sudo vim /etc/opt/twonkymedia.ini

Meine Medien liegen unter /var/share in Unterverzeichnissen. Entsprechend des eigenen Setups ist mindestens der Parameter “contentbase” anders zu belegen.

Wichtig: Es ist eine ausgiebige Liste an “black listed” (ignorierten) Verzeichnissen in TwonkyServer eingebaut in denen nicht gesucht wird, auch wenn sie durch contentbase und contentdir eigentlich erfasst werden! Die Liste findet sich im Twonky Forum.

Der vorhandene, überschaubare Bestand an Optionen wird auf den folgenden Stand ausgebaut bzw. geändert:

contentbase=/var/share
contentdir=+A|/audio,+P|/image,+P|/video
followlinks=0
radio=0
readdbondemand=0
ignoredir=AppleDouble,AppleDB,AppleDesktop,TemporaryItems
suppressmenu=divAutoShare
cachedir=/var/cache/twonkymedia
dbdir=/var/opt/twonkymedia/db
servermanagedmusicdir=/var/opt/twonkymedia/managed/music
servermanagedpicturedir=/var/opt/twonkymedia/managed/pictures
servermanagedvideodir=/var/opt/twonkymedia/managed/videos
onlinedir=/var/cache/twonkymedia/online-data
mediastatisticsdir=/var/opt/twonkymedia/statistics
rmhomedrive=/var/opt/twonkymedia/db
bgtrans=JPEG=1,MP3=0,MPEG2=1,WMV=0,MPEG4=0,Flash=0
language=de

Bevor der Server jetzt gestartet wird, sind noch einige Pakete zu installieren, damit das Transcoding (die Wandlung von Video- und Audioströmen in ein Format) funktioniert. Den entsprechenden Hinweis habe ich diesem Post entnommen.

$ sudo apt-get install libavcodec-unstripped-52 libavdevice-unstripped-52 \
 libavformat-unstripped-52 libavutil-unstripped-49 libpostproc-unstripped-51 \
 libswscale-unstripped-0 ffmpeg

Nun ist der Pfad zu ffmpeg in der entsprechenden Datei einzutragen,

$ sudo vim /opt/twonkymedia/cgi-bin/ffmpeg.location

so daß sie nun folgenden Inhalt hat:

/usr/bin

Gleiches wird nun für das Matroska Container-Format eingestellt:

$ sudo touch /opt/twonkymedia/cgi-bin/ffmpeg-mkv-mpeg.desc
$ sudo chmod 644 /opt/twonkymedia/cgi-bin/ffmpeg-mkv-mpeg.desc
$ sudo vim /opt/twonkymedia/cgi-bin/ffmpeg-mkv-mpeg.desc

Die neue Datei erhält folgenden Inhalt:

exec: ffmpeg -threads 2 -i $infile -vcodec mpeg2video -sameq -acodec copy -f vob -copyts -y $outfile
# capabilities
from=video/x-matroska
to=video/mpeg
synchronous
priority=idle

Mit Version 6.0.34 hat eine neue Datei Einzug gehalten, welche zur Anlage von Vorschaubildern (thumbnails) für Videos verwendet wird. Leider gibt es hier einen Fehler beim Aufruf von ffmpeg (zumindest unter Ubuntu 10.04 LTS), so daß statt Vorschaubildern nur Fehler durchs Log rasseln. Man ändere in der Datei /opt/twonkymedia/cgi-bin/ffmpeg-video-thumb.desc die Zeile 3 von

exec: ffmpeg  -itsoffset -$videothumbtime  -i $infile …

zu

exec: ffmpeg  -itsoffset $videothumbtime  -i $infile …

Sprich – das führende Minus vor $videothumbtime muß entfernt werden.

So, das war’s – die restlichen Parameter lassen sich einfacher über das Webinterface einstellen. Zeit den Server zu starten …

$ sudo /etc/init.d/twonkymedia start

Wenn der Start erfolgreich war, steht der Server jetzt auf Port 9000 zur Verfügung. Als letzten Schritt kann der TwonkyServer noch automatisch beim Hochfahren der Maschine gestartet werden:

$ sudo update-rc.d twonkymedia defaults

Falls es wider Erwarten Probleme beim Start gibt, liefert das Logfile unter /var/log/twonkymedia.log vielleicht eintscheidende Hinweise.

  1. Tobi sagt:

    Danke für die tolle Anleitung.

  2. Tom sagt:

    Ja gute Anleitung!
    Kann man den Server auch unter einem anderen unpreviligierten Benutzer laufen lassen?
    Das Problem scheint zu sein, dass dann das PID-File nicht mehr geschrieben werden kann und man kann dafür kein Verzeichnis mit entsprechenden Rechten angeben.

  3. Christoph sagt:

    Hi Tom,
    ich hab noch keinen Weg gefunden. Die Definition des PID-Files im init.d Skript wirkt sich nur auf die Prüfungen im Skript selber aus, der Server schreibt es immer nach /var/run/mediaserver.pid . Dieser Pfad scheint hart-verdrahtet.

  4. Christian sagt:

    Danke für diese absolut gelungene Anleitung, vor allem die Angaben der verschiedenen Parameter waren für mich sehr hilfreich!

  5. svg sagt:

    Danke für die tolle Anleitung!

    in der twonkymedia.ini datei kann man auch den HTTPPORT angeben damit der TwonkyServer auch betrieben werden kann wenn port 9000/tcp schon vergeben ist (zB bei mir von Squeezebox server, oder bei anderen von Synology).
    hierzu trägt man in der twonkymedia.ini einfach “httpport=9200″ ein. Wobei 9200 halt der gewünschte port sei.

    gruss
    Stephan

  6. Thomas sagt:

    Vielen Dank für die sorgfältige Anleitung – auch für die Script-Installation sehr nützlich.

Kommentar hinterlassen