So I’ve recently acquired a Synology DS411j, which I hoped would have flawless built-in DLNA compatibility with my PS3. I should’ve known it was too much to ask for proper transcoding.
There’ve been plenty of discussion regarding how to get the PS3 media server, something I’ve been using on my Windows PC, installed on a Synology NAS. The most complete guide I’ve found is here on Mark in the Dark. I followed it, but I had to do a few things differently and additionally to get it to work proper.
In the end, transcoding was horrifyingly slow on the 411j’s processor. I could barely get the first frames off a 720p movie. But for those who have more powerful units and would like to try anyway, here are the modifications to the original guide. Props to Mark and synops for the original guide. My DSM version is 4.0-2197.
- Install nano via ipkg. It’s much easier than vi for the purpose of editing files.
1ipkg install nano
- Follow the guide all the way till after updating ‘/etc/profile’. At this point in time, the java version is 1.6.0_30, so adapt accordingly.
- Install git via ipkg.
1ipkg install git
- Now we install mplayer.
123456mkdir /opt/local/mplayercd /opt/local/mplayersvn checkout svn://svn.mplayerhq.hu/mplayer/trunk mplayer./configuremakemake install
- Continue following the guide till after the libpthread section.
- Now we install libzen, libmediainfo, and the mediainfo CLI, in that order. Instead of copying the lib files, I created symbolic links. I didn’t have to do copy/link the libmediainfo files.
123456789101112131415cd /volume1/@tmp/tar zxvf MediaInfo_CLI_0.7.51_GNU_FromSource.tar.bz2cd /volume1/@tmp/MediaInfo_CLI_GNU_FromSource/ZenLib/Project/GNU/Library./configure –enable-shared=yesmakemake installln -s /usr/local/lib/libzen.so.0.0.0 /usr/lib/libzen.socd /volume1/@tmp/MediaInfo_CLI_GNU_FromSource/MediaInfoLib/Project/GNU/Library./configure –enable-shared=yesmakemake installcd /volume1/@tmp/MediaInfo_CLI_GNU_FromSource/MediaInfo/Project/GNU/CLI./configure -enable-shared=yesmakemake install
- We install libffi, again using symbolic links instead of copying. make install worked for me.
12345678910cd /volume1/@tmp/wget ftp://sourceware.org/pub/libffi/libffi-3.0.9.tar.gztar zxvf libffi-3.0.9.tar.gzcd libffi-3.0.9/./configuremakemake installln -s /usr/local/lib/libffi.so.5.0.10 /usr/lib/libffi.soln -s /usr/local/lib/libffi.so.5.0.10 /usr/lib/libffi.so.5ln -s /usr/local/lib/libffi.so.5.0.10 /usr/lib/libffi.so.5.0.10
- Download and install PMS as per the guide. At this point of time it’s version 1.50.1.
- Add libjnidispatch to the jar file. gjar needs to be run in the PMS folder to preserve the relative placement of the .so file within the jar file.
123456789101112cd /volume1/@tmp/wget http://ftp.nl.debian.org/debian/pool/main/libj/libjna-java/libjna-java_3.2.7-4_armel.debar vx libjna-java_3.2.7-4_armel.debtar -xzf data.tar.gzmkdir /opt/local/pms-linux-1.50.1/commkdir /opt/local/pms-linux-1.50.1/com/sunmkdir /opt/local/pms-linux-1.50.1/com/sun/jnamkdir /opt/local/pms-linux-1.50.1/com/sun/jna/linux-armcd /opt/local/pms-linux-1.50.1cp /volume1/@tmp/usr/lib/jni/libjnidispatch.so com/sun/jna/linux-arm/gjar uf /opt/local/pms-linux-1.50.1/pms.jar com/sun/jna/linux-arm/libjnidispatch.sochown -R admin:users /opt/local/pms-linux-1.50.1/
- Link a few more library files for mencoder to work.
1234567ln -s /opt/lib/liba52.so.0.0.0 /usr/lib/liba52.so.0ln -s /opt/lib/libbz2.so.1.0.6 /usr/lib/libbz2.soln -s /opt/lib/libbz2.so.1.0.6 /usr/lib/libbz2.so.1ln -s /opt/lib/libbz2.so.1.0.6 /usr/lib/libbz2.so.1.0ln -s /opt/lib/libfontconfig.so.1.4.4 /usr/lib/libfontconfig.soln -s /opt/lib/libfontconfig.so.1.4.4 /usr/lib/libfontconfig.so.1mencoder
Last line is just to check if mencoder is still looking for anything. Link accordingly.
- Follow the remaining part of the guide.
That’s it. I hope you’ll have better luck than me. Let me know if you’ve any improvements to the steps that may allow us 1080p transcoding on the NAS. 🙂
Finally, I didn’t bother doing this, but you should be able to have PMS autorun by adding the following lines to the end of ‘/etc/rc.local’:
nohup ./PMS.sh &
If you try it let me know if it works. 😛