
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 1.2.1 (release notes here). 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 models, but ARMv5 and QorIQ are confirmed to be too slow. I was able to compile FFmpeg 1.1.1 for all four supported architectures with libass support (and dependent libraries) while using the libs included within DSM as far as possible. The package downloads the free DejaVu font family from SourceForge during installation, since DSM does not include any fonts. If you absolutely need subs for a particular film, you could start playback 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.
As with version 1.1 of the package, there is no Web UI included so I recommend that you manage Serviio using Serviio 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.
Instructions
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
http://packages.pcloadletter.co.uk
- Install either one of my Java SE for Embedded Synology packages (Java 6 or Java 7). Only Marvell Kirkwood, Marvell Armada 370, Intel, and Freescale QorIQ PowerPC CPUs are supported, 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):
<key>serviio.remoteHost</key>
<string>192.168.1.100</string>
..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:
-Dserviio.remoteHost=192.168.1.100
On a Linux client, add this same parameter to the JAVA_OPTS in Serviio/bin/serviio-console.sh
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.
Notes
- 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 (0.6.2 to 1.0 is fine – settings are retained but the media database is rebuilt automatically, which can take a while depending on its size).
- 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:
/volume1/@appstore/Serviio/config/profiles.xml,Serviio-profiles
/volume1/@appstore/Serviio/config/log4j.xml,Serviio-logging
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/serviio.sh (changing the location to /volume1/@appstore/Serviio/bin/ffmpeg-wrapper.sh).
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.
installer.sh
#!/bin/sh
#--------SERVIIO installer script
#--------package maintained at pcloadletter.co.uk
DOWNLOAD_PATH="http://download.serviio.org/releases"
DOWNLOAD_FILE="serviio-1.2.1-linux.tar.gz"
EXTRACTED_FOLDER="serviio-1.2.1"
DOWNLOAD_URL="${DOWNLOAD_PATH}/${DOWNLOAD_FILE}"
DAEMON_USER="`echo ${SYNOPKG_PKGNAME} | awk {'print tolower($_)'}`"
DAEMON_PASS="`openssl rand 12 -base64 2>nul`"
DAEMON_ID="${SYNOPKG_PKGNAME} daemon user"
SYNO_CPU_ARCH="`uname -m`"
NATIVE_BINS_URL="http://packages.pcloadletter.co.uk/downloads/serviio1.2.1-native-${SYNO_CPU_ARCH}.tgz"
NATIVE_BINS_FILE="`echo ${NATIVE_BINS_URL} | sed -r "s%^.*/(.*)%\1%"`"
FONTS_URL="http://sourceforge.net/projects/dejavu/files/dejavu/2.33/dejavu-fonts-ttf-2.33.tar.bz2"
FONTS_FILE="`echo ${FONTS_URL} | sed -r "s%^.*/(.*)%\1%"`"
INSTALL_FILES="${DOWNLOAD_URL} ${NATIVE_BINS_URL} ${FONTS_URL}"
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 http://wp.me/pVshC-z5"
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. "
echo "Download and install the Java Synology package from http://wp.me/pVshC-z5"
exit 1
fi
#is the User Home service enabled?
UH_SERVICE=maybe
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
UH_SERVICE=false
fi
fi
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
fi
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}
wget ${WGET_URL}
if [[ $? != 0 ]]; then
if [ -d ${PUBLIC_FOLDER} ] && [ -f ${PUBLIC_FOLDER}/${DOWNLOAD_FILE} ]; then
cp ${PUBLIC_FOLDER}/${DOWNLOAD_FILE} ${TEMP_FOLDER}
else
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
fi
fi
done
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
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
#extract CPU-specific additional binaries
cd ${SYNOPKG_PKGDEST}/lib
tar xzf ${TEMP_FOLDER}/${NATIVE_BINS_FILE} && rm ${TEMP_FOLDER}/${NATIVE_BINS_FILE}
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
tar xjf ${TEMP_FOLDER}/${FONTS_FILE} && rm ${TEMP_FOLDER}/${FONTS_FILE}
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
FFMPEG_PATH="\$SERVIIO_HOME/bin/ffmpeg-wrapper.sh"
else
FFMPEG_PATH="\$SERVIIO_HOME/bin/ffmpeg"
fi
#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)
#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%^(JAVA_OPTS=.*)\"$%\1 ${EXTRA_OPTS}\"%" ${SYNOPKG_PKGDEST}/bin/serviio.sh
#change owner of Serviio folder tree
chown -R ${DAEMON_USER} ${SYNOPKG_PKGDEST}
#reset ownership on any pre-existing transcoding temp folder
if [ -d ${TEMP_FOLDER}/Serviio ]; then
chown -R ${DAEMON_USER} ${TEMP_FOLDER}/Serviio
fi
exit 0
}
preuninst ()
{
#make sure that daemon is stopped
su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/serviio-wrapper.sh -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/serviio-wrapper.sh -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
fi
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
fi
#reset ownership on transcoding temp folder
if [ -d ${TEMP_FOLDER}/Serviio ]; then
chown -R ${DAEMON_USER} ${TEMP_FOLDER}/Serviio
fi
exit 0
}
start-stop-status.sh
#!/bin/sh
#--------SERVIIO start-stop-status script
#--------package maintained at pcloadletter.co.uk
DAEMON_USER="`echo ${SYNOPKG_PKGNAME} | awk {'print tolower($_)'}`"
DAEMON_ID="${SYNOPKG_PKGNAME} daemon user"
ENGINE_CFG="serviio.sh"
ENGINE_SCRIPT="serviio.sh"
daemon_status ()
{
ps | grep "^ *[0-9]* ${DAEMON_USER} .*java" > /dev/null
}
case $1 in
start)
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
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/" "${SYNOPKG_PKGDEST}/bin/${ENGINE_CFG}"
su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/${ENGINE_SCRIPT} &"
exit 0
;;
stop)
su - ${DAEMON_USER} -s /bin/sh -c "${SYNOPKG_PKGDEST}/bin/${ENGINE_SCRIPT} -stop"
sleep 6
exit 0
;;
status)
if daemon_status ; then
exit 0
else
exit 1
fi
;;
log)
echo "${SYNOPKG_PKGDEST}/log/serviio.log"
exit 0
;;
esac
ffmpeg-wrapper.sh
#!/bin/sh
#FFmpeg wrapper script to use libshine fixed point maths MP3 encoder on ARM CPUs
#as originally posted here: http://forum.serviio.org/viewtopic.php?f=7&t=6458
#patched build of FFmpeg req'd: http://pcloadletter.co.uk/2012/10/12/ffmpeg-shared-libs-for-synology/
PARAMS=""
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
else
PARAMS="${PARAMS} ${PARAM}"
fi
if [ "${PARAM}" == "-i" ]; then
#this loop is the -i parameter, the next loop will be the input filename/URL
INPUT=1
fi
done
#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|"`"
fi
#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
#http://fvue.nl/wiki/Bash:_Why_use_eval_with_variable_expansion%3F
eval ${FOLDER}/${FFMPEG_BIN} ${PARAMS}
#return FFmpeg status
exit $?
Changelog:
- 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 serviio.org 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
- 0.6.0.1-005 added Web Station dependency, EULA dialog, and links for Web UI and user forum in More Info
- 0.6.0.1-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 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

HI
i have ds713+ work with my tv panasonic vt50 great apps and external srt work perfect not need transcode
befor
i used media server for synology {{{{{{{{ not showing external srt and plex not showing external srt only format to UTF-8
but now not need any think
thank you very match
Hi patters,
just FYI: in your scripts, you could bypass creating the test user for the User home service by using the synoservice binary. Moreover, you can automatically enable the User home service with a code like
uh_service=”$(synoservice –list running | grep userhome)”
if [ -z "$uh_service" ]; then
synoservice –enable userhome
fi
Best regards,
winxi
Patters,
Many thanks over the last many months for java, crashplan and servo.
Now that Glacier and media server are half decent I’m using those instead but just wanted to show my appreciation for your work
Is having the console in the computer is absolutely necessary? Can it not be setup standalone on the NAS?
Thanks for the tutorial btw.