Since I have some birthday money to spend, I am looking at purchasing a NAS to stream my media files. Here are my requirements:
1) Will run MediaTomb 0.12.0 (when released). Other versions do not work with my media client.
2) Enough CPU/Memory to transcode audio using VLC (ffmpeg will not work with online MMS streams so I need VLC)
3) Enough CPU/Memory to transcode JPG using ImageMagick convert.
4) Obviously, must have access to shell to install MediaTomb and other apps.
6) Single drive is OK as files will be backed up elsewhere.
7) Must be able to purchase within US.
I've been looking at the D-Link DNS323 which is the same as the Conceptronic CH3SNAS. It looks like everything I may need, including the bonus of a 2 drive system. The 500MHz ARM9 looks like it should be able to transcode music. Has anybody had any experience with this NAS running MediaTomb?
I think we do have a couple of users who run MT on this device, but the most interesting question for you is:
did anyone try to use transcoding on this unit? Be it VLC or ffmpeg or any other transcoding application.
The DNS323 seems to have a pretty good hacking community. From what I've seen, ipkg can be loaded on it to access optware (which has ARM9 compilations of ffmpeg, vlc, and imagemagick) or you can load debian on it and have access to it's repositories. I've even seen documents on how to cross compile with it. Have you heard any success stories with transcoding on any NAS devices (not including PC based NAS)?
I decided to buy the DNS-323 and here is what I've learned so far. It is really simple to get into the linux environment and have access to to the fun-plug applications and access to the DNS-323 optware repository. I have found that madplay does a reasonably good job on transcoding the MP3s as it only uses fixed point math. In my Ubuntu enviroment, I confirmed that madplay does indeed work with MediaTomb transcoding (<agent command="madplay" arguments="--output=wave:%out %in"/>) and should be OK when I get MediaTomb 0.12.0 on the NAS box. Now if only I could get a pre-compiled ARM9 0.12.0 binary :)
I have also been able to transcode flac and ogg vorbis audio as well (at an acceptable speed) on the DNS-323. The flac decoder uses fixed point and I found a build of oggdec (in Vorbis Tools) that uses fixed point as well. I could not find any fixed point wma or mp4 audio decoders, so those probably won't transcode very well on this NAS.
It looks like ImageMagick uses floating point because it takes over a minute to resize some jpegs I have. Does anyone know of a command line image converter that uses fixed point?
I just found a fixed point version of faad for the DNS-323 that decodes at 6x playback speed on the NAS. All I need now is a fixed point wma decoder and I'll have all the major audio formats covered :)
ImageMagick is indeed very slow, I tried it on some embedded boxes and it was basically unusable. I have some very fast code that is capable of image scaling (borrowed from Schani's mathmapper gimp plugin), but I did not yet have time to integrate it.
It seems DirecTV finally fixed the bug they have with processing higher resolution photos, so the image resize is not needed (until they break it again...) There is still an HR2x issue when some metadata in the jpeg file (in my case from an Olympus camera) causes the thumbnail to be displayed instead of the normal photo. I tried ImageMagick on my NAS to only strip the image metadata and this takes 30 seconds...
I found another application called jhead which strips the metadata in less than a second on my NAS, but I cannot seem to send the output to a fifo. I'll look into this more...
I was able to modify jhead and it works well. The original jhead code always overwrote the input file and did not have a parameter for a separate output file while not modifying the input file. I modified it to write to an optional output file and this works well writing to a FIFO. I compiled and tested it on my Ubuntu setup using a recent SVN build and it works really well. I was also able to build the modified jhead on my DNS-323 and it works as well.
In summary, here is the grand plan with the DNS-323:
Use MediaTomb 0.12.0 (when an ARM9 static build is available) to stream to my DirecTV HR20.
- Transcode jpegs to strip metadata from the image using a modified version of jhead.
- Stream non-transcoded MPEG2 video
- Stream transcoded MP3 (to wav) using madplay
- Stream transcoded m4a/aac audio using a fixed point version of FAAD2
- Stream transcoded flac using the flac binary (fixed point)
- Stream transcoded ogg using oggdec (fixed point using the tremor library)
- I should also be able to stream any internet radio using these audio formats
The only audio format I really want in addition to the above is a fixed point wma decoder so that I can stream MMS internet radio. There has been some activity converting the ffmpeg floating point code to fixed point and I hope this can be ported for the DNS-323 sometime soon.
All I need now is MediaTomb 0.12.0 and I'm ready to go :-)
We hope to release 0.12 this year ;)
I think this post also belongs to this thread, some interesting information for those who want to use audio transcoding on their NAS devices:
I am considering a DIY NAS based on mini-ITX mobo with ATOM CPU, Ubuntu, and a couple of 1Tb discs.
Any comments on this setup ?
Like this one?
Let me know how you get on is I'd be interested in doing it myself.
Precisely , and I think the mobo NIC issue is fixed with the latest ubuntu release
I would not want to mess around with a DIY version, have a look at Bubba 2 from http://excito.com/
Afaik it is open and runs a full featured Debian distribution.
Well NAS construction is under way.
Blog is here --> http://diyubms.blogspot.com/
Here is an update of my NAS:
The D-Link DNS-323 (armv5te) is working out great for me! It streams and transcodes audio really well to my DirecTV HR-20. I have built a 0.12.0 SVN version of MediaTomb for the NAS and have many transcoding profiles working (all fixed point):
- MP3 (and online MP3 streams) to Wav using madplay
- MP4 Audio to Wav using FAAD2
- Flac to Wav using flac
- Ogg to Wav using oggdec
- Wma to Wav using a modified version of the Rockbox fixed point implementation
- MMS streaming to Wav using a modified version of the Rockbox fixed point implementation with a modified libmms.
MPEG2 video (PS and TS) with no transcoding works perfectly. Photos also work well. I am using a jpeg transcode which strips the exif metadata from the images before streaming them. The HR-20 has some issues with some exif data.
The only thing the NAS cannot do that my linux machine can do is video transcoding (including YouTube). I can live with firing up MediaTomb on my linux machine on an as needed basis for transcoding video :)