The Swede in the middle of Silicon Valley

Thursday, September 18, 2008

Updated media setup and streaming

Due to various reasons I've started to extend my multimedia setup at home. Mostly for convenience but also to get a good reason to do some hacking after hours.

As posted earlier here's the physical setup of my multimedia center.

So this is all old news so lets get to the new ones. I recently purchased a new server for home to do some hacking on, try out new stuff etc. As of earlier I haven't really had a good way of distributing media across my devices. For example, if I wanted to watch a divx movie on my projector I either had to run a 25ft cable from my Mac Mini or put the movie on an external hard-drive and plug it into my PS3. Sure this isn't all that much work but it's still a pain as it could be easier.

So the PS3 has a nice features whereas it supports UPnP (Universal Plug and Play) this allows for network devices to stream media over a standardized protocol to devices that supports this, in this case my PS3. I did some experimenting with this when I initially got my PS3 but it wasn't all that successful.

Today I stumbled upon a new daemon called MediaTomb that works with the PS3 UPnP setup pretty much out of the box (1 row of config had to be added). MediaTomb also has some nice features whereas it scans set folders within a set time-interval to identify new media-content. Other daemons such as Deluge doesn't so you have to do it manually each time you want to stream new content.

Now thanks to a script me an my colleague developed, I enable a download, the content is unpacked an placed in an appropriate folder, MediaTomb scans the folder and voila, the Media is accessible on my PS3 using only with 1 mouse-click at my computer.

The second problem I've been working on this week is to gain access to my Music library from work, surely my iPhone is an awesome music player but I can't drain my battery all day long and quite honestly, iTunes does a better job.

Due to this I started thinking of a networked solution that would allow me to achieve this goal. First of was, aka .mac which with its function BacktoMyMac allows me to access my disk remotely from any Mac enabled with my .mac account. I immediately ran into problems with this as it required my firewall to be opened up on the fly, this was solved using the upnpd daemon in Fedora but I honestly don't want to leave the security of my network into code I haven't or wont investigate further. Secondary this wasn't all that effective, as I played songs in iTunes I saw delays up to 30 seconds when changing songs which is quite painful. BackToMyMac wouldn't allow me to see mounted shares either.

I figured I had to take another approach so I decided to install an OpenVPN server at home, as I'm using OS X I was a bit reluctant to this idea as OpenVPN hasn't worked all that well with OS X by history, luckily enough most issues has been worked out and it's running smoothly nowadays.

Once I had my OpenVPN connection established I started sharing my content folders using Samba. The reason I choosed Samba was easy, it simply works in any OS. Once the share was mounted I started syncing my media in iTunes. The initial sync took a while but not any-longer than I expected it too. Once up and running the song shift was cut from 30 seconds to 2-5 depending on the size of the song. While playing without changing songs manually the lag was 0 as iTunes seams to cache the data.

This setup would not have worked prior to iTunes 8 as version 7 had issues with media stored on a networked device resulting in labeling all content as unavailable until the user double-clicked on every single file. This issue was resolved as of version 8.

The last approach which I haven't had time to investigate further yet is using daap daemon at my server and share music as if my server was an iTunes server. The cons with this is that you can only share music, nothing else and it only works with iTunes.

UPDATE: The daap-server seams to handle the latency a lot better than the Samba-share. Change of songs are instantaneous but then again, music only so I think I'll stick with Samba.

UPDATE2: Turns out that Samba works really bad with OS X, due to this I tried NFS and AFP as well. AFP ended up being the best choice as far as OS X clients goes, however I decided to keep NFS and Samba around for non OS X clients.

So that's it, down is a diagram of the new setup, if there's any questions feel free to post in the comment section.

A notice, as far as the daap connection between my Mac Mini and Apple TV goes it's all fine and dandy with both music and video. Whichever way Apple has solved it they've done a good work. My shows are downloaded automatically, stored on my NAS and streamed by my Mac Mini to my Apple TV.

No comments: