[V] DLNA Server – ps3mediaserver

Die ps3mediaserver Installation

Nachdem der Rechner an sich jetzt läuft, machen wir uns daran, den DLNA Server zu installieren.

Ich habe mich hier für den ps3mediaserver entschieden und nicht für Twonkyserver oder Mediatomb.
Twonkyserver kostet Kohle und mediatomb kann nicht transcoden im headless Mode.
Bringt uns also beides nichts.

Der ps3mediaserver ist ein einfaches Java Paket, das auf ein paar Linux Binaries zugreift um die abzuspielenden Datein lesen zu können.
Im Prinzip wird der mplayer gestartet und das was dort rauskommt wird an die Playststion gestreamt.

Also müssen wir nur den mplayer ans laufen kriegen und das Java Paket mit ein wenig Konfiguration starten.
Damit wir aber die volle Power unserer 4 (virtuellen) Kerne nutzen können, müssen wir die mplayer Binary aber von Hand mit multithreading Support kompilieren.

mplayer Multithreading
Multithreading ist im eigentlichen mplayer nicht drin.
Es gibt aber eine spezielle ffmpeg-mt Multithreading Version die man nutzen kann.

Falls durch irgendwelche Abhängigkeiten bei euch der mplayer oder ffmpeg installiert wurde, ist jetzt ein guter Zeitpunkt die Sachen zu deinstallieren.

apt-get remove mplayer ffmpeg libswscale0

Dann ffmpeg-mt kompilieren

git clone http://git.gitorious.org/ffmpeg/ffmpeg-mt.git (das dauert ein wenig)
cd ffmpeg-mt/
rm -rf libswscale/
git clone git://git.mplayerhq.hu/libswscale
./configure –enable-gpl –enable-shared
make && make install

Jetzt die mplayer Sourcen ziehen und die ffmpeg-mt Sourcen vom ffmpeg ins mplayer Verzeichnis kopieren.
Wenn man diesen jetzt kompiliert, hat man die Multithreading Version.
Die Binaries kommen dann nach /usr/local/bin

cd /root/installation
wget http://www.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
bunzip2 mplayer-export-snapshot.tar.bz2
tar xvf mplayer-export-snapshot.tar
rm -f mplayer-export-snapshot.tar.bz2
cd mplayer-export-2010-10-29/ffmpeg/
rm -rf libavcodec libavformat libavutil
cp -a ../../ffmpeg-mt/libavcodec ../../ffmpeg-mt/libavformat/ ../../ffmpeg-mt/libavutil/ .
./configure
make
cp mencoder mplayer /usr/local/bin/

ps3mediaserver
Wenn der mplayer einmal geht, muss nur noch der ps3mediaserver runtergeladen, konfiguriert und gestartet werden.
Das Programm bekommt man unter http://code.google.com/p/ps3mediaserver/downloads/list

Ab hier arbeiten wir mit unserem normalen User, nicht mehr mit root.
Bei mir ist das angelone.
Benutzt direkt meine PMS.conf und WEB.conf, dann sind alle Einstellungen soweit schonmal voreingestellt und Ihr habt die digitallyimported Shoutcast Streams im Webradio.

Die Installation geht wie folgt
Die Versionsnummern ändern sich natürlich mit der Zeit:

cd /home/angelone
wget http://ps3mediaserver.googlecode.com/files/pms-generic-linux-unix-1.20.412.tgz
tar xvfz pms-generic-linux-unix-1.20.412.tgz
cd pms-linux-1.20.412/
rm WEB.conf
wget http://www.myangelone.de/files/WEB.conf
wget http://www.myangelone.de/files/PMS.conf

In PMS.conf müsst Ihr in der ersten Zeile das Homedir des PMS anpassen auf eures.
Und weiter unten habe ich “network_interface = eth0”, dass müsst Ihr ändern auf das Interface, auf das Ihr streamen wollt, also wlan0 oder eth0.
Es geht leider nur 1 pro PMS Instanz.
Man kann den aber wohl 2x starten, kopiert euch dafür das ganze Programmverzeichnis und ändert im neuen die Config auf das andere Interface.
Die Config ist blöderweise gar nicht dokumentiert, da muss man etwas spielen.
Oder den PMS mit GUI auf dem Desktop starten, alles einstellen und dann die PMS.conf auf den DLNA Server kopieren.

An dem Punkt seit Ihr jetzt fertig.
Der PMS muss jetzt nur noch gestartet werden und wenn euer Netzwerk korrekt konfiguriert ist, taucht der auf der PS3 im XMB auf.

Damit der PMS immer läuft, behelfe ich mir mit dem Programm “screen”.
Mittels screen kann man eine virtuelle Console aufmachen und das Terminal danach schliessen.
Der Vorteil hier im Gegensatz zu der Variante, dass man den PMS als Service startet ist, dass man sehen kann, was das Teil so tut.
Der Nachteil ist, dass man den PMS nach einem Reboot von Hand starten muss.

Das geht wie folgt (alles als normaler User):

screen
cd /home/angelone/pms-linux-1.20.412/
./PMS.sh

