Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour

Vu que j'ai bien galéré et que j'ai fait de nombreux essais avant d'y arriver, je voudrais faire profiter les autres de PS3 Media Server.

Pourquoi PS3 Media Server (PSM) ? Parce qu'il permet de lire de nombreux formats de vidéo sur une PS3 AVEC DES SOUS-TITRES ...

Je vais essayer de rédiger quelque chose de simple, qui fonctionne.

Je précise que j'ai du le réinstaller ce matin suite à la MAJ de DSM. Donc je vais essayer de ne pas sauter d'étapes.

Les binaires ne fonctionneront évidemment que sur un nas avec un processeur x86 (comme les atom par exemple)

Préalables :

-Savoir utiliser SSH et l'avoir activé sur le NAS

-Avoir installé java (via le centre de paquets)

-Avoir installé ipkg en utilisant le script bootstrap. http://forum.synolog...to_install_ipkg

-récupérer les binaires (j'ai passer des heures à compiler et à chercher les bonnes options, sans succès, il y avait toujours un truc qui n'allait pas) de mplayer, mencoder, tsMuxer, ffmpeg, dcraw, ici : https://launchpad.ne...erver/ packages (j'ai pris la version lucid). On extrait l'archive et on récupère les binaires contenus dans le paquet (dans data/usr/lib/ps3mediaserver/linux)

-->On m'a demandé comment récupérer les binaires. Un paquet deb est une archive comme un zip. Donc si vous savez pas, vous renommez en .zip et vous extrayez :)

