UPnP Renderer Proof-Of-Concept

8 06 2011

Goal: A headless music player  to use in my music listening station in my room (No video or photo ability needed), re-use hardware if possible, as small and non intrusive as possible to the space.   The biggest key to the non-intrusive requirement is that there be no screen OF ANY KIND in my bedroom, not even for media selection.

Reading around I found exactly what I was looking for in the UPnP AV specification: a role called a “Media Renderer”.  It essentially is a player that takes commands from other devices. But it turns out a device or application that ACTUALLY fulfills the role of “UPnP Media Renderer” are the endangered species among UPnP AV devices! There are plenty of “Media Server” applications that house and share out media and most of the major devices are “UPnP Media Players” which means they can connect to a UPnP Media Server and play music but CANNOT be controlled remotely (not with a UPnP Control Point at least!).

Ideally, I would have loved to have a small box with an embedded linux distro that had a UPnP Media Renderer built into it.  Audio out on the back, along with a network cable and I would have been happy but it didn’t work out quite that way.   First of,  I was looking for functionality in a short amount of time over ideal implementation this time.  This is/was a project for to get me AWAY from screens and there is something about spending more time in front of screens to compile and make it all happen that the word ironic would start to describe. 

Anyway,  I did get a windows based device working within 36 hours of starting my search and here is the basic recipe:

Old Laptop + Windows XP + FooBar2000 + Foobar2000 UPnP Plugin + Windows 2k3 Resource Tool Kit = headless music upnp renderer solution

Essentially, I setup FooBar2000 to run as a service on a laptop that stayed on when the lid was shut and I could wake it using Wake-On-Lan. 

On the laptop I…

  1. Installed of clean version of Windows XP and patched the heck out of it.
  2. Installed Avira anti-virus as a lightweight AV option.  
  3. Installed FooBar2000 and the UPnP Plugin

At this point I had a working UPnP Renderer (as long as I turned off the Windows Firewall, was logged in, and launched FooBar2000). The rest of the steps are my ways of making it clean and essentially unmanaged/headless.

  1. Downloaded and Installed the Windows 2003 Resource Kit (To get Srvany.exe and Instrsrv.exe)
  2. Used Srvany.exe and Instrsrv.exe to run FooBar2000 as a Windows Service (Like This)
  3. Set the services to run as SYSTEM and Allowed to Interact with the Desktop
  4. Changed the Power Management Settings in windows for “When the Lid Closes” for the laptop to do “nothing” instead of going to sleep
  5. Set a scheduled task to shutdown the computer at midnight each night
  6. Enabled WOL in the bios

Now I have a laptop that sits on a shelf that I wake with a WOL packet, that I can control via ANY UPnP Control Point (Currently using the Samsung “allshare” app on my Android phone and KinskyDesktop Control Points).  It works really well as long as FooBar2000 shuts down nicely, sometimes I have to flip open the laptop and click “Start Normally” for it to open and be seen by the control points. 

This is by no means my ideal solution but it works, fills my criteria, and was a pretty quick build/poof-of-concept. I’d still love to find a linux based “one install” solution but for now… I can listen to my music without staring at a screen: SUCCESS!

Build Comments / Notes / Warnings to Others:

The hardest part of this project was finding a software application that would run as a true media renderer. There were lots of players out there but VERY few software products that even HINTED at being a renderer.  FooBar2000 was by far the simplest and most straight forward of all the ones I played with/googled and so I went with it.  The rest of the build isn’t technically hard at all (making it a service is a bit but there are plenty of step by step directions out there) and in fact was really simple.  

I even went down the road of looking at purchasing a new device to do this role and got stumped there too.  So many DVD players, embedded video players for TV, etc can SEE UPnP servers and play their content but almost none of them were a true rendered. The only products that were renderers were old and no longer on sale.  Eventually, (after my build was done), I found the the WD TV Live Plus actually is a Media Renderer (with some glitches) but I still haven’t jumped the gun yet and bought it just yet. It seems like there should be some software solution out there but what I did was the best I could find. I’d love it if anyone can point me to the obvious thing I missed that fit my criteria!

I’ll probably consider working on a linux version over time but linux suffers from the same ‘lack of renderers’ problem of windows to start with and the few packages / applications that SEEM to be candidates haven’t been simple to test yet.  I’d love to build a UPnP Renderer on Puppy Linux, repackaged it, and upload it for others to use but alas I’ll see if time and effort prevail.  Of course if I were to do that it might be audio only since that is my goal.




Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: