Serviio package for Synology NAS

Serviio 1.4 in DSM Package Center

Many people are using the Synology packages I created for Serviio and Java, and most of them will have installed from my package repository making the upgrade possible with just one click.

This new version updates Serviio to version (release notes). The Media Browser has been redesigned (Pro version 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. Most Synology NAS models lack the CPU power to transcode video into H.264 and furthermore, licensing restrictions prevent distribution of an FFmpeg binary with libfdk_aac support. As a result, realtime AAC audio transcoding on older ARMv5 NAS models (which lack an FPU) is also out of reach, even if the source video is already H.264.

Renderers that do not natively support subtitles via DLNA can have them burned into the video during transcoding, but in general a NAS lacks the CPU power to do this (more info here). Please comment if this works nicely on the Intel or ARMv7 models. ARMv5 and PowerPC are confirmed to be too slow. 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.

For burning subtitles into video streams the package downloads the free DejaVu font family from SourceForge during installation, since DSM does not include any fonts. Non-Latin character encodings should be supported as long as fonts with support are provided. The DejaVu font does not include support for Chinese glyphs for instance. You will need to copy new fonts to the folder /volume1/@appstore/Serviio/lib/dejavu-fonts-ttf-2.33/ttf.

I was able to compile FFmpeg 2.1 for all four supported architectures with libx264 and libass support (and dependent libraries) while using the libs included within DSM as far as possible. Only the Intel CPU will be of any practical use transcoding to H.264, since the other CPUs lack vector support (no AltiVec in QorIQ/PowerQUICC, and no NEON in Armada 370/XP).

As with the last few versions of the package, there is no Web UI included so I recommend that you manage Serviio using Serviio 1.4 Console installed on another computer. Integrating a Web UI into the package can be tricky because they do introduce problems of their own (bugs, browser incompatibilities), their development tends to lag behind the Serviio releases which can significantly delay my releases, and this also means I have to re-package as they get updated. Maintaining the CSS was also a lot of work. For the relatively small benefit the WebUI brings, it doesn’t really justify the effort. It only takes a few minutes to set up a remote console.



The package can be installed on an unmodified NAS – no hacking is required.

  • Firstly, in the DSM User control panel enable the User Home service.
  • Open the DSM Package Center. In Settings -> Package Sources add my package repository URL which is
  • Install either one of my Java SE Embedded Synology packages (Java 6 or Java 7). Only Marvell Kirkwood, Marvell Armada 370/XP, Intel, and Freescale QorIQ PowerPC CPUs are supported, or PowerQUICC running DSM 5.0 or later, so please check which CPU your NAS has.
  • Install Serviio using DSM’s Package Center.
  • Download any Serviio online content plugins that you require and leave the .groovy files in your NAS’s /volume1/public/serviio/plugins folder (where /volume1 is you primary storage volume). This folder is created automatically by the package installer.
  • Download and install Serviio on another computer (selecting only the Console when prompted) and configure it to connect to your NAS:
    For Mac OS find Serviio-Console, right-click, then Show Package Contents. Use TextEdit to open Contents/info.plist and add this towards the end of the file after the last key and string entries (Properties section):

    ..replacing that IP with the IP of your NAS obviously. Then save, navigate back the Serviio folder and launch Serviio-Console again.
    On Windows, use Notepad to open ServiioConsole.exe.vmoptions (in the Serviio/bin folder) and add the line:
    On a Linux client, add this same parameter to the JAVA_OPTS in Serviio/bin/
    Do not make this change on the NAS – only on the computer that runs the console.
  • Since this console binding uses a static address you should reserve this particular 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 also prevent Serviio appearing multiple times in the menus of your renderer devices.
  • Once the remote console is connected be aware that everything it indicates relates to the NAS, *not* to the Serviio installation on your computer.


  • In the console disable ‘Generate thumbnails for local videos’ in the Metadata tab. Failure to do this will make adding videos to your library very slow. 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. 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 Add Path button (not Add Local). You will need to specify the folder path in the NAS’s Linux notation, for example /volume1/public/videos
  • Don’t forget to use the Users control panel in DSM to grant permission for the Serviio user to read your files (if they’re not in the public share).
  • When closing the Console, notice that ‘Exit Serviio’ quits the Console and also stops Serviio running on the NAS. To only quit the Console, be sure to select ‘Exit Serviio Console’ instead.
  • The package will allow future upgrades while preserving the media database, as long as Serviio itself is ok with that.
  • If you’re upgrading from a previous Serviio version you should update your online content plugins.
  • You can see Serviio’s log by clicking More in the Package Center.
  • The URL of the MediaBrowser is also displayed there (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.
  • If you have upgraded your DSM version and have lost unicode character support in Serviio, you will need to remove and reinstall the Java package which will fix the system locale support (DSM updates break this unfortunately).
  • Package Center installs the application to /volume1/@appstore/Serviio though from what I understand, on multi-volume systems the user is prompted for a destination volume. If you need to edit device profiles or enable debug logging then that’s where you’ll find the files. You will need to use an SSH session to access this folder – it’s not browsable in DSM’s File Station. The simplest way to edit these files if you’re not really confident with Linux is to install Merty’s Config File Editor package, which requires the official Synology Perl package to be installed too (since DSM 4.2). Load Config File Editor, then in the dropdown menu edit Config File Editor’s own config (it’s the last in the list) and add the lines:

    Make sure to add an extra blank line underneath, save, then relaunch CFE and you’ll have an entry for Serviio in the dropdown. You’ll need to restart the Serviio package for any changes to take effect.
  • Bear in mind that a NAS, even an Intel Atom powered one, is unlikely to have sufficient CPU power to manage realtime video transcoding (e.g. from DivX to MPEG2), though it will manage remuxing MKV to M2TS and realtime audio transcoding. If you have a DLNA renderer with good format support then this isn’t an issue.
  • Unfortunately for this same reason the MediaBrowser is probably of limited value if you run Serviio on a NAS, since it uses realtime video transcoding, but I have nonetheless taken several steps to mitigate this. I have modified the FlowPlayer application profile to play AAC audio natively (you will only get the L+R channels from a multichannel file), and I have been able to integrate the integer maths libshine MP3 encoder into my build of FFmpeg for ARM CPUs, which allows you to listen to FLAC music transcoded to MP3 in realtime (useful for wifi music players for instance). I used a wrapper script to force libshine’s encoding bitrate to 320Kbps at all times since it didn’t increase the load, and it hides this simple encoder’s slight lack of quality. Source code for libshine is available here.
  • I have left the FFmpeg wrapper script in the package even when not in use (in the Serviio/bin folder), because it’s still useful for people trying to test a particular workaround or encoder setting. The wrapper was a really 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 /volume1/@appstore/Serviio/bin/ (changing the location to /volume1/@appstore/Serviio/bin/

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 Package wiki.


#--------SERVIIO installer script
#--------package maintained at

DAEMON_USER="`echo ${SYNOPKG_PKGNAME} | awk {'print tolower($_)'}`"
DAEMON_PASS="`openssl rand 12 -base64 2>/dev/null`"
SYNO_CPU_ARCH="`uname -m`"
[ "${SYNO_CPU_ARCH}" == "x86_64" ] && SYNO_CPU_ARCH="i686"
NATIVE_BINS_FILE="`echo ${NATIVE_BINS_URL} | sed -r "s%^.*/(.*)%\1%"`"
FONTS_FILE="`echo ${FONTS_URL} | sed -r "s%^.*/(.*)%\1%"`"

source /etc/profile
TEMP_FOLDER="`find / -maxdepth 2 -name '@tmp' | head -n 1`"
PUBLIC_FOLDER="`cat /usr/syno/etc/smb.conf | sed -r '/\/public$/!d;s/^.*path=(\/volume[0-9]{1,4}\/public).*$/\1/'`"
PLUGINS_PATH="/`echo $TEMP_FOLDER | cut -f2 -d'/'`/public/serviio"

preinst ()
  if [ -z ${JAVA_HOME} ]; then
    echo "Java is not installed or not properly configured. JAVA_HOME is not defined. "
    echo "Download and install the Java Synology package from"
    exit 1
  if [ ! -f ${JAVA_HOME}/bin/java ]; then
    echo "Java is not installed or not properly configured. The Java binary could not be located. "
    echo "Download and install the Java Synology package from"
    exit 1
  #is the User Home service enabled?
  synouser --add userhometest Testing123 "User Home test user" 0 "" ""
  UHT_HOMEDIR=`cat /etc/passwd | sed -r '/User Home test user/!d;s/^.*:User Home test user:(.*):.*$/\1/'`
  if echo $UHT_HOMEDIR | grep '/var/services/homes/' > /dev/null; then
    if [ ! -d $UHT_HOMEDIR ]; then
  synouser --del userhometest
  #remove home directory (needed since DSM 4.1)
  [ -e /var/services/homes/userhometest ] && rm -r /var/services/homes/userhometest
  if [ ${UH_SERVICE} == "false" ]; then
    echo "The User Home service is not enabled. Please enable this feature in the User control panel in DSM."
    exit 1
    WGET_FILENAME="`echo ${WGET_URL} | sed -r "s%^.*/(.*)%\1%"`"
    wget ${WGET_URL}
    if [[ $? != 0 ]]; then
      if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/${WGET_FILENAME} ]; then
        echo "There was a problem downloading ${WGET_FILENAME} from the official download link, "
        echo "which was \"${WGET_URL}\" "
        echo "Alternatively, you may download this file manually and place it in the 'public' shared folder. "
        exit 1

  exit 0

postinst ()
  #create serviio daemon user
  synouser --add ${DAEMON_USER} ${DAEMON_PASS} "${DAEMON_ID}" 0 "" ""
  #determine the serviio user homedir and save that variable in the user's profile
  #this is needed because librtmp needs to write a file called ~/.swfinfo
  #and new users seem to inherit a HOME value of /root which they have no permissions for
  DAEMON_HOME="`cat /etc/passwd | grep "${DAEMON_ID}" | cut -f6 -d':'`"
  su - ${DAEMON_USER} -s /bin/sh -c "echo export HOME=\'${DAEMON_HOME}\' >> .profile"
  #fontconfig configuration which is needed for libass subtitles
  su - ${DAEMON_USER} -s /bin/sh -c "echo export FONTCONFIG_FILE=fonts.conf >> .profile"
  su - ${DAEMON_USER} -s /bin/sh -c "echo export FONTCONFIG_PATH=${SYNOPKG_PKGDEST}/config/fonts >> .profile"

  #extract the downloaded Serviio archive
  if [ ! -z "${EXTRACTED_FOLDER}" ]; then
  if [ ! -d "${PLUGINS_PATH}/plugins" ]; then
    mkdir -p ${PLUGINS_PATH}/plugins
  #extract CPU-specific additional binaries
  mv ${SYNOPKG_PKGDEST}/lib/ffmpeg ${SYNOPKG_PKGDEST}/bin
  ${SYNOPKG_PKGDEST}/bin/ffmpeg -version > /dev/null 2>&1 || (
    #this system is running an older DSM with missing dependencies, fetch more libs
    NATIVE_BINS_URL=`echo ${NATIVE_BINS_URL} | sed -e "s/.tgz/-oldDSM.tgz/"`
    NATIVE_BINS_FILE="`echo ${NATIVE_BINS_URL} | sed -r "s%^.*/(.*)%\1%"`"
    wget ${NATIVE_BINS_URL}
    tar xzf ${NATIVE_BINS_FILE} && rm ${NATIVE_BINS_FILE}
  #extract open source font package for subtitle support during transcoding
  sed -i "s|WINDOWSFONTDIR|${SYNOPKG_PKGDEST}/lib/dejavu-fonts-ttf-2.33/ttf|" ${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 [ "${SYNO_CPU_ARCH}" == "armv5tel" ]; then
    #we need to use the wrapper to make FFmpeg use libshine instead of libmp3lame on ARM systems

  #modification to natively play AAC audio in Media Browser, minimizing transcoding
  mv ${SYNOPKG_PKGDEST}/application-profiles.xml ${SYNOPKG_PKGDEST}/config
  #set some additional Serviio system properties (temp folder, FFmpeg path, plugins folder)
  EXTRA_OPTS="-Dserviio\.defaultTranscodeFolder=${TEMP_FOLDER} -Dffmpeg\.location=${FFMPEG_PATH} -Dplugins\.location=${PLUGINS_PATH}"
  #fix Java prefs checking which was preventing NAS hibernation
  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
    EXTRA_OPTS="${EXTRA_OPTS} -Dserviio\.fixedPointEncoders"
  sed -r -i "s%^(JAVA_OPTS=.*)\"$%\1 ${EXTRA_OPTS}\"%" ${SYNOPKG_PKGDEST}/bin/
  #change owner of Serviio folder tree
  #reset ownership on any pre-existing transcoding temp folder
  if [ -d ${TEMP_FOLDER}/Serviio ]; then
    chown -R ${DAEMON_USER} ${TEMP_FOLDER}/Serviio
  exit 0

preuninst ()
  #make sure that daemon is stopped
  su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/ -stop"
  sleep 6
  exit 0

postuninst ()
  #remove daemon user
  synouser --del ${DAEMON_USER}
  #remove daemon user's home directory (needed since DSM 4.1)
  [ -e /var/services/homes/${DAEMON_USER} ] && rm -r /var/services/homes/${DAEMON_USER}
  exit 0

preupgrade ()
  #make sure that daemon is stopped
  su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/ -stop"
  sleep 6
  #if a media database exists we need to preserve it
  if [ -d ${SYNOPKG_PKGDEST}/library/db ]; then
    mkdir ${SYNOPKG_PKGDEST}/../${DAEMON_USER}_db_migration
    mv ${SYNOPKG_PKGDEST}/library/db ${SYNOPKG_PKGDEST}/../${DAEMON_USER}_db_migration
  exit 0

postupgrade ()
  #use the backed up media database from the previous version
  if [ -d ${SYNOPKG_PKGDEST}/../${DAEMON_USER}_db_migration/db ]; then
    mv ${SYNOPKG_PKGDEST}/../${DAEMON_USER}_db_migration/db ${SYNOPKG_PKGDEST}/library
    rmdir ${SYNOPKG_PKGDEST}/../${DAEMON_USER}_db_migration
    #daemon user has been deleted and recreated so we need to reset ownership (new UID)
    chown -R ${DAEMON_USER} ${SYNOPKG_PKGDEST}/library/db
  #reset ownership on transcoding temp folder
  if [ -d ${TEMP_FOLDER}/Serviio ]; then
    chown -R ${DAEMON_USER} ${TEMP_FOLDER}/Serviio
  exit 0


#--------SERVIIO start-stop-status script
#--------package maintained at

DAEMON_USER="`echo ${SYNOPKG_PKGNAME} | awk {'print tolower($_)'}`"

daemon_status ()
  ps | grep "^ *[0-9]* ${DAEMON_USER} .*java" > /dev/null

case $1 in
    DAEMON_HOME="`cat /etc/passwd | grep "${DAEMON_ID}" | cut -f6 -d':'`"
    #set the current timezone for Java so that log timestamps are accurate
    #we need to use the modern timezone names so that Java can figure out DST
    SYNO_TZ=`cat /etc/synoinfo.conf | grep timezone | cut -f2 -d'"'`
    SYNO_TZ=`grep "^${SYNO_TZ}" /usr/share/zoneinfo/Timezone/tzname | sed -e "s/^.*= //"`
    grep "^export TZ" ${DAEMON_HOME}/.profile > /dev/null \
     && sed -i "s%^export TZ=.*$%export TZ='${SYNO_TZ}'%" ${DAEMON_HOME}/.profile \
     || echo export TZ=\'${SYNO_TZ}\' >> ${DAEMON_HOME}/.profile
    #set appropriate Java max heap size
    RAM=$((`free | grep Mem: | sed -e "s/^ *Mem: *\([0-9]*\).*$/\1/"`/1024))
    if [ $RAM -le 128 ]; then
    elif [ $RAM -le 256 ]; then
    elif [ $RAM -le 512 ]; then
    #Serviio's default max heap is 512MB
    elif [ $RAM -gt 512 ]; then
    sed -i -r "s/(^..JAVA.) -Xmx[0-9]+[mM] (.*$)/\1 -Xmx${JAVA_MAX_HEAP}m \2/" "${SYNOPKG_PKGDEST}/bin/${ENGINE_CFG}"
    su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/${ENGINE_SCRIPT} &"
    exit 0

    su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/${ENGINE_SCRIPT} -stop"
    sleep 6
    exit 0

    if daemon_status ; then
      exit 0
      exit 1

    echo "${SYNOPKG_PKGDEST}/log/serviio.log"
    exit 0



#FFmpeg wrapper script to use libshine fixed point maths MP3 encoder on ARM CPUs
#as originally posted here:

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}\""    
  if [ "${PARAM}" == "-i" ]; then
    #this loop is the -i parameter, the next loop will be the input filename/URL

#make libshine encoder substitution, 320kbps since it's no more expensive
if [ "${PARAMS}" != "${PARAMS/libmp3lame/}" ] || [ "${PARAMS}" != "${PARAMS/-f mp3/}" ]; then
  PARAMS="`echo ${PARAMS} | sed -r "s|libmp3lame|libshine|;s|-b:a [0-9]+k|-b:a 320k|"`"

#make libfdk_aac encoder substitution, 128Kbps since we're usually transcoding to AAC stereo only
#if [ "${PARAMS}" != "${PARAMS/-c:a aac/}" ]; then
#  PARAMS="`echo ${PARAMS} | sed -r "s| aac -strict experimental | libfdk_aac |;s|-b:a [0-9]+k|-b:a 128k|"`"

#invoke FFmpeg
FOLDER="`dirname $0`"
echo "${FOLDER}/${FFMPEG_BIN} ${PARAMS}" > ${FOLDER}/../log/ffmpeg-wrapper.log
#need to use eval here otherwise the quotes aren't handled properly

#return FFmpeg status
exit $?


  • Updated to Serviio
  • Updated to Serviio
  • 1.4.0-0024 Updated to Serviio 1.4
  • 1.3.1-0023 Updated to FFmpeg 2.1 stable release
  • 1.3.1-0022 Added support for Intel Atom Evansport and Armada XP CPUs in new DSx14 products
  • 1.3.1-0021 Fixed zlib linking issue in QorIQ and Intel builds of FFmpeg
  • 1.3.1-0020 Updated to Serviio 1.3.1
  • 1.2.1-0019 Added support for Armada370 SoC used in DS213j (ARMv7 CPU with FPU)
  • 1.2.1-0018 Updated to Serviio 1.2.1, recompiled FFmpeg to use the libRTMP source code from for consistency
  • 1.2.0-0017 Updated to Serviio 1.2
  • 1.1.0-0016 Fixes for DSM 4.2
  • 1.1.0-015 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.
  • 1.0-014 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 Media Browser more usable with online feed items.
  • 1.0-013 fixed a bug in the plugins folder creation, fixed deletion of home directories after user deletion (DSM 4.1)
  • 1.0-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)
  • 1.0-011 updated Serviio to 1.0.1, slightly altered how the plugins folder path is determined
  • 1.0-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
  • 0.6.2-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)
  • 0.6.2-008 fixed DST timezone support, installer no longer assumes /volume1 is primary storage volume
  • 0.6.2-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
  • 0.6.1-006 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
  • added Web Station dependency, EULA dialog, and links for Web UI and user forum in More Info
  • test for package repo to allow update notification
  • v3 hopefully fixed an issue with the Serviio DSM icon in DSM 3.2 on NAS units without Optware installed
  • v2 inclusion of a modified version of the PHP Web UI
  • v1 new minor Serviio release with some updated international translations – will upgrade 0.6 preserving the media library
  • 0.6 v1 first public release
  • 0.6b4 v2 fixed permissions on transcode temporary folder following upgrade, avoiding the need for a reboot
  • 0.6b4 v1 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

About these ads

862 thoughts on “Serviio package for Synology NAS

    1. wdouter

      23424 port that is configured for this package is used by another service or is reserved for system use. Disable the service that is causing the conflict, or contact the developer to change the configuration of the package.
      how do i kill the serviio service?

  1. Benji

    Just installed DSM 5.0 on my DS212j and Serviio stopped running. Just uninstalled Java 6 and re-installed then went to Serviio and hit Run and it works again. Hope this helps!

  2. Cedric

    I Upgrade to DSM 5.0 since 2 day and Serviio didn’t want to work. I have reinstall It and Java and got this error when I try to log to the media browser “Returning error code 503 to the REST”

  3. Mario

    Also i upgrade to dsm 5, and serviio doesn’t restart.. i have unistalled all: serviio and java 1.7 i restart my nas 213 and i have reistalled all.. first java 1.7. 0.51 and after i have installed serviio 1.4 but it doesnt restart..

    if i go to mediabrowser page i can see the page , but if i go on my tv or on my pc where is installed serviio console i can’t see the server..


  4. Robert


    It happens exactly the same with my DSM213J .

    Upgrade to DSM 5.0 , and everything worked fine except Serviio . As much as it began, did not start . So uninstall it and install again . Without success.

    So I read , and I understood that the problem was in Java , so reinstall Java, Serviio now if initiated , but the console does not work , it opens but does not connect .

    I have made some tests. For example, if I run :


    I returned:


    If I run to see the license:


    I returned:

    Even to rule out a problem with my Mac , I’ve had a macbook, where if the Serviio -Console starts, but does not show the console.

    To go further , I have even tried to install serviio console for PHP, and more attempting to activate the server does not start .

    So I’ve gotten into SSH, and after buying a PRO license , I tried to update it with the following result:

    curl- i- H “Content -Type : plain / text ; Accept: application / json” -X PUT ” http://192.168.xx.xx:23423/rest/license-upload ” -T Serviio_xxxx.lic
    HTTP/1.1 500 Internal Server Error
    Connection : close
    Transfer -Encoding : chunked
    Date: Thu, 13 Mar 2014 16:34:59 GMT
    Server : Restlet -Framework / @ number @ @ major- minor- release number @ @ @ @ release -type – number @ .
    Vary : Accept- Charset , Accept- Encoding, Accept- Language , Accept
    Content- Type: application / xml; charset = UTF -8

    To do more tests , I went to the root of Serviio on my Synology , until you find the . When I run :

    Estacion> sh
    Exception in thread ” Thread- 1″ java.lang.NullPointerException
    at org.serviio.console.ServiioConsole $ ( : 324 )

    And rather than reinstall Serviio , java, or Restart the DSM does not work. Any tips ?

  5. apornstar

    Same Problem Here … Synology DSM 5 Update … Serviio doesn’t start anymore … please advise!!!!

  6. foreskinzola

    Unfortunately I have to add myself to the list of users that are having problems. I have a 212j with a fresh install of DSM 5, latest java, latest serviio. It does not startup correctly. The process still seems to be running. I switched on debug logging and the last few lines from the log file were :
    2014-03-13 20:09:09,124 DEBUG [TechnicalMetadataCacheDecorator] Cleared cache (online_technical_metadata)
    2014-03-13 20:09:09,124 DEBUG [DBSchemaUpdateExecutor] Setting a new database update ID
    2014-03-13 20:09:09,126 DEBUG [ConfigEntryDAOImpl] Reading a ConfigEntry (name = db_update_id)
    2014-03-13 20:09:09,165 DEBUG [ConfigEntryDAOImpl] Creating a new ConfigEntry (name = db_update_id, value = a2a0488e42504e57a0f02ee5e3d4af11)

    Let me know if i can provide and more info or help.

  7. Sebastian

    It seems that lib/padlock.jar is corrupted in the current download package. I was not able to run the Serviio 1.4 on DSM 4.3 or 5.0 without replacing that file with the one from 1.4.1 linux tarball.


    1. patters Post author

      That’s odd. If you expand the script sources of my package in this page, you can see that I don’t actually distribute Serviio at all. The package script fetches the standard Linux Serviio archive from

      I’m afraid I haven’t had any time available to investigate this DSM5.0 issue, and I am also busy all weekend.

  8. Robert

    It’s true! To all who have the problem with DSM 5.0, is solved by changing the padlock.jar file.

    Madre mia! with the hours I’ve spent trying to fix this!

    Thank you Sebastian!

    1. Matt

      That would explain why my recent upgrade from DSM 5.0 beta to DSM 5.0 didn’t break my Serviio set up as I only had to reinstall Java 7. I wonder if something has gotten messed up on during the recent 1.4.1 update?

      1. dfragar

        Reinstalling Java 7 didn’t fix it for me. Changing back to Java 6 did. If that hadn’t worked next step was to try copying over padlock.jar.

    1. Robert

      Login via SSH to your Synology. Normally, in:

      cd /volume1/@appstore/Serviio/lib/

      find the package: padlock.jar

      This package should replace it with the version 1.4.1, for example. It downloads to your computer’s version of Linux, and upload it to the public folder. Move it to the folder you indicated above, and from that moment, and Serviio works.

  9. marco792013

    Ok i confirm that reinstalling Java 1.7.0 (first remove, then reinstall from community menu) will make your Serviio to work again. but the access to WEbUI is gone, so you cannot add toher folders or change the configs. ANy idea how to solve this?

  10. Dan

    I think an update is necessary for Serviio and for Console WeBUI, we have to wait. It was a bad idea to upgrade to DSM 5.0.

  11. patters Post author

    I have now updated my Syno to the release version of DSM5.0. Serviio still works. Here’s what I did:

    I used vi to edit /var/packages/Serviio/INFO and lowered the package version number to 0023. This prompted a Serviio update to be shown in Package Center following a refresh. However if you try to update Serviio, without removing and reinstalling Java then the Serviio upgrade will fail because apparently $JAVA_HOME is not defined after the DSM5.0 upgrade. Despite this failure, your Serviio database will still be saved though. If that happens to you, cancel out of the Serviio install wizard after the failure. Remove and Reinstall my Java package. Now install Serviio but do not select Run After Install. Once Serviio is installed, you need to copy your backed up database from the failed upgrade:
    cd /volume1/@appstore/serviio_db_migration
    cp -R db /volume1/@appstore/Serviio/library
    chown -R serviio /volume1/@appstore/Serviio/library

    Now start Serviio and check the log. It will start up. The MediaBrowser works, and I can connect fine with a Serviio Console instance on another computer.

    I will be releasing a new Serviio package soon for, but for now anyone who upgrades to DSM5.0 should immediately reinstall Java before they try updating any of my packages.

      1. patters Post author

        There is no WebUI. You need to use a Serviio Console running on a computer – see the instructions on this page on how to configure it to connect to your NAS’s Serviio instance.

  12. patters Post author

    I have released the new version. FFmpeg is unchanged because that’s literally a week’s work to compile for all the different CPU types. Serviio’s ‘official’ recommended FFmpeg build is still older than mine.

    1. marco792013

      Thanks! will this solve also the WEB ui that was not working anymore after dsm5 and java reinstall ?

    2. Nathan

      Not working for me anymore. It worked last night after I upgraded to DSM and uninstalled/reinstalled Java 6 and then it worked again. Now after running the update for serviio, it won’t run again. Thoughts?

  13. EPIX

    i tried to upgrade to the newest version, but I get a fault, thtat I should stop the process “serviio console” before updating…
    How should I do this? – I just can’t find a way to do this…

    Greetings from austria

    1. patters Post author

      As mentioned in the main blog post I don’t support the web console at all. This is something unofficial made by a third party (not Serviio’s developer) so I have no expectation that it will work following version upgrades etc. Use the real Serviio Console application from a computer. Perhaps later the Web UI will catch up, but you’ll have to experiment with that yourself.

      1. marco792013

        Thanks at the end i followed your advice and with console i can access the control panel so now its perfect… only one little thing: controlpanerl says my license will expire in 12 days. After that, will i still be able to access it? what will change?

  14. Wayne

    What Happen if you have Serviio already running on that PC streaming on your network then what? And still doesn’t work on 2411+, it has never worked…

  15. cwimar

    my problem sems a little different. I’ve installed serviio on my DS213j (several times now) with either java 6,0 or java 7,0 and it always seems to work all right (in the log) but when I try to access it on http://myserverIP:23424/mediabrowser – it alaways says that the address is wrong. The Console on the computer can’t find it as well. I thought it could be some port forwarding problem, but I try to use it on my lan. I searched different firewall options but I can’t find the cause.
    Any advice please?
    And where can I find the log to copy it, as the only place i can access it doesnt let me copy it.

  16. Udo

    Inside the photo folder there was an @eadir folder (thumbnails).
    But there is not need to see this folder, so why don’t hide it?

    1. patters Post author

      The @eaDir thing is specific to Synology DSM. Zip would need to alter Serviio to exclude it I think. Maybe you could ask on the Serviio forum suggestions subforum (request for library exclusion regex – much like with CrashPlan).

  17. Chris

    Hi Patters,

    After updating my DSM to the latest version, every time I try to start Serviio, I get the following error message: “Haven’t found any suitable local IP address, will try again 1 time”.

    I’ve already tried to re-install JAVA, Serviio, Serviio-Console and tried multiple restarts. But since the update that I did a couple of hours ago, the same message keeps coming back… Can you please help me out?

    Thanks in advance!

    1. patters Post author

      Is this a Web Console issue (which I do not distribute or support)? Verify first by using the proper Serviio Console client from a computer. If that works then Serviio is fine – the web console is the problem.

      1. chrisinzweden

        Thanks for your quick reply. What exactly do you mean with ‘a Web Console’?

        I’ve downloaded and used the Serviio-Console from this page:
        That should be the correct one, right?

        I’m a little bit puzzled on how to continue…

        Anyhow, I really appreciate your help.

      2. patters Post author

        Ah, my mistake. Yes that is the correct console. A lot of people want to install a third party web-based one written in PHP, and that’s the one that causes issues.
        Did you definitely edit the Console application to point at your NAS’s IP address?

      3. chrisinzweden

        Hi Patters,

        Thanks for your quick reply. Really appreciate your help here.

        I downloaded the serviio-console from This should be supported right? What else could be the problem? Could it maybe have to do with the latest upgrade from Synology DSM?


      4. patters Post author

        It’s a side project maintained by some other guys on the forum there – not an official release, and it often breaks when new versions of Serviio come out. I stopped attempting to bundle it with the Synology package a long time ago because it cause most of the issues people were having.

  18. harrywerk

    Hi Peter.
    Could you give me a download link for the Serviio package for my DS410 (running DSM 5.x) and I try and install it manually.
    The package install from the site always comes back with Downloading … Failed to download.
    All other packages have downloaded and installed without issue. Serviio was on there before (1.4.0.x) but I couldn’t update it because of the above error.

  19. chrisinzweden

    Hi Patters,

    After doing a full re-install of Serviio on my Synology and JAVA, it still gives me the error: “Haven’t found any suitable local IP address, will try again 1 time”.

    I’m sorry for getting this back to you… but do you have any other thoughts on how I could fix this problem?

    Thanks again,

    1. patters Post author

      Try leaving the Synology idle for a few minutes before you reinstall the package perhaps. I’ve seen it complain about port conflicts when there are none, and then be fine a few moments later.

  20. bornext

    Hello patters,

    you’re talking about ffmpeg 2.1 but the version included with servio on my Intel NAS (1511+) say 2.0.2.
    Did I missed something somewhere ?

    Another question related to the compilation: does your page is up to date ?
    No new version of the DSM-Source archive ?

    Thanks for your work.

    1. patters Post author

      There’s already an ffmpeg included with DSM but it lacks some features that Serviio needs. Run /volume1/@appstore/Serviio/bin/ffmpeg to check the version, because the Serviio one is not added to the system path.

      1. bornext

        Argh! I’m “stupid” sometimes.
        Thanks for this friendly reminder.

        What about the DSM-Source archive from your ffmpeg compilation page?

        Does this entry now work-> Apple (HFS)?
        “ffmpeg -ss %o -t %d -i %s -async 1 -b %bk -s %wx%h -ar 44100 -ac 2 -v 0 -f mpegts -vcodec libx264 -preset superfast -acodec libmp3lame -threads 0 -”

      2. patters Post author

        I believe my ffmpeg binary supports HLS since Serviio uses it for streaming to iOS devices when using the Media Browser. As for the DSM source stuff I hosted on my Dropbox, no I haven’t updated it. Updating my ffmpeg binary for four different CPU architectures with all the dependent libraries is a big task which I don’t do very often. You can obtain newer sources for those DSM-included packages here, but they’re all contained in one huge archive. I seem to remember that I used quite an old OpenSSL (1.0x – before Heartbleed) because the 1.0.1 versions would break something else at the time (librtmp perhaps).

  21. greggandjah


    My syno is a 209+.
    I installed java via the alternate methode from . It seems to work.
    But now Serviio doesn’t appear in the package center, in the third tab.
    Does it mean that my syno isn’t compatible with your serviio package?
    Thank you

    1. patters Post author

      Using that Debian chroot is problematic – chreggy would have to make a dedicated Serviio package really because I wouldn’t be able to test.

      1. greggandjah

        Hi, thank you for the reply.

        But actually, I can only see three of your packages: CraftBukkit, Minecraft, and OpenRemote.
        No Java or Serviio. And this was the same before installing the java package from chreggy with the Debian chroot. I didn’t go through the end to install CrashPlan. Only Debian and Java.

        That’s why I wonder if my syno is compatible with Serviio packages. My DSM is 4.0-2219.

        What could you suggest to me?

        Thanks again for your answer

      2. patters Post author

        With that processor you can’t use my packages unfortunately. You would need DSM 5.0 which Synology only made available for 2010 Synology products or newer. Yours is a 2009 model. For your NAS, the repository is only displaying the pure Java packages that have no CPU requirement, even then I’m unsure if they would work with chreggy’s Java package.

      3. greggandjah

        So sad… I’ll wait to win the lotery to buy a new syno…
        Whatever, thank you for your answers, really appreciate this.
        Have a good day

  22. Nick

    I just upgraded my DSM to 5.0-4458 Update 2 to close the Heartbleed issues and since then have found that when viewing Serviio on my Sony Bravia TV that the server drops out frequently, even when scrolling through file lists. When playing video it stops after a few minutes with an error that the server could not be contacted.

    I thought the update should be okay as I moved from the second latest DSM to latest and wouldn’t need to uninstall/reinstall Java or Serviio. Any ideas?

    1. Matt

      From the synology Java package page (

      “If you update DSM later, you will need to re-install this package or else UTF-8 and locale support will be broken by the update.”

      As a result of the above, I ALWAYS reinstall Java after a DSM update (no matter how minor) and have no issues with Serviio. It only takes about 30 seconds to stop Serviio, uninstall Java, reinstall Java and then start Serviio again, which is a lot less time than you’ll spend messing around if you find something doesn’t work later.

      1. Nick

        I uninstalled/reinstalled, and it actually seems a bit improved, but still not 100%. I also realised that when I upgraded to the latest DSM about a week ago (prior to Heartbleed) and reinstalled Serviio that it was set to downmix to stereo. Turning that setting off made a bigger improvement. I’m perplexed.

  23. Juan

    Looks like last DSM update (5.0-4482) or the latest Java 7 update just broke my Serviio package. It won’t start again. Tried everything I could in terms of uninstalling packages (Java, Serviio, etc.)… even tried installing the previous Java update but had zero luck. The log (available in the Synology Package center) is empty. Anthing else I could look into in order to troubleshoot?

    1. patters Post author

      Try stopping your Java applications (Serviio, CrashPlan). Reboot the NAS, remove Java, reboot, then reinstall Java. Should fix it.

      I think after the DSM upgrade the Java applications sort of hang when they start, and can become orphaned. So even though they can show as stopped in Package Center there’s actually a running Java process. If you uninstall Java at that point, rather than terminating the orphaned process it seems to hang around, and probably interferes with reinstalling Java.

      1. Juan

        Got it. The java update I downloaded never finished so the VM update just left me with an unusable one. Checking the log for the Java package showed me the .zip file was never properly unzipped.

        Thanks for the tip on Crashplan, btw. I only thought about Java when I remembered I had another dependency over there.

  24. patrick

    hi, on windows, changing the remote host in vmoptions won’t let me change the password via the console on synology Nas .. any hints on what’s going wrong? can i change the passwd via ssh?

  25. nagrabus

    Hi. I have instaled Serviio on my DS214play and I am testing it for two days. I streem mkv movies to PS3 system and I am happy that Serviio can transcode DST sound track to AC3 and suport for polish subtitles. Thats features are not available on official DLNA server from Synology NAS even if you have DS214play. But I have a question abaut hardware transcoding that DS214 play is suporting. Is it possible to use its hardware acceleration in Serviio for this model of NAS?

    1. patters Post author

      Using Synology’s published sources, a lot of detective work, and a truckload of patience, I have just finished building what I believe may be a working FFmpeg with hardware transcoding for DS214Play. I will need to log onto a NAS of that model via SSH in order to test it though, since I only have a DS111. If you can help please leave me a message on here.

      1. nagrabus

        Yes, I will help you, I will give you an account to my server and SSH access.

  26. Grant

    I’m trying to figure out what I broke on my Synology DS1513+ when I upgraded to DSM 5.0-4493 (from 4.something.)

    Servio 1.4.0-0024 stopped and won’t start.

    I upgraded the Java Manager (to 7.0.51-0026) and Java 1.6.0_39-0021 claims to be up to date. I tried to update it to V7 but the package center acts like it can’t find it and I can’t get it to install manually despite downloading it via firefox and moving it to the public folder of the NAS.

    What am I missing?


  27. john

    Hi !
    I have a DS414J and I follow you guide to update Java. This part seems fine.
    I dont see servvio in your apps .. any idea ?


      1. john

        Thank you for your very fast answer :)
        The installation works and i was able to add libraries and play divx/musics.
        It appear that my NAS cpu is too “light” to handle HD video (720p and 1080p) or 3D videos for obvious reasons. Some images appear but it’s too laggy to watch a movie in proper condition.

        I will add an Intel Nuke to do that part and will hide it behind the NAS :p

        Thank you very much again !

      2. patters Post author

        The alternative may be to buy a renderer device with better format support. For instance I use an ARMv5 powered DS111 (a CPU worse than an original iPhone from 2007!) with a Sony Bluray player.

  28. curu

    Hi, first thanks for this awesome program. I’m starting to use the Serviio Synology package with Xpenology on a HP Proliant N54L machine (on an ESXi VM). Its CPU is AMD Turion II Neo 2,2 ghz. Is there some changes I can made to improve transcoding abilities since maybe the package was not designed for this kind of CPU ?

  29. DeadManWalkn

    Device Synology NAS DS112
    DSM 5.0
    Installed Community Repository,
    installed Java 7.0
    installed Serviio version
    Serviio is running but cannot connect via mediabrowser link
    cannot connect computer console installation.
    I also tried to install serviidroid with no luck.

    How do I trouble ??

    1. sofazilia

      Were you able to connect to serviio?
      I’ve got the same config & same issue: serviio is running but i can’t connect the console neither the mediabrowser.

  30. robert

    I have a DS214play… funny name… as it doesn’t play anything (expect music). I have been working with their tech support and was also just told that the unit also doesn’t support AC3. When I use the desktop version of Serviio, the blu-ray can play all my files. My question… do I install this on my DS214play and will have the capabilities of the desktop version? I am trying to understand this whole DLNA thing. Before I purchased the unit, I assumed from their sales support conversation that it would do what I wanted (.mkv files on my blu ray). Many Thanks for any guidance you can offer!

      1. Robert

        Thanks! Detailed post of which most I do not understand. So.. the current Serviio package doesn’t take advantage of the hardware and that is what you are trying to figure out? I am not happy with Synology at the moment since I was very specific with them before I purchased this unit and many things seemed to be left out. My ASUS router works better for DLNA than their expensive NAS. I digress… I just wrote to B&H for an RMA but since it has been so long, I am guessing it will be denied. I am glad they are working with you as many others seem unhappy with this unit. I would offer to help but all this is way beyond my scope :)

    1. Matt

      Hang in there Robert, when Patters gets this working it will be well worth the wait. I’ve tried all the other DLNA streaming solutions on my DS412+ (Plex, Synology, etc) and found them all severely wanting in one way or another. Serviio on the other hand does everything I need it to and is very reliable.

      If you do manage to get a refund on your box then I’d highly recommend getting the DS412+ that I have and then you can install Patters’ existing Serviio package which works brilliantly. If you can’t get a refund I’d carry on with the desktop version of Serviio for now (not ideal having to power up the PC I know) and wait for the current issues Patters is having to get sorted, I’m sure they will eventually and I expect you will be very happy with the outcome.

    1. Ton

      I stopped using the OSX console. Now it refreshed my library again. Maybe it’s me, or maybe it’s the latest version of the OSX serviio-console.

  31. nagrabus

    I have installed DSM 5.1 Beta and my Serviio stoped working. I deinstaled it and try to instal again but instalator say to me that I have port 23424 locked by another service and I must to unlock this port. I dont know how to do that and why it says that port is locked…….
    Java is up to date.

      1. nagrabus

        Today Is not better. Restart was done. If you could spend for me 5 minutes and connect via ssh to see what the problem so I will be grateful.

  32. Taurec

    Hello, i have a DS415+
    Is there a Serviio-install-package available?
    The DLNA Server from Synology doesn’t work on my Panasonic
    I know at the DS415+ is a different CPU.
    It hope a package is in work :-)

  33. Castelli


    I’m trying to install Serviio on a DS214Play but when I tryu to install Java SE Embedded 6, 7 or 8 the following message appears :

    “Java binary not found. EULA could potentially cover legal aspects, because file hosted on Oracle’s server are protected by a session cookie requiring a Java script enabled browser”

    I’m using Windows vista and Goggle Chrome.

    Thank you for your help.

  34. Raphael

    Please can you tell me exactly the path to point on shared media. Consider I have 3 folders. One is music, photo and video.
    How can write it?

  35. Raphael

    Thanks for quick reply. I got installed and synced. But one thing missed. All the folder in the dlna device are empty. I can’t load anything. Can you kind suggest solution. Thanks in advance


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s