
Update – Serviio version 2.0 is a new major version, so existing Serviio 1.x licences will not unlock the Pro features without a fresh licence purchase. If you wish to downgrade back to version 1.10.1 you may manually install the older package (merged architectures, or evansport) but your media library will need to be rebuilt.
Running the Serviio DLNA server on a NAS is a very efficient solution. It allows all your media to be constantly available to all your devices, all without the need for a dedicated media PC. Most TV and Bluray players are already capable media renderers – so indexing the library, retrieving metadata, and streaming the content are where Serviio fits in. Device support is continually improved by a community of contributors, and this crowd-sourced aspect was what initially drew me to the project, leading me to create the Sony Bluray device profile back in 2010. Serviio can also connect to online sources of content such as catch-up TV portals and allow fuss free content playback without advertising, even on devices which lack native support. These online plugins are also community maintained.
This new version of the Synology package updates Serviio to version 2.0 which fixes some issues and introduces multiple user support (release notes). Version 1.10 improved MediaBrowser, and also 4K media support. Version 1.9 replaced the Flash Player dependency in MediaBrowser with an HTML5 player. Serviio 1.7 brought audio track selection preferences, and automatic subtitle downloading. The most significant enhancement from version 1.6 onwards is the new web management console which removes the need to install the separate Serviio Console application on a computer. The web console uses a modern adaptive design which works well on mobile devices, and it is now integrated with DSM so you will see its icon in the application menu when the package is running:


The package supports hardware transcoding on the DS214play and DS415play with Intel Evansport media processor. This support required substantial personal effort and was made possible by the very kind donation of a new DS214play unit from MrK/Boretom a fellow package maintainer for ASUStor devices.
Limitations
If you use a TV, Bluray or media player bought in the last few years it is likely to have very good format support. In this case even a low specification NAS will be adequate for streaming most video content. There are some limitations however, in particular with video transcoding.
Serviio’s MediaBrowser is a Pro version only feature, and is designed to allow direct playback of media on tablet devices without the need for dedicated apps. Please note that Apple iOS devices require video in H.264 and audio in stereo AAC format when streaming. With the exception of the “play” models already mentioned, most Synology NAS models lack the CPU power to transcode video into H.264 in realtime. Even if the source video is already H.264, ARMv5 family CPUs (which lack an FPU) in the older models lack the power even to transcode AAC audio in realtime without libfdk_aac. Unfortunately I am unable to distribute an FFmpeg binary compiled against this library under the terms of its software license.
Ever since Serviio version 1.2 renderers that do not natively support subtitles via DLNA can have them burned into the video during transcoding, but as already explained a NAS usually lacks the CPU power to do this (more info on subs here). If you absolutely need hard subs for a particular film, you could start playback on your device then stop it and Serviio will continue transcoding. Then you will be able to try again in a few hours since it will play from the transcode cache folder. Newer TVs tend to support inline SRT subs, but for those with older models I can recommend the PlayStation 4 Media Player as a competent DLNA renderer with inline subs support.
I was able to compile FFmpeg for all eight supported architectures (ARMv5, ARMv7, ARMv7 with NEON, ARMv8, Intel i686, Intel x64, Intel Evansport media processor, and PowerPC e500v2) with the additional libraries Serviio requires while using the libs included within DSM as far as possible. I have published my compilation methods to make the process easier for others in future since parts of it were difficult to figure out. Only the Intel CPU or higher end ARM CPUs are likely to be of any practical use transcoding to H.264, since the other CPU types lack vector units (no AltiVec in QorIQ/PowerQUICC, and no NEON in Armada 370/XP).
Synology Package Installation
- In Synology DSM’s Package Center, click Settings and add my package repository:

- The repository will push its certificate automatically to the NAS, which is used to validate package integrity. Set the Trust Level to Synology Inc. and trusted publishers:

- Serviio now requires Java 8 for OS-native filesystem watching, so you will need to install my Java SE Embedded package first if you have not already done so. Read the instructions on that page carefully too.
- Now browse the Community section in Package Center to install Serviio:

