Streaming Media from Linux to Xbox 360

Today I woke up with the vision of watching Dexter while working on my laptop because I'm sick of sitting at my desk. This left me with 4 options; Stream from Desktop, Stream from Laptop, Use USB Stick or Stream from new Linux Server. Each of these options has it downfalls, and one best solution, which I'm going to describe below.

Option 1: Stream from Desktop

The main reason I don't want to do this is because this computer consumes a lot of power due to the graphics card and high wattage power supply. Even though I've already setup streaming from here, I'd rather not use it and reerve it only for gaming.

Option 2: Stream from Laptop

Since I'd be working from my laptop, I don't want to drain the battery by streaming the content from here. Simple as that, no other reason other than battery life.

Option 3: Use a USB Stick

This is my usual method for watching my media on the TV, but it's very annoying. I have to manually copy the files to the USB Stick each time I want to watch something new, which is very inconvenient.

Option 4: Stream from Linux Server

This is my ultimate goal, since I recently just bought a new HP Proliant Microserver that I plan to always have turned on, which is now hosting all of my files and working as my internal web server and test environment. Unfortunetly Linux doesn't have native support for streaming to Xbox so I had to do some researching. Turns out there are a few options, none of them seeming to work from the comments I was reading, or there would be an odd occasion of success on certain operating systems. After an hour or so of searching I decided to use my instinct and go with ushare; A free UPnP A/V & DLNA Media Server for Linux.

To my surprise, ushare is actually part of the Ubuntu packages, so this makes things extremely easy. I am running Ubuntu Server 11.04. You can simply run the command:

sudo apt-get install ushare

I haven't tested this on Fedora based systems like CentOS, but I've read the RPM installer works just the same via the yum command. Ushare stores it's config file in /etc/ushare.conf so this is our next stop. Luckily, there are only a few slight modifications you have to make to this file which I've listed below.

USHARE_NAME=SERVER
USHARE_IFACE=eth0
USHARE_PORT=49200
USHARE_TELNET_PORT=1337
USHARE_DIR=/storage/media
USHARE_OVERRIDE_ICONV_ERR=
USHARE_ENABLE_WEB=yes
USHARE_ENABLE_TELNET=no
USHARE_ENABLE_XBOX=yes
USHARE_ENABLE_DLNA=no

That is the exact configuration file I used and it worked straight away. I simply saved the file, started the daemon and turned on my Xbox. All my media files were instantly there, no errors, no messing around with configurations. You can easily start and stop the daemon using:

/etc/init.d/ushare start

Hopefully this will work as easily for you as it did for me. Feel free to comment or ask questions if you have trouble or any suggestions.