Media Streaming Using Fuppes….
In a previous post I wrote about remuxing videos so you can share them to the Xbox 360 using a UPnP program like fuppes. I mentioned that I would explain how to install fuppes, well here ya go! Look no further! Detailed instructions on compiling, installing, and configuring Fuppes. For those who don’t want to compile, I have .deb files created using checkinstall, use at your own risk.
Compiling and Installing
So, first thing is first you need the dependencies. On Ubuntu (or any Debian based system really…) the following will get you everything you need to compile AND enable all of fuppes’ features.
sudo apt-get install libtool libpcre3-dev pkg-config libxml2-dev libsqlite3-dev libtag1-dev uuid-dev libmagick++9-dev libvorbis-dev libavformat-dev libtwolame-dev libswscale-dev libmpcdec-dev libfaad-dev libsimage-dev g++ libsndfile1-dev libungif4-dev autoconf gettext libmad0-dev libmpeg4ip-dev libnotify-dev libpanelappletmm-2.6-dev libpanel-applet2-dev libmp4v2-dev libmp4v2-0 libmp3lame-dev libflac-dev libexiv2-dev
WHEW! Thats a lot. Well it lets you handle just about any type of media that you can think of to send through fuppes. That way you can send to any program that can stream from UPnP, the Xbox 360 is limited in what it can read and use. For example it can’t play mkv’s hence my previous post.
Fuppes also requires ffmpeg if you want to do video transcoding on the fly. Video transcoding takes a lot of cpu power to do on the fly, so only do so if you don’t feel like taking the time toÂ convert videos and save them separately to send through fuppes. Ffmpeg can either be built separately if you like, or simply installed via apt-get
sudo apt-get install ffmpeg
So now that we’re all ready, lets get our source code. You need subversion for this, so you can skip the first command if you already have subversion installed. We’re gonna check out the latest version of the source code (of this writing it was version 607) and configure it, then compile it.
svn co https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk fuppes
./configure --enable-gnome-panel-applet --prefix=/usr --enable-video-transcoding
After the configure runs, you’ll be greeted with a list of all the enabled or disable features of fuppes that the configuration was set up for. Admire the lovely amount of stuff it can do if you like. Then compile it. Now, if you’d like a shiny .deb package for yourself — so you don’t have to do this yourself, and so you can easily remove it — then install checkinstall.
sudo apt-get install checkinstall
sudo checkinstall make install
This will install checkinstall, then create your package for you. Set the values of the package information to whatever you’d like and let it run. It will create the package and install it for you. You can remove it at any time with:
dpkg -r fuppes
If you don’t care about all this package stuff, and just wanna do it the old fashioned way, then simply skip the above and just run
after you run ‘make’.
Here are the two packages I made with checkinstall. You will definitely need ffmpeg for them, and I haven’t fully tested them yet. So download and use at your own risk. I’d like feedback on them. If they don’t work, let me know. If you get them to work, let me know what you went through and had to do to do it. I’ll credit anyone who finds they don’t work and tells me how to make it work. =)
Upon first time running it, fuppes will create a folder named .fuppes in your home directory. Inside you will find a file “fuppes.cfg” which quite obviously is the configuration file for fuppes. By no means do I claim that the following changes are the only way, but I know that what I have works. The cfg file is well commented and is xml. So editing it should be a breeze. The following changes are things I’ve made that are not documented in the default cfg that gets created. Just ensure that the interface you specify in the configuration file is connected to the same network that the Xbox is on.Also, there is a web based admin panel for many options, the port on which this runs can be defined in the cfg file.
If you wish for on the fly transcoding, then you need the following:
You can probably look up other options if other trancoding is needed. On the bottom you will find the device specification for the 360. While it will work, you may prefer to use the virtual folder setup that fuppes allows. Therefore making sure to show you all the videos you have and all the music. The default configuration has problems getting videos from the subdirectories. This is the configuration that I use:
<device name="Xbox 360" virtual="Xbox 360" enabled="true">
<user_agent>Xbox/2.0.\d+.\d+ UPnP/1.0 Xbox/2.0.\d+.\d+</user_agent>
<friendly_name>Zeros : Treasure Trove</friendly_name>
<model_name>Windows Media Connect compatible (%s)</model_name>
Ok. And then you need to make a file vfolder.cfg. This defines the layout for the virtual folder layout on how the 360 will show you the files. Its quite long, so click here to download it. Place it in the .fuppes folder. Feel free to edit it as you see fit. As is it will work just fine.
When you start up fuppes in a terminal, it will show you load up a bunch of things and then you can type one of a few choices. Typing ‘q’ will quit. Typing ‘r’ will scrap your current database of stuff and rebuild it. Typing ‘u’ will update the database and ‘v’ will rebuild the virtual folder layout.
Just go to “My Videos” on your Xbox 360 and the name you chose for your “friendly_name” in the fuppes.cfg file should show up. The same will be true if you go to “My Music”.