Community packages are not listed in the All category for some reason. The repository only displays packages which are compatible with your specific model of NAS. If you don’t see Serviio in the list, then either your NAS model or your DSM version are not supported at this time. DSM 6.0 is the minimum supported version for this package. - When Serviio is started for the first time, a plugins folder will be created in the public shared folder (usually /volume1/public/serviio/plugins/). Download any Serviio online content plugins that you require and place the .groovy files in that location.
- If you need subtitle support for glyphs not present in the default DejaVu fonts, add additional fonts to the following folder inside your NAS’s public shared folder (usually /volume1/public/serviio/fonts/).
Notes
- You should reserve an IP address for your NAS (most home broadband routers will let you do this in the DHCP options), or use a static IP address. This will prevent Serviio from appearing multiple times in the menus of your renderer devices as its IP changes.
- In the console disable ‘Generate thumbnails for local videos’ in the Metadata tab. Failure to do this can make adding videos to your library very slow on older NAS systems. With this disabled Serviio will still fetch thumbnail images automatically from the online databases.
- Don’t alter the transcoded files location on the Transcoding tab, it’s already set to a sensible location for Synology systems. This particular folder is deleted each time your NAS restarts, and Serviio cleans up its temp files automatically in any case.
- When adding folders to the media library use the Browse button. This will show the root of the entire NAS Linux filesystem, so you will find your DSM shared folders inside /volume1.
- If you’re upgrading from a previous Serviio version you should check for updates of your online content plugins.
- MediaBrowser (Pro only feature) can be opened using the link in the side bar of the web console (http://IPofYourNAS:23424/mediabrowser). If you want to use the MediaBrowser from a remote location you would need to either port forward 23424 on your router, or use SSH tunnelling. You can also manage Serviio remotely by SSH tunnelling port 23423 which the console uses. Both of these service definitions are added to the DSM Firewall.
- Advanced users who wish to edit device profiles or enable debug logging can find the Serviio files in /var/packages/Serviio/target. You will need to use an SSH session to access this folder – it cannot be navigated to using DSM’s File Station. You will need to restart the Serviio package for profile changes to take effect.
- Some users may wish to restrict running Serviio to specific times of day in order to free up RAM for a scheduled backup window for instance. This can be achieved by creating tasks to start and stop Serviio using the Task Scheduler in DSM Control Panel:

- The package uses an FFmpeg wrapper script to modify the usual transcoding behaviour of Serviio to use the Intel Evansport hardware decoding and encoding available in the DS214play and DS415play models. I have left the FFmpeg wrapper scripts in the package even when not in use (in the Serviio/bin folder), because they are still useful for people trying to test a particular workaround or encoder setting. The wrapper was a tricky script to get working due to variable expansion precedence issues and quote handling. If you need it, just change the ffmpeg.location system property in /var/packages/Serviio/target/bin/serviio.sh to point to your modified wrapper script.
- If additional fonts are not working as expected, some troubleshooting is available. You can re-create the fontconfig cache by connecting to the NAS via an SSH session as admin, and then running:
sudo -i
(enter admin password to become root)
rm -rf ~/.fontconfig.cache
FC_DEBUG=128 /var/packages/Serviio/target/bin/fc-cache --verbose
Hardware transcoding support
- DS214play and DS415play with Intel Evansport SoC are the only models supported for hardware transcoding. Serviio uses the multimedia tool FFmpeg for manipulating media files, and I am only able to build a hardware-assisted FFmpeg for DS214play and DS215play. Subsequent to those products, Synology has marketed a number of other systems with hardware transcoding features but these are not supported by Serviio.
The DS216play with STiH412 Monaco SoC uses a specialised build of Gstreamer for the Synology transcoding solution rather than FFmpeg, so its hardware features cannot be used by Serviio.
It seems likely that Synology is also using Gstreamer for the Intel Braswell or newer generation CPUs with QuikSync, since DSM ships with an older FFmpeg (2.7.1) than the version which introduced QuikSync support (2.8.0). To implement FFmpeg QuikSync hardware transcoding support requires Linux kernel patches for libmfx support which is not currently included in DSM 6.x, so Serviio support for Intel QuikSync on Synology is unlikely unless Synology in future switches to using FFmpeg for its own hardware transcoding solution.
The DS218play with Realtek RTD1296 SoC uses Gstreamer with OpenMAX drivers for the Synology transcoding solution. Although I was able to compile the ARMv8 build of FFmpeg with libomx support, unfortunately the Belaggio OpenMAX IL will not register these Realtek drivers which are distributed in the VideoStation package, therefore the hardware transcoding features of this model cannot be used by Serviio. - For the supported systems FFmpeg will use hardware decoding wherever possible.
- Although multiple hardware assisted decodes can take place simultaneously, only a single hardware encode is available. The package intelligently avoids race conditions for this.
- Any FFmpeg commandline to encode using libx264 will automatically be sent to the hardware encoder when available.
- profiles.xml has been modified so that the preferred transcode format for most devices for non-natively supported videos is H.264.
- In order to add hardware H.264 encoding to a device profile, specify h264 as the desired codec and the FFmpeg wrapper script will make the necessary substitution automatically.
- When the hardware encoder is used, the low quality settings in Serviio’s default libx264 options to favour encoding speed are ignored. The hardware encoder performance is not altered by quality settings.
- If a media stream is being both hardware decoded and hardware encoded, it will use pipelined mode. Based on responses from Synology support during development this means that both jobs occur on the media processor without exposing the intermediate bitstream to FFmpeg. Consequently it is not possible to burn subtitles in pipelined mode. As a result my FFmpeg wrapper script will run the decode part of the job in software in order to do this. The unfortunate result is that the encoder cannot quite achieve real time transcoding during subtitle compositing. For full 1080p HD material it achieves around 20fps, whereas most movies are 24fps. This means that in order to watch a film with hard subs you would need to start it off, pause or stop the renderer and return a bit later to view. An alternative would be to mux the content into an MKV container with the desired subtitles before adding it to the Serviio library, assuming that your device supports SRTs in MKV.
- The hardware encoded H.264 streams are not 100% compliant with the specification and fail validation using the tool DGAVCDec. For most tested renderers this does not affect playback (Bravia, Sony Bluray, iOS). FlowPlayer which had been the embedded player in MediaBrowser did not play these files satisfactorily and dropped many frames resulting in jerky playback. However since Serviio version 1.9 MediaBrowser uses an HTML5 player which is not affected by this issue.
Package scripts
For information, here are the package scripts so you can see what it’s going to do. You can get more information about how packages work by reading the Synology 3rd Party Developer Guide.
installer.sh
#!/bin/sh
#--------SERVIIO installer script
#--------package maintained at pcloadletter.co.uk
DOWNLOAD_PATH="http://download.serviio.org/releases"
DOWNLOAD_FILE="serviio-2.0-linux.tar.gz"
EXTRACTED_FOLDER="serviio-2.0"
DOWNLOAD_URL="${DOWNLOAD_PATH}/${DOWNLOAD_FILE}"
SYNO_CPU_ARCH="`uname -m`"
[ "${SYNO_CPU_ARCH}" == "x86_64" ] && SYNO_CPU_ARCH="x64"
[ "${SYNOPKG_DSM_ARCH}" == "comcerto2k" ] && SYNO_CPU_ARCH="armneon"
[ "${SYNOPKG_DSM_ARCH}" == "armada375" ] && SYNO_CPU_ARCH="armneon"
[ "${SYNOPKG_DSM_ARCH}" == "armada38x" ] && SYNO_CPU_ARCH="armneon"
[ "${SYNOPKG_DSM_ARCH}" == "alpine" ] && SYNO_CPU_ARCH="armneon"
[ "${SYNOPKG_DSM_ARCH}" == "alpine4k" ] && SYNO_CPU_ARCH="armneon"
[ "${SYNOPKG_DSM_ARCH}" == "monaco" ] && SYNO_CPU_ARCH="armneon"
[ "${WIZARD_ENC_HW}" == "true" ] && SYNO_CPU_ARCH="i686evansport"
NATIVE_BINS_URL="http://packages.pcloadletter.co.uk/downloads/serviio-native-${SYNO_CPU_ARCH}.tar.xz"
NATIVE_BINS_FILE="`echo ${NATIVE_BINS_URL} | sed -r "s%^.*/(.*)%\1%"`"
FONTS_URL="http://sourceforge.net/projects/dejavu/files/dejavu/2.37/dejavu-fonts-ttf-2.37.tar.bz2"
FONTS_FILE="`echo ${FONTS_URL} | sed -r "s%^.*/(.*)%\1%"`"
#'ua' prefix means wget user-agent will be customized
INSTALL_FILES="ua${DOWNLOAD_URL} ${NATIVE_BINS_URL} ${FONTS_URL}"
PID_FILE="${SYNOPKG_PKGDEST}/serviio.pid"
COMMENT="# Synology Serviio Package"
TEMP_FOLDER="`find / -maxdepth 2 -path '/volume?/@tmp' | head -n 1`"
PUBLIC_FOLDER="`synoshare --get public | sed -r "/Path/!d;s/^.*\[(.*)\].*$/\1/"`"
PLUGINS_PATH="${PUBLIC_FOLDER}/serviio"
source /etc/profile
pre_checks ()
{
#These checks are called from preinst and from preupgrade functions to prevent failures resulting in a partially upgraded package
if [ -z ${JAVA_HOME} ]; then
echo "Java is not installed or not properly configured. JAVA_HOME is not defined. " >> $SYNOPKG_TEMP_LOGFILE
echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
if [ ! -f ${JAVA_HOME}/bin/java ]; then
echo "Java is not installed or not properly configured. The Java binary could not be located. " >> $SYNOPKG_TEMP_LOGFILE
echo "Download and install the Java Synology package from http://wp.me/pVshC-z5" >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
JAVA_VER=`java -version 2>&1 | sed -r "/^.* version/!d;s/^.* version \"[0-9]\.([0-9]).*$/\1/"`
if [ ${JAVA_VER} -lt 8 ]; then
echo "This version of Serviio requires Java 8 or newer. Please update your Java package. " >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
if [ -z ${PUBLIC_FOLDER} ]; then
echo "A shared folder called 'public' could not be found - note this name is case-sensitive. " >> $SYNOPKG_TEMP_LOGFILE
echo "Please create this using the Shared Folder DSM Control Panel and try again." >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
}
preinst ()
{
pre_checks
cd ${TEMP_FOLDER}
for WGET_URL in ${INSTALL_FILES}
do
WGET_FILENAME="`echo ${WGET_URL} | sed -r "s%^.*/(.*)%\1%"`"
[ -f ${TEMP_FOLDER}/${WGET_FILENAME} ] && rm ${TEMP_FOLDER}/${WGET_FILENAME}
#this will allow serviio.org to track the number of downloads from Synology users
WGET_URL=`echo ${WGET_URL} | sed -e "s/^ua/--user-agent=Synology --referer=http:\/\/pcloadletter.co.uk\/2012\/01\/25\/serviio-syno-package /"`
wget ${WGET_URL}
if [ $? != 0 ]; then
if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/${WGET_FILENAME} ]; then
cp ${PUBLIC_FOLDER}/${WGET_FILENAME} ${TEMP_FOLDER}
else
echo "There was a problem downloading ${WGET_FILENAME} from the official download link, " >> $SYNOPKG_TEMP_LOGFILE
echo "which was \"${WGET_URL}\" " >> $SYNOPKG_TEMP_LOGFILE
echo "Alternatively, you may download this file manually and place it in the 'public' shared folder. " >> $SYNOPKG_TEMP_LOGFILE
exit 1
fi
fi
done
exit 0
}
postinst ()
{
#extract the downloaded Serviio archive
cd ${TEMP_FOLDER}
tar xzf ${TEMP_FOLDER}/${DOWNLOAD_FILE}
rm ${TEMP_FOLDER}/${DOWNLOAD_FILE}
cp -R ${TEMP_FOLDER}/${EXTRACTED_FOLDER}/* ${SYNOPKG_PKGDEST}
if [ ! -z "${EXTRACTED_FOLDER}" ]; then
rm -r ${TEMP_FOLDER}/${EXTRACTED_FOLDER}
fi
if [ ! -d "${PLUGINS_PATH}/plugins" ]; then
mkdir -p ${PLUGINS_PATH}/plugins
fi
if [ ! -d "${PLUGINS_PATH}/fonts" ]; then
mkdir -p ${PLUGINS_PATH}/fonts
fi
#extract CPU-specific additional binaries
cd ${SYNOPKG_PKGDEST}/lib
tar xJf ${TEMP_FOLDER}/${NATIVE_BINS_FILE} && rm ${TEMP_FOLDER}/${NATIVE_BINS_FILE}
mv ${SYNOPKG_PKGDEST}/lib/ffmpeg ${SYNOPKG_PKGDEST}/bin
mv ${SYNOPKG_PKGDEST}/lib/fc-cache ${SYNOPKG_PKGDEST}/bin
[ -e ${SYNOPKG_PKGDEST}/lib/omxregister-bellagio ] mv ${SYNOPKG_PKGDEST}/lib/omxregister-bellagio ${SYNOPKG_PKGDEST}/bin
#remove legacy package font versions
[ -d ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.33/ ] && rm -rf ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.33/
[ -d ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.34/ ] && rm -rf ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.34/
[ -d ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.35/ ] && rm -rf ${PLUGINS_PATH}/fonts/dejavu-fonts-ttf-2.35/
#extract open source font package for subtitle support during transcoding
cd ${PLUGINS_PATH}/fonts
tar xvjf ${TEMP_FOLDER}/${FONTS_FILE} && rm ${TEMP_FOLDER}/${FONTS_FILE}
sed -i "s|WINDOWSFONTDIR|${PLUGINS_PATH}/fonts|" ${SYNOPKG_PKGDEST}/config/fonts/fonts.conf
sed -i "s|WINDOWSTEMPDIR_FONTCONFIG_CACHE|~/.fontconfig.cache|" ${SYNOPKG_PKGDEST}/config/fonts/fonts.conf
#wrapper script can be useful for testing different encoder options
if [ -e "${SYNOPKG_PKGDEST}/bin/ffmpeg-wrapper-${SYNO_CPU_ARCH}.sh" ]; then
#we need to use the wrapper to make FFmpeg use libshine on ARM systems and to use hardware decode/encode on Intel Evansport systems
FFMPEG_PATH="\$SERVIIO_HOME/bin/ffmpeg-wrapper-${SYNO_CPU_ARCH}.sh"
else
FFMPEG_PATH="\$SERVIIO_HOME/bin/ffmpeg"
fi
#modifications to device profiles (evansport hardware transcoding)
if [ -e "${SYNOPKG_PKGDEST}/config/profiles-${SYNO_CPU_ARCH}.xml" ]; then
mv "${SYNOPKG_PKGDEST}/config/profiles.xml" "${SYNOPKG_PKGDEST}/config/profiles-orig.xml"
mv "${SYNOPKG_PKGDEST}/config/profiles-${SYNO_CPU_ARCH}.xml" "${SYNOPKG_PKGDEST}/config/profiles.xml"
fi
#modifications to application profiles (evansport hardware transcoding)
#removed owing to frame drops in FlowPlayer because encoder does not produce 100% valid streams, evansport has sufficient power for flv encoding
#if [ -e "${SYNOPKG_PKGDEST}/config/application-profiles-${SYNO_CPU_ARCH}.xml" ]; then
# mv "${SYNOPKG_PKGDEST}/config/application-profiles-${SYNO_CPU_ARCH}.xml" "${SYNOPKG_PKGDEST}/config/application-profiles.xml"
#fi
#make changes to Serviio launcher script so that pid file is created for Java process
sed -r -i "s%Execute the JVM in the foreground%Execute the JVM in the background%" ${SYNOPKG_PKGDEST}/bin/serviio.sh
sed -r -i "s%^(exec \"$JAVA.*)$%\1 \&%" ${SYNOPKG_PKGDEST}/bin/serviio.sh
echo "echo \$! > ${PID_FILE}" >> ${SYNOPKG_PKGDEST}/bin/serviio.sh
#set some additional Serviio system properties (temp folder, FFmpeg path, plugins folder)
#http://www.serviio.org/index.php?option=com_content&view=article&id=43
EXTRA_OPTS="-Dserviio\.defaultTranscodeFolder=${TEMP_FOLDER} -Dffmpeg\.location=${FFMPEG_PATH} -Dplugins\.location=${PLUGINS_PATH}"
#fix Java prefs checking which was preventing NAS hibernation http://forum.serviio.org/viewtopic.php?f=5&t=6878
EXTRA_OPTS="${EXTRA_OPTS} -Djava.util.prefs.syncInterval=86400"
if [ "${SYNO_CPU_ARCH}" == "armv5tel" ]; then
#use integer math (not floating point) Dolby AC-3 encoder for better performance on ARM CPUs
#http://ffmpeg.org/ffmpeg.html#ac3-and-ac3_005ffixed
EXTRA_OPTS="${EXTRA_OPTS} -Dserviio\.fixedPointEncoders"
fi
sed -r -i "s% -Dffmpeg\.location=ffmpeg%%; s%^(JAVA_OPTS=.*)\"$%\1 ${EXTRA_OPTS}\"%" ${SYNOPKG_PKGDEST}/bin/serviio.sh
#create log file to allow package start errors to be captured
[ -e ${SYNOPKG_PKGDEST}/log ] || mkdir ${SYNOPKG_PKGDEST}/log
[ -e ${SYNOPKG_PKGDEST}/log/serviio.log ] || touch ${SYNOPKG_PKGDEST}/log/serviio.log
#add firewall config
/usr/syno/bin/servicetool --install-configure-file --package /var/packages/${SYNOPKG_PKGNAME}/conf/${SYNOPKG_PKGNAME}.sc > /dev/null
exit 0
}
preuninst ()
{
`dirname $0`/stop-start-status stop
exit 0
}
postuninst ()
{
#remove fontconfig configuration
sed -i "/${COMMENT}/d" /root/.profile
#remove firewall config
if [ "${SYNOPKG_PKG_STATUS}" == "UNINSTALL" ]; then
/usr/syno/bin/servicetool --remove-configure-file --package ${SYNOPKG_PKGNAME}.sc > /dev/null
fi
#remove legacy daemon user and homedir
[ -e /var/services/homes/serviio ] && synouser --del serviio
[ -e /var/services/homes/serviio ] && rm -r /var/services/homes/serviio
exit 0
}
preupgrade ()
{
`dirname $0`/stop-start-status stop
pre_checks
#if a media database exists we need to preserve it
if [ -d ${SYNOPKG_PKGDEST}/library/db ]; then
mkdir ${SYNOPKG_PKGDEST}/../${SYNOPKG_PKGNAME}_db_migration
mv ${SYNOPKG_PKGDEST}/library/db ${SYNOPKG_PKGDEST}/../${SYNOPKG_PKGNAME}_db_migration
fi
exit 0
}
postupgrade ()
{
#use the backed up media database from the previous version
if [ -d ${SYNOPKG_PKGDEST}/../${SYNOPKG_PKGNAME}_db_migration/db ]; then
mv ${SYNOPKG_PKGDEST}/../${SYNOPKG_PKGNAME}_db_migration/db ${SYNOPKG_PKGDEST}/library
rmdir ${SYNOPKG_PKGDEST}/../${SYNOPKG_PKGNAME}_db_migration
fi
chown -R root:root ${SYNOPKG_PKGDEST}
exit 0
}
start-stop-status.sh
#!/bin/sh
#--------SERVIIO start-stop-status script
#--------package maintained at pcloadletter.co.uk
PKG_FOLDER="/var/packages/Serviio"
ENGINE_CFG="${PKG_FOLDER}/target/bin/serviio.sh"
ENGINE_SCRIPT="${PKG_FOLDER}/target/bin/serviio.sh"
PID_FILE="${PKG_FOLDER}/target/serviio.pid"
DNAME="Serviio"
DLOG="${PKG_FOLDER}/target/log/serviio.log"
COMMENT="# Synology Serviio Package"
TIMESTAMP="`date "+%F %X,000"`"
source /etc/profile
source /root/.profile
EnvCheck ()
#updates to DSM will reset these changes so check them each startup
{
#/root/.profile should contain 2 lines added by this package tagged with trailing comments
COUNT=`grep -c "$COMMENT$" /root/.profile`
if [ $COUNT != 2 ]; then
#remove any existing mods
sed -i "/${COMMENT}/d" /root/.profile
#add required environment variables
echo "export FONTCONFIG_FILE=fonts.conf ${COMMENT}" >> /root/.profile
echo "export FONTCONFIG_PATH=${PKG_FOLDER}/target/config/fonts ${COMMENT}" >> /root/.profile
fi
}
start_daemon ()
{
EnvCheck
source /root/.profile
#create/refresh fontconfig cache - prevents delay the first time that FFmpeg renders hard subs
#FC_DEBUG=128 fc-cache --verbose
${PKG_FOLDER}/target/bin/fc-cache
#refresh hostname in Serviio instance name - recently DSM has modified the hosts file and broken localhost name resolution
sed -i -r "s%<FriendlyName>Serviio \((\{computerName\})\)%<FriendlyName>Serviio \(`hostname`\)%" $PKG_FOLDER/target/config/profiles.xml
#set appropriate Java max heap size
RAM=$((`free | grep Mem: | sed -e "s/^ *Mem: *\([0-9]*\).*$/\1/"`/1024))
if [ $RAM -le 128 ]; then
JAVA_MAX_HEAP=80
elif [ $RAM -le 256 ]; then
JAVA_MAX_HEAP=192
elif [ $RAM -le 512 ]; then
JAVA_MAX_HEAP=384
#Serviio's default max heap is 512MB
elif [ $RAM -gt 512 ]; then
JAVA_MAX_HEAP=512
fi
sed -i -r "s/(^..JAVA.) -Xmx[0-9]+[mM] (.*$)/\1 -Xmx${JAVA_MAX_HEAP}m \2/" "${ENGINE_CFG}"
echo "${TIMESTAMP} Starting ${DNAME}" >> ${DLOG}
${ENGINE_SCRIPT} > /dev/null 2>> ${DLOG}
if [ -z ${SYNOPKG_PKGDEST} ]; then
#script was manually invoked, need this to show status change in Package Center
[ -e ${PKG_FOLDER}/enabled ] || touch ${PKG_FOLDER}/enabled
fi
}
stop_daemon ()
{
echo "${TIMESTAMP} Stopping ${DNAME}" >> ${DLOG}
kill `cat ${PID_FILE}`
wait_for_status 1 20 || kill -9 `cat ${PID_FILE}`
rm -f ${PID_FILE}
if [ -z ${SYNOPKG_PKGDEST} ]; then
#script was manually invoked, need this to show status change in Package Center
[ -e ${PKG_FOLDER}/enabled ] && rm ${PKG_FOLDER}/enabled
fi
}
daemon_status ()
{
if [ -f ${PID_FILE} ] && kill -0 `cat ${PID_FILE}` > /dev/null 2>&1; then
return
fi
rm -f ${PID_FILE}
return 1
}
wait_for_status ()
{
counter=$2
while [ ${counter} -gt 0 ]; do
daemon_status
[ $? -eq $1 ] && return
let counter=counter-1
sleep 1
done
return 1
}
case $1 in
start)
if daemon_status; then
echo ${DNAME} is already running with PID `cat ${PID_FILE}`
exit 0
else
echo Starting ${DNAME} ...
start_daemon
exit $?
fi
;;
stop)
if daemon_status; then
echo Stopping ${DNAME} ...
stop_daemon
exit $?
else
echo ${DNAME} is not running
exit 0
fi
;;
restart)
stop_daemon
start_daemon
exit $?
;;
status)
if daemon_status; then
echo ${DNAME} is running with PID `cat ${PID_FILE}`
exit 0
else
echo ${DNAME} is not running
exit 1
fi
;;
log)
echo "${DLOG}"
exit 0
;;
*)
echo "Usage: $0 {start|stop|status|restart}" >&2
exit 1
;;
esac
ffmpeg-wrapper-i686evansport.sh
#!/bin/sh
#FFmpeg wrapper script to enable hardware decoding and encoding on Intel Evansport CPUs
#wrapper originally posted here: http://forum.serviio.org/viewtopic.php?f=7&t=6458
FOLDER="`dirname $0`"
PARAMS=""
COMMANDLINE=$@
FFMPEG_BIN="ffmpeg"
INPUT=0
for PARAM in "$@"; do
if [ ${INPUT} = 1 ]; then
#the FFmpeg input filename/URL needs quotes adding back on
#because it may contain spaces, and the shell has removed them
PARAMS="${PARAMS} \"${PARAM}\""
INPUT=0
elif [ ${INPUT} = 2 ]; then
#the FFmpeg subtitles filename needs quotes adding back on
#because it may contain spaces, and the shell has removed them
PARAM=${PARAM/\[*.*\]subtitles=filename=/subtitles=filename=\"}
PARAM=${PARAM/:original_size/\":original_size}
PARAMS="${PARAMS} ${PARAM}"
INPUT=0
elif [ "${PARAM}" == "-filter_complex" ]; then
#next parameter will be subtitles filtergraph including subtitle filename
#which needs special treatment, so set a flag
INPUT=2
PARAMS="${PARAMS} ${PARAM}"
elif [ "${PARAM}" == "-i" ]; then
#next parameter will be input filename which needs special treatment, so set a flag
INPUT=1
#enable hardware decoding by default, but not when Serviio is either:
# gathering media metadata,
# remuxing video,
# generating thumbnails,
# or rendering subtitles into the video stream (pipeline mode not supported for subs),
if [ $# -lt 3 ] || \
[ "${COMMANDLINE}" != "${COMMANDLINE/ -c:v copy /}" ] || \
[ "${COMMANDLINE}" != "${COMMANDLINE/ pipe:/}" ] || \
[ "${COMMANDLINE}" != "${COMMANDLINE/ -filter_complex \[*:*\]subtitles=/}" ]; then
PARAMS="${PARAMS} -i"
# or gathering online stream metadata
elif [ $# -eq 4 ] && [ "${COMMANDLINE}" != "${COMMANDLINE/-analyzeduration /}" ]; then
PARAMS="${PARAMS} -i"
else
PARAMS="${PARAMS} -prefer_smd -i"
fi
else
PARAMS="${PARAMS} ${PARAM}"
fi
done
#older Evansport FFmpeg version 2.7.1 needs "-strict -2" to use experimental aac encoder
if [ "${PARAMS}" != "${PARAMS/ -c:a:* aac /}" ]; then
PARAMS="${PARAMS/ aac / aac -strict -2 }"
fi
#Is this FFmpeg commandline a candidate for the hardware encoder?
HWENC=0
if [ "${PARAMS}" != "${PARAMS/ -c:v libx264 /}" ]; then
#check whether H.264 encoder is already busy with another Serviio/VideoStation session
PID_HWENC=`cat /tmp/VideoStation/enabled 2> /dev/null | sed -r "s/.*\"PID\":([0-9]+),\"hardware_transcode.*$/\1/;s/\[//;s/\]//"`
#is there an indicated PID?
if [ -n "${PID_HWENC}" ]; then
#there is an indicated PID - is it running?
if ! kill -0 ${PID_HWENC}; then
#the indicated PID is not in fact running, HW encoder is therefore available
rm /tmp/VideoStation/enabled
#make hardware H.264 encoder substitution to replace libx264
HWENC=1
fi
else
#there is no indicated PID, HW encoder is therefore available
HWENC=1
fi
fi
if [ ${HWENC} = 1 ]; then
#make hardware H.264 encoder substitution to replace libx264
PARAMS=${PARAMS/ libx264 / h264_smd }
#by default Serviio's libx264 transcoding is intended for speed over quality, with SMD we can opt for better quality
PARAMS="`echo ${PARAMS} | sed -r "s/ -crf [0-9]+ / /; s/ -g [0-9]+ / /"`"
PARAMS=${PARAMS/ -preset:v veryfast / }
PARAMS=${PARAMS/ -profile:v baseline / -profile:v high }
PARAMS=${PARAMS/ -level 3 / -level 4.1 }
fi
#invoke FFmpeg
#log commandline, except media probes
#[ $# -gt 2 ] && echo "${FOLDER}/${FFMPEG_BIN} ${PARAMS}" >> ${FOLDER}/../log/ffmpeg-wrapper.log
#need to use eval here otherwise the quotes aren't handled properly
#http://fvue.nl/wiki/Bash:_Why_use_eval_with_variable_expansion%3F
eval ${FOLDER}/${FFMPEG_BIN} ${PARAMS}
#return FFmpeg status
exit $?
Changelog:
- 0037 05/Jun/19 – Updated to Serviio 2.0, clear your web browser cache to fix Serviio Console issues
- 0036 17/Apr/19 – Updated to Serviio 1.10.1, fixed missing Serviio console icon in DSM 6.2 main menu, added support for DS119j
- 0035 14/May/18 – Updated to Serviio 1.9.2
- 0034 01/Mar/18 – Updated to Serviio 1.9.1, added ARMv8 support
- 0033 02/Aug/17 – Updated to Serviio 1.9
- 0032 21/Jan/17 – Fixed Evansport FFmpeg wrapper script to allow transcoding to aac since it’s an older FFmpeg version with slightly different command syntax
- 0031 07/Jan/17 – Updated to Serviio 1.8
Updated FFmpeg to 3.2.2
Updated Intel Evansport hardware transcoding build of FFmpeg from 2.0.2 to 2.7.1 – now detects H.265 codec correctly
Fixed Intel Evansport FFmpeg support for transcoding DTS audio
FFmpeg now uses hard float ABI on systems with Armada 370/XP SoC (DSM 6.0 change)
FFmpeg now uses NEON on systems with Armada 375 SoC (DSM 6.0 change)
Disabled FFmpeg wrapper script to enable libshine for ARMv5 systems now that Serviio handles this automatically
Added Ogg Vorbis audio support to FFmpeg
Updated Deja-Vu fonts to 2.37
DSM 6.0 is now required due to greatly simplify FFmpeg compilation - 0030 21/May/16 – Updated to Serviio 1.6.1
- 0029 28/Jan/16 – Updated to Serviio 1.6, integrated the new built-in web console into DSM, fixed stupid wrapper bug which had broken evansport hardware transcoding on DS214play and DS415play, fixed online content when using evansport build. You must have already upgraded to version 1.5.2-0028 or else Package Center will report a TCP port conflict and will fail to upgrade the package. If you missed the 0028 update, install it manually in Package Center using the .spk file: (DS214play/DS415play), (all other models).
- 0028 08/Jan/16 – Serviio instance uses hostname rather than localhost, more accurate detection of DSM 6.0 on Intel CPUs which need x64 FFmpeg build, added DS216play support, fixed missing libgmp on DS3612xs running DSM 5.0, change to allow easy package upgrade to forthcoming Serviio 1.6
- 0027 12/Nov/15 – Substantial package re-write hence the long delay since the last release
Completely refreshed documentation, please re-read
Updated to Serviio version 1.5.2
Java 8 is now required – this is a Serviio imposed requirement
DSM 5.0 or newer is now required
Updated to FFmpeg 2.7.1 and many libs e.g. x264 at latest versions from late July 2015
Added optional hardware transcoding support for Intel Evansport systems (DS214play, DS415play) built using Synology-modified sources for FFmpeg 2.0.2
FFmpeg is now compiled with https support via GNUTLS library (useful for online streams via plugins)
Switched to using root account which was necessary for Evansport hardware encoding – no more adding account permissions, package upgrades will no longer break this
Added support for Mindspeed Comcerto 2000 CPU (comcerto2k – ARM Cortex-A9 with NEON) in DS414j
Added support for Intel Atom C2538 (avoton) CPU in DS415+
Fontconfig fc-cache utility now included to allow troubleshooting issues with adding new fonts for additional subtitle language support
Fontconfig variables checked on each package startup so DSM upgrades no longer break hard subs support
Updated DejaVu subtitle font to version 2.35
DSM Firewall application definitions added
Tested with DSM Task Scheduler to allow package to start/stop at certain times of day, saving RAM when not needed
Daemon init script now uses a proper PID file instead of the unreliable method of using grep on the output of ps
Daemon init script can be run from the command line
Improved accuracy of temp folder and plugins folder detection
Switched to .tar.xz compression for native binaries to reduce web hosting storage footprint
Package is now signed with repository private key
User Agent customization while downloading Serviio binaries from serviio.org to allow download stats gathering - 0026 25/Mar/14 – Updated to Serviio 1.4.1.2
- 0025 18/Mar/14 – Updated to Serviio 1.4.1.1
- 0024 30/Jan/14 – Updated to Serviio 1.4
- 0023 07/Nov/13 – Updated to FFmpeg 2.1 stable release
- 0022 30/Oct/13 – Added support for Intel Atom Evansport and Armada XP CPUs in new DSx14 products
- 0021 18/Oct/13 – Fixed zlib linking issue in QorIQ and Intel builds of FFmpeg
- 0020 05/Sep/13 – Updated to Serviio 1.3.1
- 0019 25/May/13 – Added support for Armada370 SoC used in DS213j (ARMv7 CPU with FPU)
- 0018 29/Mar/13 – Updated to Serviio 1.2.1, recompiled FFmpeg to use the libRTMP source code from serviio.org for consistency
- 0017 01/Mar/13 – Updated to Serviio 1.2
- 0016 23/Jan/13 – Fixes for DSM 4.2
- 015 30/Dec/13 – Updated to Serviio 1.1, fixed garbled ac3 encoding issue on ARM CPUs by compiling FFmpeg natively, rather than cross compiling. Remember to update your computer’s Serviio Console to 1.1 before connecting to manage.
- 014 28/Oct/12 – Added support for Freescale QorIQ PowerPC CPUs used in some Synology x13 series products, switched to shared library compile of FFmpeg with some minor changes, ARM build now uses libshine encoder which allows realtime audio transcoding to MP3, edited FlowPlayer config to play AAC audio natively to make MediaBrowser more usable with online feed items.
- 013 Fixed a bug in the plugins folder creation, fixed deletion of home directories after user deletion (DSM 4.1)
- 012 Reduced Java prefs checking interval to once every 24 hours to allow the NAS to hibernate (was 30 seconds by default – remember to increase the time between library refreshes if you want hibernation)
- 011 Updated Serviio to 1.0.1, slightly altered how the plugins folder path is determined
- 010 Updated to Serviio 1.0, removed WebUI, FFmpeg wrapper no longer needed on ARM, plugins folder moved to /volume1/public/serviio/plugins to make adding/updating plugins easier
- 009 Installation fails unless User Home service is enabled, unified the installer scripts, merged ARM and Intel packages into one which downloads the FFmpeg binary separately, used integer maths Dolby AC-3 encoder on ARM systems (no floating point)
- 008 Fixed DST timezone support, installer no longer assumes /volume1 is primary storage volume
- 007 Updated Serviio to 0.6.2, kairoh’s WebUI to 0.6.2c, changed package to download Serviio from the official website during installation, temp path is set by default to /volume1/@tmp on first run, and finally some CSS improvements
- 006 Updated to Serviio 0.6.1, switched to kairoh’s Java WebUI, added timezone support, removed DSM icon when Serviio is not running, adjusted Java max heap size for systems with low RAM, specified FFmpeg path directly rather than creating a symlink in /bin so as not to interfere with other packages which may use different versions of FFmpeg
- 005 Added Web Station dependency, EULA dialog, and links for Web UI and user forum in More Info
- 004 Test for package repo to allow update notification
- 0.6.0.1 v3 Hopefully fixed an issue with the Serviio DSM icon in DSM 3.2 on NAS units without Optware installed
- 0.6.0.1 v2 Inclusion of a modified version of the PHP Web UI
- 0.6.0.1 v1 New minor Serviio release 0.6.0.1 with some updated international translations – will upgrade 0.6 preserving the media library
- 0.6 v1 23/Sep/11 – First public release – Serviio 0.6
- 0.6b4 v2 Fixed permissions on transcode temporary folder following upgrade, avoiding the need for a reboot
- 0.6b4 v1 Updated to Serviio 0.6 beta 4, added upgrade scripts to allow media database migration (install future packages over the top of this one – database is preserved)
- 0.6b3c v2 Fixed HOME env var for serviio user (to fix librtmp issues with BBC iPlayer) and removed the need to edit the passwd file to change the shell (safer)
- 0.6b3c v1 Initial spk test release – Serviio 0.6 beta 3

Got it,
Reinstalled Java according to patters’ instructions.
Found Serviio in the package center under ‘community’ heading.
Now seems to run ok.
Question: Is the Synology supplied Java SE not suitable for Serviio?
DSM 5.1 just went final; is it safe to upgrade? Is this package compatible? :)
Hi, I have a new DS1815+, Intel Atom C2538, and running DS; 5.1-5004, cant find serviio in package center. where or how can i get it? Tried Java SE 6 ,7 and 8 still nothing showing.
solved it…. by adding avoton to the arch= in the spk package
Where did you get the SPK-Package? I have the same problem and i find nothing to download the package.
Package needs updating. Hopefully soon.
Any Plans in providing an Upgrade?
Hi, i plan to upgrade DSM 5 to DSM 5.1, but how can i backup configuration of Serviio ? After each DSM upgrade, i need to reinstall java and i’m lost the directory setup of my Library, and other main features (eg : localisation). There’s a way to quick restore a config file to set back Serviio in his previous running state ?
Thanks.
You can stop Serviio and copy the whole /volume1/@appstore/Serviio/library folder to keep it safe.
However, the more recent versions of my Java packages will preserve the locale settings after DSM updates now, and a DSM update will not touch the Serviio folder.
I would recommend stopping Serviio, updating the Java package (have to remove and reinstall), then updating to DSM 5.1. Then Serviio should just work as usual with no special steps required.
Hi, at first thanks for your job.
Im having problems running Servio Console in my Windows or Mac pc. Installed Java 8 and Serviio in DS214+ like y said in the post but when i edit the archives in Serviio Console doesnt open, i put my NAS ip but dont open.
I put a static ip to my NAS in the router, DS214+ have a dual LAN and try with both ips but dnt work anyways.. Any sugestions?
Having an issue installing serviio since I updated to DSM 5.1. Says that the package does not contain a digital signature. I’m guessing that synology made some changes to their package framework.
In Package Center settings you need to allow packages from all publishers. I’m looking into signing my packages at the moment.
Worked, thx! Didn’t see the package settings options.
Hi :) After updating to DSM5.1 Serviio stutters/loads constantly. I tried uninstalling JAVA 8 and Serviio, but to no avail. Any ideas?
Thanks and great job by the way!!
I have DSM 5.1, java 8 ad serviio keep crashing on library refresh. Any idea how to solve it?
Since I have updated my Synology DS411+ii to DSM5.1, serviio is not updating the library any more. If I force it to refresh, the red dot goes green for a few seconds, then back to red.
I have posted a debug log on the serviio forum several days ago, but I have not had any response so far
Hi,
Will this still work on a Synology USB Station 2 which has DSM 3.2 as its last updated release?
It doesn’t have a Package centre, but has an ipkg, from the NSLU2 repo. The CPU is a Marvel Kirkwood 88f6180.
Thanks
Will there be support for new DS215j? will seviio with libs and all the stuff works with it? thanks
I’ve just published an amended Java package for Armada 375. Can you check it works by ensuring you get the JVM and Hotspot versions displayed in the log section of the package? Once that’s confirmed working ok I can get support added to the other packages.
Hello! i have installed java successesfully on DS215, please add support Serviio on DS215
Can you give me instructions on how to install this on a dns 320l ? i have 1.3 but no one seems to have anything for updating it to 1.4.1.2
Hi,
On the DS215j, Serviio and your Embedded Java do not appear in the package centre.
Can you add support/modify the package arch info for this please?
I’ve just published an amended Java package for Armada 375. Can you check it works by ensuring you get the JVM and Hotspot versions displayed in the log section of the package? Once that’s confirmed working ok I can get support added to the other packages.
It works, but we Serviio do not appear in the package centre. Can you fix it?
I’ve been trying to compile FFmpeg using the Armada 375 toolchain and I can’t get libx264 to compile with assembler code enabled. Since this CPU has a NEON vector unit, that will make a big difference to performance. I did produce a test version for the similar Comcerto 2000 CPU but now I remember that I had the same problem and I wasn’t able to resolve it. I’ll contact Synology and see if they have any suggestions.
Hey, i finally figured out how to set up the folders in Serviio when it is installed on a NAS.
For my personal example, I am using a Synology DS214+ and here is what I have entered in the settings : /Volume1/video
No need to enter the IP address as it is installed directly on the NAS, it makes totally sense but when you read forums, it is never mentioned…
I hope this will help some of you, enjoy !
Hi There,
Can you help me please i have also a DS214+ and installed java 7 that’s works fine.
and Serviio also but i can’t open ServiioConcole
I have also did this
Notepad to open ServiioConsole.exe.vmoptions (in the Serviio/bin folder) and add the line:
-Dserviio.remoteHost=192.168.178.33
If i click on ServiioConcole then i get error: Serviio is not runnen closing……
But me PS3, Media players, I-Phone ect. can see Serviio
Hi, I’m waiting for compatible version for the DS215J.
I hope you will release it soon.
I’ve just published an amended Java package for Armada 375. Can you check it works by ensuring you get the JVM and Hotspot versions displayed in the log section of the package? Once that’s confirmed working ok I can get support added to the other packages.
I’ve installed java version 1.8.0_06
The logfile seems to be fine
So it does specifically report the Java version in the log?
Yes, it looks like this:
java version “1.8.0_06”
Java(TM) SE Embedded Blah Blah Blah (build 1.8.0_06-b23)
Blah …
JAVA_HOME=/volume1/@appstore/java8/ejdk1.8.0_06/linux_arm_vfp_hflt/jre
TZ=Europe/Amsterdam
Great, thanks. For Serviio I need you to try this build of FFmpeg.
cd /volume1/@tmpmkdir ffmpeg
cd ffmpeg
wget http://packages.pcloadletter.co.uk/downloads/serviio1.4-native-arma9neon.tar.xz
tar xvJf serviio1.4-native-arma9neon.tar.xz
./ffmpeg
Does it work? Can you post the result back here please.
I get an error message:
./ffmpeg: /lib/libc.so.6: version `GLIBC_2.17′ not found (required by /volume1/@tmp/ffmpeg/libavdevice.so.55)
./ffmpeg: /lib/libc.so.6: version `GLIBC_2.17′ not found (required by /volume1/@tmp/ffmpeg/libgnutls.so.28)
Thanks. Unfortunately Synology are making things very difficult with all these new CPU architectures. The DS414j has a similar CPU (Mindspeed Comcerto 2000 with ARM Cortex-A9 cores with NEON vector unit), but its toolchain uses a very slightly newer glibc version. The Armada 375 toolchain is still on glibc 2.15. It looks like if I recompile FFmpeg for Cortex-A9 with NEON using the Armada 375 toolchain then it should work on both devices. I really don’t want to have to build FFmpeg more times. It’s already pretty crazy – at the latest count I have to build it for seven different architectures!
I really hope patters that this dont mean you drop support for DS215j. Please can you make this last one work? :) we all really approciate your work.
I will build it, but I’ll probably wait for Serviio 1.5 to be released (which is soon) so I know precisely which FFmpeg version to build. I don’t want to compile all the various binaries and find out that I need to do it again. It’s quite time consuming.
ok that is really enought to know. We dont want waste your time for sure so better wait. I just wanted to know cuz im buyng DS215j very soon and its one that match with my budget :) thank you a lot!
hi – cannot seem to download any install to my synology – java and serviio just fail with “cannot install serviio” or “cannot install java” – it gets to the agreement bit, you click accept and then you just get that error messsage. happens with everything i install from this site. is everything working or is it me?
Dittto to what Rich just said … Synology DS210J with DSM 5.1 will not install Serviio or any of the Java SE packages ….help :-(
I had Java 8 running on my DS413 without a problem, but kept getting an update available popup. When I checked Oracle, I had the latest version.
I just installed DSM 5.1 attempted to install Java 8 but had a failure. Have installed version 7 update 71. What benefits are there with Java 8? Why couldn’t I install it? The file ejdk-8u6-fcs-b23-linux-ppc-e500v2-12_jun_2014.tar.gz is in the public folder. I’ve had to install ejre-7u71-fcs-b14-linux-ppc-e500v2-headless-26_sep_2014.tar.gz
Haven’t tried Serviio since the update and will report back if issues present.
Ok, so Installing Java failed. Help!
The package for my new DS1515+ doesn’t show up in repository. I suspect the reason is the new NAS processor (Intel Atom C2538). Is that the point? If so, what am I supposed to do?
Will your DS215j Version also support Video transcoding? idk if there is enough cpu power, but i guess it could be possible because of NEON. I’m good at ignoring the licensing thing ;)
Hi,
Could you compile Serviio for avoton platform as you already compiled some other packages. I know that it’s possible to update info file, but it would be great to get better performance. Thecus N2560 running serviio is a bit underpowered for video transcoding, but avoton should be much better.
Thanks in advance
Hi, I dont find the serviio package on my DS115j.
thanks
Hi, just installed Java and Serviio. When trying to startup Serviio nothing happens, status remains ‘stopped’. I receive no errors.
Can someone help me out?
Thanks in advance.
Hi, from version DSM 5.1 Serviio block switching system into a deep sleep on 213+. Network light flashes continuously even when any device is not connected to the network. When I stop Serviio, DS goes to sleep. The problem is still in version DSM 5.1-5021 Update 2. Is it possible to somehow fix please?
Petr
I have a 215j NAS. I dont see the servioo package (althouth i added the link and can install other 3th party packages)
FOR WHOEVER DOESN’T SEE SERVIIO IN THE INSTALL LIST
That is probably because you have one of the new “avoton” CPUs. You have to download serviio from:
http://packages.pcloadletter.co.uk/downloads/
The name should be “serviio1.4.1.2-merged-0026.spk”.
Open the file with 7zip. Then, right click on “INFO” file and select “Open in Default Text Editor”. It will open it with notepad. Find this line:
“arch=”88f6281 armada370 armadaxp x86 bromolow cedarview evansport qoriq ppc853x”
And change it by adding “avoton” (no quotes of couse):
“arch=”88f6281 armada370 armadaxp x86 bromolow cedarview evansport qoriq ppc853x avoton”
The save the file in notepad and close it. 7zip will tell you that the archive has been change, you need to click “YES” to save the new archive. Now simply upload this .spk file into your synology and it will install with no problems!
You’re welcome!
Hi,
your work porting Serviio to the Synology has been such a help to myself to keep the Wife and Kids fully entertained with minimum effort/max control and has been fine for the last few years….
The kids have discovered the Serviio Go app on their Android tabs…a problem as Serviio 1.4 allows this app to bypass the limited content control in Serviio allowing the kids access to all videos on the server….
Are you in any position to issue a 1.5 Serviio package (alpha or beta if not final) that i can use to restore the protected content function please ?
Is there a possibility to add smb folders? I tried to mount folders but I had no success.
Serviio won’t start up on my Synology.
– I installed Java via your package repository. Confirmed Installation by looking at the protocol.
– DSM 5.1-5022
– DS214Play
– Protocol of Serviio Package is empty
Are there other LogFiles I can check for errors to track down the Problem?
Solved the Problem. I had Java 7 installed. After Uninstalling java 7, installing java 6 (as stated in the installation instructions for intel cpus) and reinstalling seriio it seems to work now.
sorry for the noise
Sorry, blog page is out of date – as of DSM 5.0 Intel CPUs can run Java 7&8.
Hi patters, any eta on a 1.5 package for the Synology? Regards SOM
Am i the only person to get the “This package is not supported on the platform of DiskStation”. error! I added the avoton text as suggested then done a manual install and this error is what i am getting. Am i missing something? I have the latest DSM version, installed the Java 7 as requested and its a DS215J.
Thanks
Solved the issue above, also needed to change the text armada370 to armada375 for my NAS. Hope it helps someone else
I have a 215j NAS. I dont see the servioo package too ((( please add support!
Working on getting Serviio 1.5 done, which will add support for your system.
I have a DS-115. I dont see the servioo package, please add.
I’m working on it…
I installed java 8 on DS115 , Why I cannot see serviio packages?
Using DS-214 with DSM 5.1.
Installation of Java SE Embedded 7 or 8 from your package failed: “Java binary bundle not found…”.
I also tried with Java installed with Synology’s Java Manager. In this case, Java installation works (you just need to upload the file by yourself, which seems a more robust solution), but Serviio package fails upon installation.
What do you propose to try now?
OK, just figured out how your Java installer works, apologies for my previous question. But, But, shouldn’t the version for DS 214 be a hardfp one? All your Java installers look for softfp versions.
There are other packages that depend on a full Java installation (not the embedded one). Is your Java SE Embedded installer compatible with Synology’s Java Manager (that installs JDK 7u60)?
Anyway, both with Java SE Embedded 7 or 8, installed using your installer packages, Serviio fails upon installation without any useful information. Any clues?
Thanks
1) It’s somewhat confusing. The hardware FPU can still be used when the toolchain targets the SoftFP ABI. I believe it means that it produces binaries that would still work on a system without the FPU. My understanding (confirmed through early testing) is that I have to follow whatever ABI was used in the toolchain that built that particular version of DSM.
2) Yes, my packages with Java dependencies will work if you install the full Java SE runtime via the Synology Java Manager. They check that Java is installed by the existence (or not) of the $JAVA_HOME environment variable. You can’t install both Java SE and Java Embedded concurrently though.
3) Not sure why Serviio would fail to install on your system though. Is there a Package Center error message in /var/log/messages when this happens?
More robust? My package also expects you to download the Java file from Oracle, for reasons explained in the error message. I even give you the hyperlink and the exact package you need to fetch in that error text.
Yes, sorry forget my first question. I thought it was failing because it was trying to download the files from Oracle’s web site.
Thank you, this is the latest trace in /var/log/messages, hopefully it’s related to the issue.
Feb 17 11:48:41 DiskStation codesign.php: Signature file not found in archive.
Found the issue, it’s the new Trust Level in DSM 5.1.
Open the Package Manager then click on the Settings button. In General, set the Trust Level to Any Publisher and package installation worked.
Thanks.
The repo now pushes my public key, and the Java and CrashPlan packages are signed, so you can put the Trust setting on “Synology Inc. and trusted publishers”.
Hey guys,
I tried to install serviio on my DS214play. Without any success :/
First I istalled Java7 and Serviio on my DS, afterwards Serviio Console on my Win8 PC.
Unfortunately the Console do not start (even though I change the vmoptions-file).
Where could be the mistake? Can anybody help?
Thank a lot!
Alex
HI Alex,
I also have DS214play but I used Java6, not Java7
Hi, please add support DS215J
when for ds215, mate?
Waiting too :) but no rush it’s hard work :) thank you dev
On holiday at the moment, hoping to get it done soon.
Please keep me in the loop for DS215j. Thanks for your work!
Same for me ! Let me know when you have the solution for the DS215J ;)
Hi mate,
I’m using Serviio 1.4.1.2 for Synology DS214play and it works fine as for me. But recently got a notification that there is 1.5.1 was released. Do you have plans to upgrade Serviio for Synology up to this version? Just asking, not pushing :)
Thanks!
I do yes, unfortunately it’s been difficult to find time for it recently. It will happen, because Serviio is something I use, and my installation is currently broken while I was testing implementing 1.5 – so there’s a strong motivation for me to finish.
Are your packages on GitHub? Might be able to help out with the 1.5 build if needed?
Nice to read this, thanks spending your free time for this project!
Hi, is in 1.5 also a solution for DS215j? I hope so. Thanks for your effort!
1.5.2 is now out… some new for synology user’s?
I’ve managed to install linux version of the Serviio 1.5.1 on top of the existing synology 1.4.2 package installation. Just had to fix some permissions/owner. Also added new ffmpeg build. Intel cpu, Java 8. Everything works perfectly.
Hey ddfs,
could you elaborate a little how you managed to compile the new ffmpeg build? Which version did you use?
Thanks
Could you maybe make a small step by step tutorial for noob user?
Hello, i have changed my Synology DS412+ to a DS415+. I make a complete new installation (no migration). But if i stream .mkv files to my Sony TV (2011), the stream stops. I have java and Serviio reinstalled but i have the same problem.
Someone have an idea?
Have you tried playback with different profiles? They may make the video stream more compatible for your particular TV.
It may be possible that you have a corrupt file if it’s one particular one that keeps stopping.
As John says, check out the different profiles available. Serviio is usually quite good at auto detecting a device (e.g. a PS3) but sometimes it gets caught out with TVs and Blu Ray players.
My Sony W905 TV and Sony Blu Ray players wouldn’t play certain files properly without the correct Bravia/Blu Ray player profile selected in the Serviio console for that device. HD MKV files now work fine for me. :o)
Also if you are trying to stream via Wireless (at either end) expect problems with high def stuff. I switched to powerline adapters and it made a massive difference in that respect.
If you’re sure it isn’t a problem with the file by testing several different files, then I’d try changing the device profiles because your device may work better with a simpler profile.
Hello i had the same problem with my Sony TV and found out it was due to a to high bitrate. So i found the sweet spot for my Sony TV to be i total bitrate(audio+video) no higher then 11000 Kbps. To be more precise my audio is 640 Kbps and my video has a variable/overall bitrate of 10000 Kbps. I use a program call TX264 to convert my movies to my preferred bitrate.
hi friend! when will you release for synology 215 ? we still wait!!! =((
Installed Java but can’t see Serviio in package center ???? DS214Play DSM 5.2-5565?
Please advise?
Hello, I’m using Serviio 1.4.1.2 for Synology DS214play and it works fine as for me. But recently i installed DSM 5.2 and it s no more working. Serviio for Synology is now not working. Serviio cannot access to the library … Are you aware about this king of problems ?
Thanks in advance
I cannot confirm that on a DS114. Updated to DSM 5.2 yesterday and Serviio 1.4.1.2 is still working like before. What you are experiencing sounds like a rights management problem to me.
I’ve upgraded to DSM 5.2 on my DS412+ and Serviio still works fine for me too.
Try stopping Serviio, uninstalling Java, reinstalling Java and then starting Serviio again. I reinstall Java after all DSM updates, as recommended by patters, and so far I’ve had no problems.
Hello, can you help me with adding right value to info.plist?? When I use as source to the mac os (10.10.3) connected network (from NAS synology 415 play) drives everything works properly. But as source used drives direct (for example…volume1/Music) from NAS (synology 415play) not connect. Maybe I have added bed value (or wrong position) to info.plist. Thanks Michal
After Java reinstallation, it’s work fine on DSM214Play. Thanks you for your help
http://serviio.org/component/content/article?id=21#q3
I’m also waiting for 1.5.2 for Synology NAS DS213.
Does anyone know if Serviio 1.4.2 works correctly with Java 8?
Java 8 here with serviio 1.4.2 on DSM 5.1 and no problem :)
I’m waiting for serviio 1.5.2 or for a way to manually install it on DSM5.2 ;)
Me too…