Friday, March 6, 2009

Media playing frustrations, part 3: UPnP

UPnP basically allows the PS3 or any device that supports it (even some TVs do) to see other computers on my network, and play media from them, which act as file servers (very inefficient ones, but file servers nevertheless). Except I'd have to set up a home server to use this, which, well, consumer a lot power and with that comes cost and carbon emissions, and it also made the large PS3 hard drive pretty much useless (I wouldn't use 320GB for games). I considered using a mac mini, but since I don't have one, it wasn't worth the cost. I went with the regular server then...

I went on to read the UPnP specification, which totally sold the idea to me - it defines a dream world where each device can implement a content server, a renderer, or a controller client - so I could basically have my mac control my linux server to render media on my PS3, which would be perfect since linux does have the codecs to play all formats, subtitles, and everything else. Except it doesn't work. Most devices only accept that themselves be the controller and the renderer, only allowing a separate server (such as my linux home server), so I am still stuck with the codecs the PS3 can play, and a little research on Google revealed that this is the case for 99.9% of the devices.

My first attempt was to use Azureus's internal UPnP server, which automagically shares all files you download over UPnP. This would have been largely successful, if it weren't for the fact that most videos come compressed in RAR format. Azureus is open source, so I could have changed it to uncompress the RARs, except the RAR format itself is not open, so I couldn't legally distribute it.

I also happen to have a wireless access point by asus which features a 160GB hard drive with a bittorrent client and UPnP server (more ramblings about it later), which sounded fantastic back when I bought it, but of course, with a simple embedded ARM CPU and a slow drive, streaming a movie from it is impossible - it's just not fast enough - the movie doesn't play, and my internet connection comes down.

I then moved to another UPnP server solution - Mediatomb - which worked very nicely from the file serving perspective. It even allows me to group the files in any way I want, such as allowing me to find my MP3s by Artist/Album or Genre/Artist, etc, all scriptable for my coding pleasure. It even allows me to expose media inside RAR files and stream it appropriately.

So, finally, I got a working solution, which costed me several hundred dollars more than it should have and took me a lot of tech work which most people wouldn't be willing to do or simply wouldn't know how to do - your average home user can't install a mediatomb server, edit its XML config and create scripts for it. The big question left is - WHY? Why does all this super-advanced technology have to be so crappily implemented and integrated? Are the engineers out there so lazy that they can't do better?

No comments:

Post a Comment