
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

Hello
I have been running serviio on my windows server, so I was happy to see a build for my nas drive. I have added your link to the package server, and many options appear, just not serviio.
I have a DS1515+ with DM5.2 update 2.
Thoughts/Help?
Hi, I managed to find out that the plugin path is not /volume1/public/serviio/plugins (as in your description), but /var/public/serviio/plugins. Unfortunately I cannot write to or chown to this folder (using Midnight Commander via Putty). This is as far as my Linux skills go, please help.. Thanks in advance!
This is caused by a messy method to find the public folder. I have corrected this in my work-in-progress package for Serviio 1.5 so it will be fixed.
Happy to see you are still on it :) – Hopefully with an release soon ;)
When do you think 1.5 will be released?
Hello, I have followed the instructions in order to install serviio on my DS 1813+ and I got to the point the I needed to install serviio from the Package Center but the serviio is not showing. What am I doing wrong? Any help will be greatly appreciate it.
Regards, Chris
I have the same issue on my DS1515+, see above.
There seems to be no x86-64 (64-bit) version for Synology machines in the repository. My assumption is that the above instructions will therefore not work for the following models: DS710+, DS411+, DS1010+, RS810(RP)+, DS411+II, DS1511+, RS2211+, DS2411+, DS712+, DS713+, DS412+, DS1512+, DS1812+, DS1513+, DS1813+, DS2413+, RS814(RP)+, RS2414(RP)+, DS415+, DS1515+, DS1815+, DS2415+, DS3611xs, RS3411xs, and the RS3411(RP)xs.
Maybe at some point an x86-64 version will be added to the repo. That would be nice for owners of these somewhat higher-end and/or more recent models from Synology.
Personally I can’t wait. :-)
This isn’t true. I have DS1512+ and running Serviio since day 1, i.e. drom DSM 3.5. Currently I have DSM 5.2-5592 Update 1 and Serviio 1.4.1.2-0026. All running smoothly. Serviio is my backup media server, as the primary one I use Plex.
My assumption cannot be correct then. Maybe the instructions do not work for the x86-64 Atom C2538 only? That would mean only the following models are excluded: DS415+, DS1515+, DS1815+, and DS2415+.
However, that does not cover the DS 1813+ of Chris above.
Hold tight, very near to releasing version 1.5.2.
:-)
Unable to load 1.4.1.2 on DS 211 running DSM 5.1. Loaded java 7 with headers in ‘public’ but have suffered multiple refusals to load Serviio from package page. Given up after 3 hours and placed it on PC but totally lost as to why the package will not load as it was running perfectly on DSM4 prior to upgrade some months ago.
I updated a few days ago from DSM4.1 ->DSM4.3 -> DSM5.0 to DSM5.1 and then reinstalled java8 and serviio. To get it installed i had to allow at the package center all publishers and don’t forget to set the DNS server to the local gateway this had been reset due to the upgrades.
I am still trying to get the web ui working from swoopx.
Shouldn’t it work for DS215j? It has an Armada 375 processor.
I tried to re-install Serviio on myDS 213J but it showed this error “The port 23424 configured for this package is used by another service or is reserved for system usage . Disable or change the conflicting service or contact the developer to change the configuration of the package “. I opened this port on firewall of nas and roter but doesn’t functioned
Hello,
I am trying to install a servioo on an old DSM3.1 DS207+ NAS. O the package info it says it is available for my arhitecture but under download I cannot find a proper spk file or whateever i need. Am I lucky enough that I will be able to install the serviio server on my nas?
I don’t think there’s a working Java runtime from Oracle for that model. The problem was a different binary API (OABI versus EABI if I remember correctly). I think I added the compatibility to the package just in case it worked. So you could test this:
http://packages.pcloadletter.co.uk/downloads/java1.7.0_75-merged-0032.spk
ok… and the serviio package?
It could be built, but only if you can get Java working.
Excuse me Patters but now for Ds213j (ARMv7) which kind of java SE Embedded I have to install for proper operation of Serviio? Still the old version 7 of 2014 or the last new 8?
It should work fine on Java 8. Generally I’d recommend 8 these days because it’s getting security updates. Java 7 has been transitioned to the archive downloads page by Oracle. I took Java 6 down from the repo because that’s a high security risk now.
Thanks for reply. I’m waiting for vers. 1.5.2. for NAS. Good work
OK. i wil try the package you sent.
I followed a older link (https://pcloadletter.co.uk/2011/02/07/serviio-on-synology-nas-with-arm-cpu/) and manually installed a java 8. I think i will have to reinstall my nas because i did a lot of installation with ipkg. I will let you know if install of java worked.
PA:
this link does not exist:
http://packages.pcloadletter.co.uk/downloads/java1.7.0_75-merged-0032.spk
only with .033 at the end. will try that or should I go with java 1.8 directly?
Sorry I just updated the package. Either one, doesn’t really matter.
after copping the package from oracle and uploading it to public folder ythe installation said pacake installed and i have this unde cli env:
PATH=/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin
LANG=en_US.utf8
SHELL=/bin/ash
CLASSPATH=.:/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/lib
JAVA_HOME=/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre
Think it worked :)
now the syno package.. where do I get it from? is there any special install instructions?
and if you type:
java -version
?
hmmm … this is weird. I do not undestand. the file is there…
NAS> java -version
-ash: java: not found
NAS> echo $ JAVA_HOME
$ JAVA_HOME
NAS> echo $JAVA_HOME
/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre
NAS> which java
/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java
NAS> ipkg install strace
Installing strace (4.5.20-1) to root…
Downloading http://ipkg.nslu2-linux.org/feeds/optware/syno-x07/cross/unstable/st race_4.5.20-1_arm.ipk
Configuring strace
Successfully terminated.
NAS> strace java -version
execve(“/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java”, [“java”, “-version”], [/* 17 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fstat64(3, {st_mode=S_IFCHR|0622, st_rdev=makedev(136, 0), …}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
_llseek(3, 0, 0xbeb8f924, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, “strace: exec: No such file or di”…, 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x40016000, 4096) = 0
exit_group(1) = ?
NAS> strace java
execve(“/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java”, [“java”], [/* 17 vars */]) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fstat64(3, {st_mode=S_IFCHR|0622, st_rdev=makedev(136, 0), …}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40016000
_llseek(3, 0, 0xbe89f924, SEEK_CUR) = -1 ESPIPE (Illegal seek)
write(3, “strace: exec: No such file or di”…, 40strace: exec: No such file or directory
) = 40
close(3) = 0
munmap(0x40016000, 4096) = 0
exit_group(1) = ?
this is weird also:
NAS> ldd /volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java
$ not a dynamic executable
Looks like it won’t work then. Your system uses OABI whereas most ARM systems are EABI, and that’s what Java has been built for:
http://wiki.embeddedarm.com/wiki/EABI_vs_OABI
also tell this when running file on the executable:
NAS> file /volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java
/volume1/@appstore/java8/ejdk1.8.0_51/linux_arm_sflt/jre/bin/java: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, BuildID[sha1]=8efe506cd8388a1b03e72608b0242efe907fcf20, stripped
Hi,
I’ve installed java 8 on my DS213Air but each time i try to install serviio, it fails (“serviio installation failure”). What did I miss?
Reguards
Can you provide logs from /var/log/messages ? Or complete failure message?
You may be able to get a more descriptive error by attempting to install again, then immediately afterwards looking at the end of the main system log:
tail -n 15 /var/log/messagesundesrtood the OABI issue now.
Can I just buid a java on my machinw with OABI?
Java is not open source so not really. You could try to compile OpenJDK but from what I understand this is likely to be difficult, and the performance is a long way behind the Oracle Java.
Have a problem with this, serviio running on ds115j, java working, samsung tv seeing serviio on synology, but i cant acces the serviio server with the serviio console :( please help me i have anithing tried but it not helped :(
HI,
top work i have installed Java 8 with out any Problems
but i dont find any serviio pack in dsm pacj center
so i can not install it,
maybe i make something wrong can you give me any advice?
ok i get all i need its run fantastic, i can with serviio web ui (runs from ds115j) everything change, but is have a problem i can’t give local path to serviios library, while the serviio webui dosn’t see any of my folder it can see only this:
http://postimg.org/image/63lpr1pnf/
please help with this
Hi, any news on releasing version 1.5.2?
Yes, we are all looking forward to it.
I am getting a ‘failed’ to install when trying to install serviio on my DS214play. I installed Java 8 (which is what I was running before I restored my NAS), then tried to install serviio. Got that above error. Thinking I need to install Media Server to create the default folders (which I was hoping to avoid for file management reasons), I did that, and tried again. Then I tried video station. Same result. I am running”DSM 5.2-5592 Update 3″ Suggestion? Thanks!
try before install this :
packages –> options –> general tab –> trusted level –> whichever developer –> then install
sorry i’m hungarian and use my synology with hungarian language, and i translated but you will find the problem there :)
I had “synology and trusted publishes” selected. I selected “any publisher”. That worked. Thanks! Can you answer, is it possible to use serviio without enabling and installing the default video/photo/music folders? It also gives me a home and homes folder on my volume. Is that correct? Thanks again!!
I didn’t use default folder, i created 3 folder(musics, photo, videos) for me (gave permission for serviio) in my documents directory, and with ad path link gave i to serviio console :) But my synology is not the fastest (DS115J) so i shared only the video folder (over 5000 files), the music folder with over 25000 files was to big fog my nas (the processor was over 90% always now is it under 30% [the java uses the ram whit 100M] :)
hi
i run a ds415+ wit Intel Atom C2538 and 2GB RAM. DSM 5.2-5592.
To install Java was no big Problem, ad PC Load as Package Source also.
My Problem is that dont find servio in the Package Center to download it.
There is only a Serviio Console. Please give me an wink where are my fault is.
Thx Matze
Hi Kazad, which version of DSM are you using?
You need to add the right packetsource (http://packages.pcloadletter.co.uk) and set the trustlevel to every publisher in settings.
Hi Arjan,
i use DSM Version 5.2 latest Patch.
packetsource iss added and trustlevel iss also set.
Or must trustlevel on any second place changed out of Packet Center?
Thx For Help
Hi Kazad,
It’s not clear for me what you mean by ” trustlevel on any second place changed out of Packet Center”.
And you are looking in the right section [community]
HI,
i only see
Bliss
CraftBukkit
CrashPlan
ChrashPln Pro
CrashPlan Pro Client
Java SE Embedded 7
Java SE Embedded 8
Mincraft
OpenRemote
in the community Sektion no Serviio
when i open the Link in my Browser is see seviio there.
but i can not download it to install it manually
Greetz Kaz
Hi
ist it possible that there in the Moment no x86 Packets there?
Greet Kaz
Hi Kazad,
See above.
It seems that the instructions do not work for the x86-64 Atom C2538. That would mean the following models are excluded: DS415+, DS1515+, DS1815+, and DS2415+.
This includes your D415+…
However: Patters replied that we should hold tight for version 1.5.2. That sounds hopeful to me, because he seems to imply that 1.5.2 will support these models.
That would be great. :-)
Hi Bas,
thx for this Info.
So i will wait and hope for Version 1.5.2 maybe we have luck.
Thx and Greetz Kazad
I have a problem to connect remote console from my Mac. I’ve downloaded the newest Serviio-Console.app, edited Info.plist and the end of the file looks like this
…
Xms
-Xms5M
serviio.remoteHost
192.168.1.13
JVMArguments
but still no joy. Console always tries to connect to the local server, and when it is not running then cannot connect to server pop-up window appears. Seems like remoteHost key is ignored.
End op Info.plist:
Xms
-Xms5M
serviio.remoteHost
192.168.10.103
JVMArguments
Once more try with formatting:
<dict>
<key>Xms</key>
<string>-Xms5M</string>
</dict>
<key>serviio.remoteHost</key>
<string>192.168.1.13</string>
<key>JVMArguments</key>
<array>
</array>
</dict>
</plist>
I have been having this same issues. The first time around I did this I had no problems. This time… I can get it serviio not to do anything, then it said it wasn’t running (it is), and then it said the application was corrupt. I am missing something simple I bet. You get this figured out?
Am I wrong or the Info.plist file on Serviio-console version 1.5 looks totally different from version 1.4?
I tried to edit that file, but got my Application corrupted nad it won’t start even if i undo the edit. No way to fix that other than re-installing, but any attempt to input my NAS ip in the file ends with bad results. (I successfully used Serviio 1.4 on OSX for a long time).
Am I doing something wrong or do I have to do something different in this version?
Thanks
Snarf Snarf. Anyone? I would like to get this step-up before I proceed with using my NAS as storage (which is its main purpose actually). Now even if I follow the command line for removal of serviio, when I reinstall it still shows upgrade. I must have really goofed something up. Cheers!
Hi,
I have bought a DS215j recently. I have successfully installed Java 8 on the NAS (I saw everything in the package log and the “java -version” command responds well). I however don’t see serviio in the package center.
Need to wait for a new serviio version in order to see it?
Rgds,
Yes, coming soon hopefully. Unfortunately CrashPlan has sidetracked me.
hi man, still developing??? a lot of time has flowed…. а воз и ныне там…
Sorry – I recently changed job and before that was on holiday so I’ve been busy. The small amount of time I could dedicate to syno projects was unfortunately taken by CrashPlan because Code42 keep breaking it with their updates. I have Serviio 1.5.2 pretty much ready, but I think I’ll release as a manual download first for testing before I push it on the repo.
Got a problem where libfontconfig hangs when burning subtitles – very similar to this: http://devel.aegisub.org/ticket/713 except I cannot seem to find a way to get it to work.
After many months of experiments with different libraries and compilation methods I finally have it solved! It needed libfreetype to be built without external zlib support (to force it to use its own internal zlib functions). Even though the fonts were not compressed, fontconfig seemed to hang as it tried to load the zlib support before opening font files – presumably because the DSM-included libfreetype was compiled in this same way. My problem is of course that although I have the source code for DSM, I don’t know how Synology chose to compile it. I hope to release later today finally, and I think Serviio will be the first media server with hardware transcoding support (apart from vendor supplied ones like VideoStation and the ASUS equivalent).
What had been so frustrating is that this worked fine when I had compiled FFmpeg 2.1 for Serviio 1.3. It just goes to show how difficult this has become when there are so many dependent libraries. The smallest difference with even the order they are compiled in can result in a broken binary. Version changes can mess things up completely (getting gnutls built is a case in point), and often version changes require tweaks to the compilation method. Then there are 6 CPU architectures to cross-compile for armhfneon, armv5tel, armv7l, i686, i686evansport, ppc. As you can see, it’s quite a large project. Just look at this dependency chain!
DS214Play> ldd /var/packages/Serviio/target/bin/ffmpeg
linux-gate.so.1 => (0xffffe000)
libavdevice.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavdevice.so.55 (0xb7723000)
libavfilter.so.3 => /volume1/@appstore/Serviio/bin/../lib/libavfilter.so.3 (0xb7644000)
libavformat.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavformat.so.55 (0xb74c4000)
libavcodec.so.55 => /volume1/@appstore/Serviio/bin/../lib/libavcodec.so.55 (0xb6742000)
libpostproc.so.52 => /volume1/@appstore/Serviio/bin/../lib/libpostproc.so.52 (0xb6712000)
libswresample.so.0 => /volume1/@appstore/Serviio/bin/../lib/libswresample.so.0 (0xb66fa000)
libswscale.so.2 => /volume1/@appstore/Serviio/bin/../lib/libswscale.so.2 (0xb6690000)
libavutil.so.52 => /volume1/@appstore/Serviio/bin/../lib/libavutil.so.52 (0xb664e000)
libffmpeg_plugin.so => /lib/libffmpeg_plugin.so (0xb6639000)
libm.so.6 => /lib/libm.so.6 (0xb660f000)
libjson-c.so.2 => /lib/libjson-c.so.2 (0xb6604000)
libpthread.so.0 => /lib/libpthread.so.0 (0xb65e9000)
libc.so.6 => /lib/libc.so.6 (0xb6471000)
libismd_core.so => /lib/libismd_core.so (0xb6464000)
libismd_viddec.so => /lib/libismd_viddec.so (0xb645b000)
librt.so.1 => /lib/librt.so.1 (0xb6452000)
libass.so.5 => /volume1/@appstore/Serviio/bin/../lib/libass.so.5 (0xb6426000)
librtmp.so.1 => /volume1/@appstore/Serviio/bin/../lib/librtmp.so.1 (0xb640a000)
libz.so.1 => /lib/libz.so.1 (0xb63f4000)
libgnutls.so.28 => /volume1/@appstore/Serviio/bin/../lib/libgnutls.so.28 (0xb62cd000)
libx264.so.119 => /volume1/@appstore/Serviio/bin/../lib/libx264.so.119 (0xb617a000)
libspeex.so.1 => /volume1/@appstore/Serviio/bin/../lib/libspeex.so.1 (0xb615a000)
libmp3lame.so.0 => /lib/libmp3lame.so.0 (0xb60e8000)
libdl.so.2 => /lib/libdl.so.2 (0xb60e3000)
libxml2.so.2 => /lib/libxml2.so.2 (0xb5f8c000)
libismd_demux.so => /lib/libismd_demux.so (0xb5f81000)
libismd_vidrend.so => /lib/libismd_vidrend.so (0xb5f79000)
libismd_clock.so => /lib/libismd_clock.so (0xb5f77000)
libismd_audio.so => /lib/libismd_audio.so (0xb5f68000)
libismd_videnc.so => /lib/libismd_videnc.so (0xb5f64000)
libismd_vidpproc.so => /lib/libismd_vidpproc.so (0xb5f5d000)
libismdmessage.so => /lib/libismdmessage.so (0xb5f5a000)
libsven.so => /lib/libsven.so (0xb5e1a000)
libpal.so => /lib/libpal.so (0xb5e18000)
libosal.so => /lib/libosal.so (0xb5e10000)
libplatform_config.so => /lib/libplatform_config.so (0xb5e0d000)
libsystem_utils.so => /lib/libsystem_utils.so (0xb5e0a000)
libismd_clock_recovery.so => /lib/libismd_clock_recovery.so (0xb5e07000)
/lib/ld-linux.so.2 (0xb772f000)
libfribidi.so.0 => /volume1/@appstore/Serviio/bin/../lib/libfribidi.so.0 (0xb5dee000)
libfontconfig.so.1 => /volume1/@appstore/Serviio/bin/../lib/libfontconfig.so.1 (0xb5dab000)
libexpat.so.1 => /lib/libexpat.so.1 (0xb5d83000)
libfreetype.so.6 => /lib/libfreetype.so.6 (0xb5ccf000)
libhogweed.so.2 => /volume1/@appstore/Serviio/bin/../lib/libhogweed.so.2 (0xb5ca2000)
libnettle.so.4 => /volume1/@appstore/Serviio/bin/../lib/libnettle.so.4 (0xb5c6a000)
libgmp.so.10 => /lib/libgmp.so.10 (0xb5bfa000)
liblzma.so.5 => /lib/liblzma.so.5 (0xb5bd4000)
libbz2.so.1.0 => /lib/libbz2.so.1.0 (0xb5bc3000)
libpng16.so.16 => /lib/libpng16.so.16 (0xb5b8b000)
DS214Play>
Whoa! Amazing Patters! Great work! What a ridiculous amount of work.
Full story here:
http://forum.serviio.org/viewtopic.php?f=14&t=16921&p=104913#p104913
Dear patters, may we have an update on the timeframe of the release of Serviio 1.5.2? Regards
I don’t see the Serviio package for my DS215+ (Annapurna Labs Alpine AL-212 CPU)? Does a build not exist for this processor?
Thanks
Maybe it’s highest time to make NORMAL working installer (and app after) than freaky working-or-rather-not-and-nobody-knows-why-not ….thing ?
That’s the nature of Synology packages. That’s why they’re so damn difficult to make. A quote in the wrong place, the package will fail and you get no clue why because Package Center will not output the shell error into /var/log/messages.
Hello,
I own a DS415+ and I was following your installation instructions but got stucked after installing Java.
As I can see from the many comments in this threat, i have the same problems as other. The Serviio packages are not visible/installabe.
I would really love to run serviio on my NAS, any time frame for the new packages?
Thanks a lot!
Still wating again and again for serviio 1.5.2, serviio 1.6 in developpement and probably released before 1.5.2 for synology and now serviio 1.4.2 is no more compatible with the new DSM 6.0 beta
Look to be the end on serviio on Synology…
I now only use Plex and will try the new Video Station :-(
I reckon, I will switch, too now. Poor Patters does all this crap himself and won’t even get any money for it. He should actually get money for from Zip.
When using Plex does your Diskstation still hinbernate Alaska99?
I’ll fix it. I use the product don’t forget – so if it breaks on DSM 6.0 I’ll be fixing it for myself too.
Hi! I have a DS411J. 2*24 hours of my trying of installation Serviio make me crazy…
1) Java installed correctly only after finding needed gz archive to place into a public folder. Archive file on the java site is a different version than in repository
2) Installation process of Serviio, always can not start with error about unchecked home folder, but it was checked. I find, that in the installation script, the work of home folder checked with adding a new test user (add userhometest Testing123), that does not created during this script. I have create this user by hand, after that the installation process finished, but new error code was displayed: Lastest SynoErr=[user_set.c:870] And Installed packet exists in my cener of packets, but unable to start. During start it create a new user “serviio”-serviio daemon user. The status changes to a starting, then to stopped again. Nothing understand – how it work, and what to do?
P.S. The version of DS is 6.0 M.b. this is a reason of all faults?
can you port serviio to arm samung c series tv?
The key -Dserviio.remoteHost=192.168.1.100 is not working on OSX, the console should connect to the Synology NAS. OSX says “You can’t open the application “Servo-Console.app” because it may be damaged or incomplete”. The syntax for the previous version was different but it worked for that version. I tried the old syntax on 1.5.2 as well, then I don’t get the error, but instead it says “cannot connect to x.x.x.x, exiting”. So what is the correct syntax? Thanks!
The formatting got lost in the previous reply for the info.plist on OSX and Synology NAS. for the correct syntax, the line
-Dserviio.remoteHost=X.X.X.X should be a string, not a key. Put it inside the array variable below the JVMOptions key.
See this link: http://serviio.org/component/content/article?id=21#q3
Thanks. I’ve corrected that now on the page. It was WordPress chomping the tags off that made that even more confusing.
Why can’t I still download on my ds215j, should be supported – right?
Sorry, fixed now. armada375, avoton, alpine, and alpine4k have now been added. The last two are untested for FFmpeg. Let me know if you can run /var/packages/Serviio/target/bin/ffmpeg if you own one of the alpine systems.
Thanks for the new version! Update 2 1.5.2 works as expected ;-)
Hi,
I’ve just upgraded my serviio install to 1.5.2 and I’m experiencing the linked error when it tries to run:
I’m using a DS213+, which has the following CPU:
Freescale QorIQ P1022 ppc
Previous versions have worked without error, I’ve attempted an uninstall and re-install but it’s not resolved the problem.
Any ideas?
Cheers
Can you expand the window so that I can see the actual error (it’s off the right hand edge of that screenshot). Alternatively it’s in the file /var/packages/Serviio/target/log/serviio.log
For some reason Oracle have discontinued Java 8 on PowerPC so it’s stuck on an old version Java 8u6. The other CPUs have Java 8u65 now so this may be the problem. If that is the case then Serviio 1.5.2 will not work on PowerPC.
Any luck retrieving the actual error? If it’s a fundamental incompatibility with Java 8u6 I need to know so I can take down the PowerPC Serviio package completely. Thanks.
I am now using 1.5.2 on my DS-215J (Great work from You). But I have problem to share media (Movie,Photo,Music) from path in “/Volume1/…”.
From “/Volume2/…” is sharing with database to MediaBrowser and LG-TV – OK.
From “/Volume1/… i see in MediaBrowser or TV – nothing.
Any ideas?
Hello,
disaster here , java keep crashing , unable to read any video, deleting and recreating library did not help , not able to reinstall previous 1.4.1.2 which worked like a charm since last year (but why did i upgrade ??)
please help , i would like to be able to reinstall old version but i need this file serviio1.4-native-i686.tgz which no longer exist on the website
i use serviio on every day that god does and i lost it :(
Thanks & Regards,
XT
I run on Intel and Serviio has never once crashed its Java process. What is your NAS model, and what is your Java version?
hmmm hmmmm /me embarassed , it’s xpenology installed on physical proliant N54L
after full purged and reinstall , version 1.5.2 remote console is fine , it is now indexing but all video are ignored .. log says that format is unknown , only music can be added
can you help so i can reinstall 1.4.1.2 ? i use serviio every day , lost is is not an option :(
Realistically I can’t support things not working on a hacked OS running on unintended hardware. If Java Embedded is unstable then maybe try full Java JRE using Synology Java Manager. Try running the FFmpeg binary in isolation to see if that’s the issue. /var/packages/Serviio/target/bin/ffmpeg
Hello,
disaster here :-(
java keep crashing – unable to read any video
remote console worked only one time of 10 attempts
deleting and recreating library did not help – not able to reinstall previous 1.4.1.2 which worked like a charm since last year (but why did i upgrade ??)
please help , i would like to be able to reinstall old version but i need this file serviio1.4-native-i686.tgz which no longer exist on the webside
Thanks & Regards,
XT
i am in the same case …
no more issue with Java now , problem is this all the time even if i turned off everything with metadata from the console
2015-11-14 19:37:45,737 WARN [MetadataExtractionCoordinator] Skipping processing metadata for an unsupported file (/volume1/downloads/Grandeurs nature_France 2_2014_04_13_16_25.mp4). Message: Unknown video file type.
what can we try with /var/packages/Serviio/target/bin/ffmpeg ?
Thanks
XT
Try connecting via SSH and running ffmpeg -i on your sample media file using the ffmpeg in the Serviio folder. Does it correctly report the media info? Which DSM are you running? Not DSM 6.0 beta I hope.
Thanks patters on replying me
i always get “illegal instruction” whater the video i use
Syno> /var/packages/Serviio/target/bin/ffmpeg -i /volume1/downloads/Grandeurs\ n
ature_France\ 2_2014_04_13_16_25.mp4
ffmpeg version 2.7.1-compiled_by_patters_for_Serviio Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.6.3 (crosstool-NG 1.19.0)
configuration: –arch=x86 –cpu=atom –enable-cross-compile –cross-prefix=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- –target-os=linux –prefix=/usr/local/i686-pc-linux-gnu –enable-shared –disable-static –enable-pic –disable-ffplay –disable-ffserver –disable-debug –enable-pthreads –enable-libmp3lame –enable-librtmp –enable-libass –enable-libspeex –enable-gpl –enable-libx264 –enable-gnutls –pkg-config=pkg-config –extra-version=compiled_by_patters_for_Serviio
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
Illegal instruction
Syno>
i run DSM 5.2-5592 Update 2 and your java 8
looks like ffmeg does not act as expected right ?
Try reinstalling now – I’ve recompiled ffmpeg for Intel, so it should be fixed now.
Have a DS3615xs with intel CPU
I have the same problem! since update
HomeBase> /var/packages/Serviio/target/bin/ffmpeg -i /volume1/Film/Test/SampleVideo_1080x720_1mb.mp4
ffmpeg version 2.7.1-compiled_by_patters_for_Serviio Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.6.3 (crosstool-NG 1.19.0)
configuration: –arch=x86 –cpu=atom –enable-cross-compile –cross-prefix=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- — target-os=linux –prefix=/usr/local/i686-pc-linux-gnu –enable-shared –disable-static –enable-pic –disable-ffplay –disable-ffse rver –disable-debug –enable-pthreads –enable-libmp3lame –enable-librtmp –enable-libass –enable-libspeex –enable-gpl –enable -libx264 –enable-gnutls –pkg-config=pkg-config –extra-version=compiled_by_patters_for_Serviio
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
Illegal instruction
Which NAS model please? Might be an i686/x86_64 issue.
Have a DS3615xs with intel CPU
Ok, looks like I need to build a 64bit Intel version.
Actually I think it’s probably because I used “-march atom” when building. I’ll recompile ffmpeg.
but the older version was running… so can u upload the old version again?
or only the serviio1.4-native-i686.tgz?
Try reinstalling now – I’ve recompiled ffmpeg for i686 now. Should stop the illegal instruction issue.
Glad i am not the only one (i knew i could not be the only one) , i was able to replicate the issue on my other instances of xpenology
yes please patters , either fix new one or upload old version , thanks !
thanks Sir ! you did it , it’s working fine now , very well much appreciated
well done and keep the good work ;)
Hello. 1.52 Serviio on the Synology NAS does not find videos in folders. In the same folder it finds the audio and images without problems. on previous version everything was OK. Please help. (DSM 5.0. Synology DS3612xs)
Is it possible to return to the previous version? It worked perfectly
Yesterday I’ve returned to the 1.4.1.2 version manually. You can google for old versions of serviio. I’ve used serviio-1.4.1.2-linux.tar.gz, however, for preserving libraries a bit of manual work through ssh was necessary. Therefore, serviio-1.4.1.2.spk whould be much appreciated. Patters, can you provide it?
How do u make it?
“warn metadataextractioncoordinator skipping processing metadata for an unsupported file”
it says log in on any video. Accordingly, it adds nothing. how to fix it? Earlier everything was OK. After the update it was so. Settings different changed, does not help
Uninstall and reinstall – I’ve fixed ffmpeg.
Sorry, but everything remained as it was. I reinstalled, but to no avail. I’m not an official Synology so to speak, maybe because of this? Is it possible in some way to revert to a previous version?
don’t know will help or not, but I do know that I have an Intel Atom processor.
After your server all the rest is just awful. Your server was used every day. Without it, very uncomfortable
I found in the log says “error FFMPEG NOT FOUND the server will not work correctly”
Where else can step-by-step how to fix it? Preferably from connecting to ssh, I have never done that. Thank you
If you log in by SSH, what happens if you run:
/var/packages/Serviio/target/bin/ffmpegI have connected to synology via ssh using putty, enter my username and password the connection is successful, but what to do next I do not understand, I have no idea how to run ffmpeg from there. You can fully write what commands to enter there to run it? I am very sorry for the inconvenience
Sorry, i log in as root, then
DiskStation> /var/packages/Serviio/target/bin/ffmpeg
/var/packages/Serviio/target/bin/ffmpeg: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory
That file libgmp.so.10 should be included in DSM.
Can you run (also by SSH as root):
ls /lib/libgmp*DiskStation> ls /lib/libgmp*
ls: /lib/libgmp*: No such file or directory
am I doing something wrong?
Hmmm. Can you try:
ls /lib64/libgmp*DiskStation> ls /lib64/libgmp*
/lib64/libgmp.so /lib64/libgmp.so.10 /lib64/libgmp.so.10.0.1
This time everything seems as it should )
Looks like we need a build of FFmpeg for a seventh CPU architecture – x86_64. I’ll make that now. It was going to be needed for DSM 6.0 anyway because they Synology is going to switch most of the Intel systems to use 64bit Linux. I think Evansport is the only Atom that’s stuck on 32bit.
thanks, I’ll wait
Ok, can you try this:
cd /volume1/@tmp
mkdir test
cd test
wget http://packages.pcloadletter.co.uk/downloads/serviio1.5-native-x64.tar.xz
tar xvJf serviio1.5-native-x64.tar.xz
./ffmpeg
If that works then I’ll fix up the package to include this version for x64 systems.
I have now installed the current version of serviio, delete it? Or just this once to prescribe. without removing anything?
Leave it for now.
nothing was removed left as is. Wrote all about you, in the end again that something was wrong
DiskStation> cd /volume1/@tmp
DiskStation> mkdir test
DiskStation> cd test
DiskStation> wget http://packages.pcloadletter.co.uk/downloads/serviio1.5-native
-x64.tar.xz
–23:03:18– http://packages.pcloadletter.co.uk/downloads/serviio1.5-native-x64.tar.xz
=> `serviio1.5-native-x64.tar.xz’
Resolving packages.pcloadletter.co.uk… 82.147.22.211
Connecting to packages.pcloadletter.co.uk|82.147.22.211|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 6,851,408 (6.5M) [application/x-tar]
100%[====================================>] 6,851,408 417.67K/s ETA 00:00
23:03:29 (649.06 KB/s) – `serviio1.5-native-x64.tar.xz’ saved [6851408/6851408]
DiskStation> tar xvJf serviio1.5-native-x64.tar.xz
fc-cache
ffmpeg
libass.so.5
libavcodec.so.56
libavdevice.so.56
libavfilter.so.5
libavformat.so.56
libavutil.so.54
libfontconfig.so.1
libfribidi.so.0
libgnutls.so.28
libhogweed.so.2
libnettle.so.4
libpostproc.so.53
librtmp.so.1
libspeex.so.1
libswresample.so.1
libswscale.so.3
libx264.so.148
DiskStation> ./ffmpeg
./ffmpeg: error while loading shared libraries: libmp3lame.so.0: cannot open shared object file: No such file or directory
Ok, so that would seem imply that your DSM on your system is using an unpredictable mix of 32bit and 64bit libraries.
Try this:
cd /var/packages/Serviio/target/lib
wget http://packages.pcloadletter.co.uk/downloads/libgmp.so.10
chmod +x libgmp.so.10
cd ../bin
./ffmpeg
serviio was stopped, when I wrote this
DiskStation> cd /var/packages/Serviio/target/lib
DiskStation> wget http://packages.pcloadletter.co.uk/downloads/libgmp.so.10
–09:10:44– http://packages.pcloadletter.co.uk/downloads/libgmp.so.10
=> `libgmp.so.10′
Resolving packages.pcloadletter.co.uk… 82.147.22.211
Connecting to packages.pcloadletter.co.uk|82.147.22.211|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 497,552 (486K) [application/octet-stream]
100%[====================================>] 497,552 630.34K/s
09:10:45 (628.34 KB/s) – `libgmp.so.10′ saved [497552/497552]
DiskStation> chmod +x libgmp.so.10
DiskStation> cd ../bin
DiskStation> ./ffmpeg
ffmpeg version 2.7.1-compiled_by_patters_for_Serviio Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.6.3 (crosstool-NG 1.19.0)
configuration: –arch=x86 –enable-cross-compile –cross-prefix=/usr/local/i686-pc-linux-gnu/bin/i686-pc-linux-gnu- –target-os=linux –prefix=/usr/local/i686-pc-linux-gnu –enable-shared –disable-static –enable-pic –disable-ffplay –disable-ffserver –disable-debug –enable-pthreads –enable-libmp3lame –enable-librtmp –enable-libass –enable-libspeex –enable-gpl –enable-libx264 –enable-gnutls –pkg-config=pkg-config –extra-version=compiled_by_patters_for_Serviio
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]… {[outfile options] outfile}…
Use -h to get full help or, even better, run ‘man ffmpeg’
DiskStation>
Works! Thank you very much!! I will leave it as is now and update more and change nothing will. Thanks again
Interesting. And you’re quite sure that you wouldn’t have done anything strange to your Synology that might have resulted in that file getting accidentally deleted before?
By the way the new version 0028 will work on your system. I added a specific workaround for that libgmp issue.
Thank you. You can update? And the settings after this will or to add a new need?
The package update will preserve your library and your settings.
Updated, everything is OK. Thanks
Hello, I can not upgrade to version 1.6. Writes busy port 23423. To version 0028 updated. But it works and everything is as should be, I think just leave it as is
Sure, I just updated serviio. Well I’m just lucky in my life greatly)
Thanks patters! Updating to the new version worked straight away for me. I am now experiencing hibernation issues. I have to further look into that. Does your Diskstation still hibernate with Serviio 1.5.2 running?
I never managed to get the Syno to hibernate properly with Serviio running ever. I think the logging generally was the issue, but these days I run Surveillance Station so my drives are always active. For me it’s no longer a concern. If you dig up on the Serviio forum, or perhaps on the comments on this page I think someone did find a solution by symlinking the log folder to a RAM disk.
There is some way that you can ask the Syno to log which process woke the drives up so you can determine the issue in more detail. Be sure to post back here with any breakthroughs so I can add it to the package or the documentation. I currently lack the time to investigate this particular issue. Serviio 1.5 should be better behaved since it no longer periodically scans folders for content, instead it uses Java 8’s native filesystem watcher to detect changes.
If I find a practical solution, I will report back for sure. For the time being, I just turn Serviio on when I need it.
Fantastic work! Much appreciated :)
Yea its work.
U make my day!!. Thank you so much!!
DS213J, both versions 7 and 8 embedded Java installed ok, still getting error when trying to install serviio that java_home is not configured. Log file appears to show configuration correct.
How should I progress this issue to get serviio working.
Finally bit the bullet and upgraded to Java 8 and Serviio 1.5.2 on my DS412+. All worked like a dream and Serviio now seems more stable and less resource hungry when streaming.
Thanks for all your hard work patters!
omg, man , it like a hell ((( i dont understand anything …
install java8 on my ds215
install servio
and what? no one device see servio on DLNA . how to configure it ?
console for windows 10 dont work – dont start at all. when i install full package with server on windows – i dont understand what i configure.
and what password i need to enter on myipNAS:23424/mediabrowser ???
can you write step by step instruction for idiots ?
You need to get Serviio Console working before you can use MediaBrowser. I’ve never seen those errors you posted before though. Which model do you have? There is no model called DS215, so it’s either a DS215+ or DS215j.
see a lot of errors in log serviio on nas –
https://yadi.sk/i/7TVi3E2Ekc2FL