Skip navigation

Category Archives: Digital Media Network

Props to this guide on Lifehacker and this one on the XBMC forums, for walking me through most of this process.

Ingredients

  • Acer AspireRevo — This is a $250 nettop with an Intel Atom 230 processor, 1GB of RAM, 160GB SATA hard drive, and an Nvidia ION LE graphics chip. The Nvidia ION is the important part here, as it’s powerful enough to handle HD playback.
  • XBMC Live ISO — I used the XBMCFreak LiveCD, an optimized version of XBMC Live for NVIDIA users.
  • Unetbootin — To create a bootable USB flash drive with the XBMC ISO.
  • a USB flash drive with at least 2GB of space
  • HDTV with HDMI input, of course

Download XBMC Live

XBMC Live is the XBMC Media Center with an embedded operating system (Linux distro). As mentioned above, I went with the XBMCFreak LiveCD but the official release is here. Download the file, unzip it to get at the iso file.

Install XBMC Live to USB flash drive

The Revo does not have a disc drive, so we’ll need to create an installer that uses a USB flash drive. Get Unetbootin and give it the XBMC iso, it will extract the files onto the flash drive and make it bootable.

Prep the Revo

Allocate more memory to the GPU to maximize video playback performance. In the system BIOS, go to the Advanced Chipset Features menu and set the frame buffer size to 256MB. Save and exit the BIOS.

Install XBMC to hard drive

  1. Plug in the flash drive and reboot the computer
  2. Press F12 during boot and select to boot from the flash drive
  3. Select “Install XBMC Live to disk”
  4. Choose “Guided – entire disk”
  5. Let the install finish, the rest of it should be pretty straightforward
  6. The machine will turn itself off after the install is complete

Tweaking XBMC

XBMC should boot up directly from the hard drive now. We’ll need to tweak XBMC to take advantage of the graphics processor via VDPAU — this allows XBMC to offload video processing to the graphics processor so you regular processor isn’t tied up. Enable this in Settings > Video > Playback, find the “Render Method” option and set it to VDPAU.

We’ll also need to adjust the audio output to use HDMI and, in my case, tell it that the receiver is not AC3-capable. Head over to Settings > Audio, and set the “Audio output device” to to hdmi, the “Passthrough output device” to hdmi, enable “Downmix multichannel audio to stereo,” and disable “Dolby Digital (AC3) capable receiver.”

Finished

That’s it, the Revo is finished, though you might have to play around with the video resolution or the zoom settings on the skin, depending on your TV. In my case, video playback was fine but the XBMC menus overlapped the edges of the screen, so I had to set the skin to zoom out about 8%.

My next step will be to prep my media collection in order to get XBMC to correctly identify everything. By default, XBMC can scan your library and scrape the internet to pull info (and DVD art, album art, fan art, etc) about your media. But it’s better practice to use a media manager to write nfo files into the individual folders that the media is stored in, so if your XBMC installation gets corrupted you can quickly rebuild your database. I’ll be looking at different media management apps in the next little while.

I’m only using my desktop and PS3 to test server and client functionality, respectively, but here’s what I’m thinking in terms of hardware…

An inexpensive nettop- or mini- PC for the client, something like the Acer AspireRevo (reviews here). It’s got good reviews as an HTPC or media center — small, inexpensive, quiet, comes with an HDMI port and plenty of USB ports and a card reader. Only cons for me are the lack of built-in WiFi and optical drive, which aren’t too big a deal.

Server hardware is a little harder to pin down. Really, any old PC will do as long as its got a reasonable amount of processing power and plenty of memory slots. Primary requirements are probably a good power supply unit, an optical drive, a minimum of 2GB RAM, a 2.4GHz processor or more (but not that much more), and a hard drives or two. Plenty of refurbished or barebones systems meet these requirements, so I’ll probably pick up whatever fits my budget.

I just published a post on installing and configuring FUPPES, then realized I should probably flesh out the software requirements for this little project. I’ll probably come back and edit this post if I come up with anything else, but these are the basics.

On the server side:

  • the ability to store and share media (pictures/videos/music) using UPnP protocols

On the client side:

  • function as a digital audio/video player, play the popular audio/video formats
  • can auto-detect UPnP servers on the local network to browse/stream media

Nice to have’s:

  • the ability to go online to automatically retrieve information and artwork (thumbnails/poster/cover/fanart) from websites for music, movies and TV shows — commonly known as a media info scraper or web scraper
    • I think this can be done on either the server or client side — more research required
  • the ability to control the client via an IR remote control

So I’m testing media server apps on my desktop, which is running Ubuntu 9.10. Right now I’ve got FUPPES installed. The wiki is pretty good for getting started and there’s plenty of other resources on the interwebs. These were the instructions I used — I’m repeating them here, for the sake of completeness.

In the terminal,

$ sudo apt-get remove autoconf automake gettext

to clean your system of old programs fuppes uses, and delete your /home/username/fuppes/ directory, if it exists. Now, with a clean slate, in the terminal:

$ sudo apt-get update

Install your codecs:

$ sudo apt-get install ffmpeg build-essential \
libavutil-dev libavformat-dev libavcodec-dev \
subversion libtool \
libsqlite3-dev libpcre3-dev libxml2-dev libpcre3-dev pkg-config

Reinstall autoconf, automake and gettext:

$ sudo apt-get install autoconf automake gettext

Get the latest release of fuppes:

$ svn co https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk fuppes
$ cd fuppes
$ autoreconf -vfi
$ ./configure --prefix=/usr
$ sudo make
$ sudo make install
$ ldconfig

Now run fuppes once:

$ fuppes

and then quit. This will create the config file for you: ~/.fuppes/fuppes.cfg. Modify this file according to your needs, following the instructions in the wiki. Re-fun fuppes as root in the terminal. Then hit r and enter — this will tell it to look through the directories you specified in the config file and build the database.

There’s also a good article on switching to using fuppesd in the wiki: startup with init.d.

It’s working out fairly well so far, and it includes basic DLNA support so I can test with my PS3. One issue I’m having with this setup: rebuilding/updating the database. I changed the shared directories configured in the fuppes.cfg file but neither an update nor a rebuild of the database had any effect — I’m still seeing the old shared directory when I test. But I haven’t had a chance to really play around with it yet, so more on this later.

I’m currently attempting to build a home digital media network, and I’ll be using this blog to keep track of it. Here’s the rough idea:

There will be a media server, ideally located in a spot where noise won’t matter. This computer will host all my movies (roughly ~500 GB worth and growing), all my music (about 10-15 GB), and my digital photos.

There will also be at least one client computer, which will stream media from the server. The primary requirement for this machine is that it be small and quiet. But it would be nice if it also had no moving parts (for increased reliability) and was cheap (because I have limited disposable income).

I also own a PS3, so the server will need to be DLNA compliant in order for the PS3 to recognize it.