This is an old revision of the document!
Based on Fedora Installation Guide and help from will on the forums.
yum install java-1.6.0-openjdk
yum install ffmpeg
wget http://download.serviio.org/releases/serviio-1.0-linux.tar.gz
tar -C /opt -zxvf serviio-1.0-linux.tar.gz mv /opt/serviio-1.0 /opt/serviio
useradd -d /opt/serviio -r serviio chown -R serviio:serviio /opt/serviio
Create the initscript /etc/init.d/serviio with the following code:
#! /bin/sh # # chkconfig 35 85 15 # description: Start the serviio DLNA server in headless mode ### BEGIN INIT INFO # Provides: serviio # Required-Start: $network # Required-Stop: $network # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Description: Start the serviio DLNA server in headless mode ### END INIT INFO SERVIIO_HOME="/opt/serviio" SERVIIO_DAEMON="serviio.sh" SERVIIO_BIN="$SERVIIO_HOME/bin/$SERVIIO_DAEMON" SERVIIO_USER="serviio" # Source function library. . /etc/rc.d/init.d/functions RETVAL=0 check() { # Check that we're a privileged user [ $(id -u) = 0 ] || exit 4 # Check if SERVIIO_HOME exists test -d "$SERVIIO_HOME" || exit 5 # Check if SERVIIO_BIN is executable test -x "$SERVIIO_BIN" || exit 5 } start() { check echo -n "Starting Serviio DLNA server: " /bin/su --session-command="$SERVIIO_BIN -headless" $SERVIIO_USER & RETVAL=$? if [ $RETVAL -eq 0 ]; then touch /var/lock/subsys/serviio.sh echo_success else echo_failure fi echo return $RETVAL } stop() { check echo -n "Shutting down Serviio DLNA daemon: " # Retrieve JAVA Serviio process ID PIDDAEMON=`pgrep $SERVIIO_DAEMON` [ -z "$PIDDAEMON" ] || PIDJAVA=`ps -o pid= --ppid $PIDDAEMON` # Kill the daemon killproc "$SERVIIO_BIN" RETVAL=$? [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/serviio.sh echo # Kill the JAVA Serviio process if exists [ -z "$PIDJAVA" ] || kill -9 $PIDJAVA return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; force-reload) restart ;; restart) restart ;; condrestart) if [ -f /var/lock/subsys/serviio.sh ]; then restart fi ;; status) status serviio.sh ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|force-reload}" RETVAL=2 esac exit $RETVAL
chmod +x /etc/init.d/serviio chkconfig --add serviio chkconfig serviio on
service serviio start
service serviio stop
(I added these to my firewall.sh I run every time I update iptables, if you use another firewall just make sure the correct ports are open)
iptables -A INPUT -p udp -m udp --dport 1900 -j ACCEPT -m comment --comment "Serviio" iptables -A INPUT -p tcp --dport 8895 -j ACCEPT -m comment --comment "Serviio" iptables -A INPUT -p tcp --dport 23423 -j ACCEPT -m comment --comment "Serviio"
As per Building FFmpeg on Linux but edited slightly for CentOS:
yum remove x264 ffmpeg -y yum install git libfaac-devel libmp3lame-devel libtheora-devel \ libva-devel libvdpau-devel libvorbis-devel libX11-devel libXfixes-devel texi2html yasm \ libxvidcore-devel libXext-devel libXfixes-devel librtmp-devel -y
cd ~ mkdir src cd src git clone git://git.videolan.org/x264 cd x264 ./configure --enable-static --prefix=/usr make fprofiled make install
cd ~/src git clone http://git.chromium.org/webm/libvpx.git cd libvpx ./configure make install
cd ~/src git clone git://git.ffmpeg.org/rtmpdump cd rtmpdump make SYS=posix
cd ~/src git clone --depth 1 git://git.videolan.org/ffmpeg cd ffmpeg ./configure --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libtheora \ --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 \ --enable-x11grab --enable-libvpx --enable-librtmp --enable-libxvid make make fprofiled make install
# Setup Serviio specific properties JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dderby.system.home=$SERVIIO_HOME/library -Dserviio.home=$SERVIIO_HOME -Dffmpeg.location=/usr/local/bin/ffmpeg"