-Pour éviter les galères futures, on les place quelque part sur /volume1 (qui ne sera pas effacé en cas de maj du DSM) et on crée des liens (par exemple : ln -s /volume1/binaires/mplayer /bin/ ) pour chaque binaire. Le but est de les retrouver dans le PATH (c'est-à-dire de pouvoir les lancer en tapant simplement "mplayer" et non pas "/volume1/binaires/mplayer)

-On installe quelques paquets : Ipkg install optware-devel gcc x264 xvid mpg123 ttf-bitstream-vera

-On installe pms : on récupère l'archive sur http://www.ps3mediaserver.org/ et on l'extrait quelque part (ex : /volume1/pms)

Dans le répertoire pms on modifie un peu le fichier PMS.conf pour ajouter : les repertoires contenant de la video (ex : /volume1/video), l'adresse ip du serveur (celle du syno) et on attribue un port (pas un port utilisé par une autre appli, donc par ex : 8324), et on ajoute

mencoder_font = /opt/share/fonts/bitstream-vera/Vera.ttf (pour les sous-titres)

-On recupere les sources de mediainfolib : http://downloads.sou...mSource.tar.bz2

On extrait l'archive et on modifie le fichier ZenLib/Project/GNU/Library/Configure

On cherche les lignes :

CXXFLAGS="$CXXFLAGS -DUNICODE"

ZenLib_CXXFLAGS="$ZenLib_CXXFLAGS -DUNICODE"

Et on les modifie comme ceci :

CXXFLAGS="$CXXFLAGS -DUNICODE -march=i486"

ZenLib_CXXFLAGS="$ZenLib_CXXFLAGS -DUNICODE -march=i486"

Puis on compile : sh CLI_Compile.sh --prefix=/opt/local --includedir='/opt/local/include' --libdir='/opt/local/lib:/opt/lib' --enable-shared=yes

Puis quand c'est fini on suit les indications du terminal pour se placer dans le bon sous-repertoire et on fait un make install

(Là je n'ai pas pu retrouver libzen.so, un point à creuser)

A la fin on se place dans le repertoire pms et on lance sh PMS.sh

Voilà si cela ne fonctionne pas merci de me dire ce qui coince et autant que possible j'essaierai de vous aider.

Il reste de toute façon des points d'amélioration comme par exemple créer un script qui lance PSM au boot (si quelqu'un veut s'y coller...).

Modifié par nico1375
  • 3 semaines après...
  • Réponses 84
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

Posté(e)

J'ai remarqué que quand on a un NAS avec architecture ARM on passe quand même a coté de pas mal de choses intéressantes :(

Moi j'aurais bien installé PLEX sur mon DS411 sinon <_<

Posté(e)

#!/bin/sh

DIRNAME=`dirname $0`

# OS specific support (must be 'true' or 'false').

cygwin=false;

case "`uname`" in

CYGWIN*)

cygwin=true

;;

esac

# For Cygwin, ensure paths are in UNIX format before anything is touched

if $cygwin ; then

[ -n "$PMS_HOME" ] &&

PMS_HOME=`cygpath --unix "$PMS_HOME"`

[ -n "$JAVA_HOME" ] &&

JAVA_HOME=`cygpath --unix "$JAVA_HOME"`

fi

# Setup PMS_HOME

if [ "x$PMS_HOME" = "x" ]; then

PMS_HOME=$DIRNAME

fi

export PMS_HOME

# XXX: always cd to the working dir: https://code.google.com/p/ps3mediaserver/issues/detail?id=730

cd $PMS_HOME

# Setup the JVM

if [ "x$JAVA" = "x" ]; then

if [ "x$JAVA_HOME" != "x" ]; then

JAVA="$JAVA_HOME/bin/java"

else

JAVA="java"

fi

fi

# Setup the classpath

# since we always cd to the working dir, these a) can be unqualified and B) *must*

# be unqualified: https://code.google.com/p/ps3mediaserver/issues/detail?id=1122

PMS_JARS="update.jar:pms.jar"

# For Cygwin, switch paths to Windows format before running java

if $cygwin; then

PMS_HOME=`cygpath --path --windows "$PMS_HOME"`

JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`

fi

# Execute the JVM

exec "$JAVA" $JAVA_OPTS -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath "$PMS_JARS" net.pms.PMS "$@"

Merci :)

Posté(e)

Ah oui, c'est un pur script de démarrage, il ne supporte pas le start/stop/status

Il me faudrait donc le nom du process exact, lance cette commande quand le PMS est lancé

ps w |grep java [/CODE]

Et colle le résultat :)

Posté(e)

DS1511> ps w |grep java

8165 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8168 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8169 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8170 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8171 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8172 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8173 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8174 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8175 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8182 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8184 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

8185 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

10948 root 897m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack

11448 root 2480 S grep java

DS1511>

Posté(e)

DS1511> ps www |grep java

14761 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14764 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14765 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14766 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14767 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14768 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14769 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14770 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14771 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14781 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14782 root 887m S /volume1/@appstore/java6/jre/bin/java -Xmx768M -Xss1024k -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -classpath update.jar:pms.jar net.pms.PMS

14790 root 2476 R grep java

DS1511>

Posté(e) (modifié)

Et voilà, comme promis :)

Script modifié, voir post #30

Il faut donc le placer dans le répertoire /volume1/startup (si on veux qu'il démarre automatiquement au lancement du syno)

Le nommer (de préférence) S99pms.sh

Il se lance comme suit : /volume1/startup/S99pms.sh start (ou stop ou status)

Hésitez pas si vous avez des questions

Modifié par bud77
Posté(e)

Hello Bud et merci.

pour le moment :

DS1511> /volume1/startup/S99pms.sh start

Exception in thread "main" java.lang.NoClassDefFoundError: net/pms/PMS

Caused by: java.lang.ClassNotFoundException: net.pms.PMS

at java.net.URLClassLoader$1.run(URLClassLoader.java:202)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:190)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)

at java.lang.ClassLoader.loadClass(ClassLoader.java:247)

Could not find the main class: net.pms.PMS. Program will exit.

Posté(e) (modifié)

Arf, après relecture, j'ai pas fait attention au PMS_HOME

Tu peux lancer un

 find / -name net.pms.PMS
et un
find / -name update.jar:pms.jar[/code]

Modifié par bud77
Posté(e)

DS1511> find / -name net.pms.PMS

find: /proc/2961/net: Invalid argument

DS1511>

DS1511> find / -name update.jar:pms.jar

find: /proc/2961/net: Invalid argument

DS1511>

ça va pas t'aider :(

Posté(e) (modifié)

J'ai pas posé la bonne question en fait :(

J'aurais du demandé "Quel est le répertoire ou se trouve le "PMS.sh" donc je suppose que c'est aussi /volume1/pms

Ce qui donne :

Voir post #30

Modifié par bud77
Posté(e)

ok, en lancant le script dans un terminal ça fonctionne.

par contre il est très bavard, et empêche de récupérer la main.

Quand je lance avec status dans un autre terminal il m'indique toujours que pms est down, alors qu'il est lancé.

Posté(e) (modifié)

Pour le fait qu'il rende pas la main, je regarde ce soir. Tu peux faire CTRL+C sous putty pour récupérer la main

Pour le fait qu'il soit bavard, çà doit être du au fait qu'il te rend pas la main justement, et t'affiche tout son log dans ton terminal

Pour le status, tu peux lancer cette commande quand il est lancé (via le vrai PMS.sh) :


ps |grep "net.pms.PMS" |grep -v grep

Edit : je viens de remarquer que j'ai oublié des double quotes sur la ligne :

if [ "$PNAME" = "0" ] ; then

J'édite au dessus

Modifié par bud77

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.