PS3 Mediaserver

From ArchWiki
Revision as of 08:55, 17 August 2012 by Fengchao (Talk | contribs) (Use AUR template.)

Jump to: navigation, search

Server implemented in java. Has very good default transcoding profiles for several clients, but lacks good information for headless servers.

Install pmsAUR from AUR.

The default install location is /opt/pms and the config file is at /opt/pms/PMS.conf, there are comments describing what each option is for.

If running headless on a server

Operating Mode
minimized = true

If you don't want your entire filesystem to be shown

Media Locations
folders = /directory.you.want.shared/,/another.directory

If you run into issues with the wrong audio track playing (example: English desired)

Audio language priority
mencoder_audiolangs = eng,und

Example of english subtitles desired, no subtitles by default on English programs

Subtitle language priority
mencoder_sublangs = loc,eng,und

A list with all options can be found here.

  • In order to run it as a daemon:
May not be necessary on all systems
# mkdir /opt/pms/database
# chown <username> /opt/pms/database
# chown <username> /var/log/pms.log
# /etc/rc.d/pms start
  • Use your web browser to go to: http://<ip-address-of-your-server>:5001/console/home and click on 'index files and folders'
  • (optionally) watch the output with 'tail -f /var/log/pms.log' or 'tail -f /opt/pms/debug.log' for any problems.
  • After the indexing has ended, you are done.

Use the following modified daemon script (originally from pms-svn).

/etc/rc.d/pms
#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/pms

PID=`cat /var/run/pms.pid 2> /dev/null`
[ -z "$PID" ] && PID=`ps -Ao pid,command | grep java | grep pms.jar | awk '{print $1}'`

case "$1" in
	start)
		stat_busy "Starting PS3 Media Server"
		if [ -z "$PID" ]; then
			if [ -n "$PMS_USER" ]; then
				su -s '/bin/sh' $PMS_USER -c "/usr/bin/ps3mediaserver &>> /var/log/pms.log" &
			else
				/usr/bin/ps3mediaserver &>> /var/log/pms.log &
			fi
			PID=$!
			if [ $? -gt 0 ]; then
				stat_fail
			else
				echo $PID > /var/run/pms.pid
				add_daemon pms
				stat_done
			fi
		fi
		;;
	stop)
		stat_busy "Stopping PS3 Media Server"
		[ ! -z "$PID" ]  && kill $PID &> /dev/null
		while ps -p $PID &> /dev/null; do sleep 1; done
		if [ $? -gt 0 ]; then
			stat_fail
		else
			rm /var/run/pms.pid 2> /dev/null
			rm_daemon pms
			stat_done
		fi
		;;
	restart)
		$0 stop
		sleep 1
		$0 start
		;;
	*)
		echo "usage: $0 {start|stop|restart}"
		;;
esac
exit 0
/etc/conf.d/pms
PMS_USER='<user name to run it as>'