An dem Punkt läuft alles.
Man kann diese virtuelle Console jetzt mit
CTRL+A D
Verlassen und ist wieder in der normalen Console.

Man kommt per “screen -r” wieder in die Console rein.
Der erste Start dauert ein wenig, weil der PMS sich eine Bibliothek mit den im Userdir vorhandenen Mediendateien anlegt.

Benutzung

Man kann jetzt auf der Playstation durch die Ordner browsen und die Videos abspielen.

In jedem Ordner ist oben ein #–TRANSCODE–# Ordner.
Das ist ein virtueller Ordner in dem man zu jedem Videofile die Transcoding Einstellungen einzeln anwählen kann.
Hat man z.B. eine .mkv mit deutschem und englischem Ton, kann man über den Transcode Ordner auswählen, welchen Ton man abspielen will.
Das selbe mit Untertiteln.

Es gibt dann so ähnliche Einträge:

[Mencoder] {Audio: mp3/Sub: SSA ENG}
[Mencoder] {Audio: mp3/Sub: SSA JAP}

Man startet das Video mit den gewünschen Einstellungen dann über den jeweiligen Eintrag.

Wenn das nicht stimmt, kann man in der screen Console gucken wo das Problem liegt.
Meist schmiert der mencoder Thread ab aus irgend einem Grund.
In dem Fall hilft meist das beenden und neustarten des PMS per CTRL+C und ./PMS.sh
Das Programm ist bei weitem nicht perfekt, aber ich bin damit bisher ganz gut gefahren.

Was auf jeden Fall eher mangelhaft funktioniert ist das Szenenbrowsen über die Quadrattaste der Playstation.
Hier schmiert der PMS regelmässig ab.
Irgendwann wird das auch mal gefixed.

Wenn Ihr irgend ein Videoformat nicht abspielen könnt, dannliegt das am mplayer.
In dem Fall muss der mplayer neukompiliert werden mit dem passenden Codec.
Dazu gibt es eigentlich immer irgendwo ein Tutorial im Internet.

Ob das Multithreading funktioniert seht Ihr, indem Ihr wärend der Wiedergabe eines Videos einen Processviewer wie “top” aufmacht.
Da muss dann irgendwo ein mencoder Thread sein, der mehr als 100% CPU nutzt.

Viel Spass mit eurem neuen DLNA Server!

Comments on this post

  1. Kai Machmerth

    Hi,

    bin auf Dein TUT gestoßen und habe den Eindruck das Du mir evtl. weiterhelfen könntest.
    Es wird soviel über das vernetzen der PS3 mit dem PS3 Media Sever Prog geschrieben, aber das hat mir alles bisher nicht geholfen! Somit hoffe ich auf Deine Unterstützung.

    Mein Problem: das Programm PS3 Media Server, installiert auf einem Windows7 Rechner, findet die PS3 nicht! Das komische ist meine PS3 ist schon länger mit meinem PC über WLAN/Router vernetzt. Auch das streamen über den Windows Media Player funktioniert oder z.b. Bilder die ich freigebe, da ich auf der XMB meinen PC Namen auch sehe.
    Möchte aber mal das Programm ausprobieren, aber bekomme keine Verbindung des Programms zur PS3 hin.

    Hast Du eine ungefähre Vorstellung was das Problem sein könnte?

    Vielen Dank im Voraus

    Kai Machmerth

  2. Hi Kai,
    ich kann mir sehr gut vorstellen, dass der ps3mediaserver auf dem falschen interface läuft.
    Abgesehen davon, dass viele Rechner zwei Ethernetkarten haben, kann das z.B. auch eine Firewire Schnittstelle sein.
    Im General Configuration Tab vom Programm kannste das Netzwerkinterface einstellen.
    Wenn du das Programm startet steht im Log auf welchem Interface der läuft.
    Bei mir steht z.B.:

    […]
    [main] TRACE 14:18:49.443 Registering transcoding engine Raws Thumbnailer
    [main] TRACE 14:18:50.048 Scanning network interface eth0 / eth0
    [main] TRACE 14:18:50.082 Using address /192.168.1.1 found on network interface: name:eth0 (eth0) index: 2 addresses: /192.168.1.1;
    [main] TRACE 14:18:50.083 Created socket: /192.168.1.1:5001
    [main] TRACE 14:18:50.573 Using database located at : /home/angelone/pms-linux-1.20.412/database
    [main] TRACE 14:18:51.874 A tiny media library admin interface is available at : http://192.168.1.1:5001/console/home
    [main] TRACE 14:18:51.876 Detected plugin net.pms.external.SoundCloud4PS3
    [main] TRACE 14:18:52.783 SoundCloud4PS3: v0.4
    [main] TRACE 14:18:52.835 Using following UUID: 32438e69-9d0b-3a66-b6d4-bb971e453e32
    [main] TRACE 14:18:58.679 It’s ready! You should see the server appears on XMB

    Da steht auch die IP auf der der Server läuft.
    Die sollte im selben Segment sein wie die Playstation.

    Guck dir das mal genauer an

    Gruß,
    Martin

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.