Alex Atkin UK
Install the J2RE RPM http://java.com/en/download/manual.jsp
(or if you are using a none-RPM based distro extract one of the other formats follow the instructions) and add it to the path.
Add Java to your path by changing the following in ~/.bash_profile
If neither of the above lines are present then you would add:
If you dont use BASH then you are on your own but it should be similar for any shell.
Make sure TCP port 7000 and UDP port 1900 are open on any firewall you might be running.
This should only be necessarily if your firewall is running on the same network as your
Xbox 360 is on. In my case this was true as my 360 has its own public IP address.
In the unlikely event yours is setup like mine then ensure that ONLY the 360 has permission
to access those ports or else anyone on the Internet can get into them. I used the following
rules for the Shorewall firewall:
ACCEPT net:###.###.###.### $FW udp 1900
ACCEPT net:###.###.###.### $FW tcp 7000
In case you havent guessed, ###.###.###.### should be the IP address of your 360.
Download and extract 360 Media Server to a directory of your choice.
Now to get the server running issue ./start <IP ADDRESS> where <IP ADDRESS> is the IP
address of the interface connected to the same network your 360 is on.
Cnce its running you need to at LEAST configure the path to your music.
Theres a primitive web interface to do that at http://127.0.0.1:7000/configure which you can
use or alternatively just modify the configuration file yourself. Unfortunately 127.0.0.1 seems
to be hardcoded into the server so you HAVE to use the configuration page on the same
machine its actually running on. Alternatively, modify the configuration file yourself like
the following but remember you will have to restart the server for the changes to be updated.
Also be careful editing the config file while the server is running as it seems to keep a copy of
the original configuration in RAM so if you then edit from the web interface you will lose all the
changes you made manually.
Its worth noting that if you use the web interface the changes kick in immediately without restarting
but you still have the caching on the 360 to think about. Usually coming completely out of the Music
player then going back in is enough to refresh the tracks but NOT the streams.
<Name>di.fm - House</Name>
<Name>di.fm - Chillout</Name>
FriendlyName is the name you want the server to show up as on the 360 followed by :1.
PCMOutput means everything the 360 doesnt natively understand is transcoded to PCM.
I dont see any reason NOT to do this you are on a LAN so why worry about 160K/sec of
bandwidth? Personally I would rather the server decode EVERYTHING to PCM as the 360
MP3 codec is known to sometimes crash games if it hits on an MP3 it doesnt like.
MusicDir, well I think I will let you figure that one out for yourself. ;-)
Streams, now THIS is cool. This is a list of Internet Radio streams that it will allow you to
play on your 360. The server will do the Shoutcast/Icecast streaming and will then output
it to the 360 in a way it understands. I have no idea HOW it does it, but it works brilliant.
Something slightly less obvious at first, the streams are listed under "Saved Playlist".
Name is pretty obvious but URL is worth noting. The URL is the URL of the stream NOT
the playlist. So in order to get the URL you have to download the playlist file and copy/paste
one of the stream URLs.
That done, im able to stream di.fm and mp3s but for some reason so far im not getting FLAC listed
probably because im not sure they have ID3/OGG tags or which of those the server expects.
I have been streaming di.fm for 3 and a half hours now without any interruption even while I was
playing Burnout Revenge and talking constantly to someone. Not bad for Alpha software!
What does the <Type> attribute stand for? What are the options there?
Great tutorial, but you left our the filename/path for the configuration file.
I've hunted it down, and found its config.xml which you put in the same directory as the start script.
For some reason I can't get the server to respond to my requests to change the content dir via my browser and editing the file was the only way to get it to work.
thanks again, especially since I used you file above for the basis of mine, just changing the directory only
Alex Atkin UK
Sorry about the config filename, I never noticed I had missed that out. A good job its a fairly obvious filename.
The web control panel only works if the browser is running on the same PC as the server. You can access it from another PC but then when you try to click submit it will be trying to submit to the wrong PC because its hardcoded with the localhost IP address rather than the one you specified on the command line.
I imagine its a simple fix but I have never been able to get a Java Development Environment setup so I can't go in and fix it. A shame really, as it would be nice to tidy up the web interface page a bit.
Its also worth mentioning that if you find any music is missing, check those tracks have ID3 tags. Any track without a tag seems to be ignored and does not show up in the list. If you have a Windows machine I find WinAMP is good at autotagging tracks including MP3 and FLAC files.
Sounds like a great concept, but I cannot see the server from Xbox 360. I have it linked by ethernet, and used to share to it from Windows Media Player 11, so I know the Xbox settings are fine. For one thing, I cannot find the config.xml file stated above. Though, I don't imagine that has anything to do with Xbox not seeing the server, because I was able to set settings from the configuration link. The instructions that are in the x360mediaserve package download state that it requires:
lame.exe - mp3 encoder binary
oggdec.exe or sox.exe (with ogg support) - ogg decoder (if you plan on using ogg support), can also use sox
faad.exe - faad2 aac decoder binary
flac.exe - flac decoder
and for Linux
install lame,faad,flac and sox where they will be found by a bash script
Regarding this, what bash script could they be referring to, / .bash_profile possibly? If so, where would one need to install/copy the above decoders for the bash script to see them?
Caused by: java.net.SocketException: Broken pipe
... 27 more
I am running JRE-126.96.36.199 on Fedora 10
Alex Atkin UK
What exactly did you put for the streams? Please bear in mind that it does NOT support playlists.
When you click on a link on a website usually that links to a playlist containing a list of servers. For it to work in x360mediaserve you have to save that file, open it in an editor and chose a specific server URL to use. For example http://scfire-ntc-aa07.stream.aol.com:80/stream/1003 is the first server for di.fm trance. Unfortunately if that server is full or down for some reason, you will be stuck. So its probably a good idea to add several from the playlist under different names as I do not believe there is any way for it to have a list to try each one to see which is working.
Unfortunately this is a limitation of how the streaming support was never completed in x360mediaserve.
Alex, you were right. I added your sample stream to the configuration, and was able to play it through the Xbox 360. I don't know what I did different this time, but can also play streams that I previously couldn't get to work, for example Atrem's NAS Radio (http://188.8.131.52:8000/ices). Awesome!!!! - Thanks
Oh, I think the reason many have had with not seeing the "config.xml" file, in the main directory of x360mediaserve, is because you first have to start it, configure it at the web interface http://127.0.0.1:7000/configure. Once you first configure something via the web interface, the "config.xml" file will be created, within the same directory you are running ./start from.
Also, in regards to jdogzilla's question, the "Type" attribute references the selection for the playlist (MP3, WMA, Generic), likely related in the config.xml as "0", "1", or "2" I would guess, as the MP3 selection is definitely represented by a "0" here.