View Single Post
Old
  (#6)
Thirdgen89GTA
You can sleep in a car, but you can't race a house
 
Thirdgen89GTA's Avatar
 
Offline
Posts: 311
Join Date: Mar 2007
Location: Buffalo Grove, IL
01.01.2012, 03:02 AM

I can help with this!
  • Runs on Linux (preferably Ubuntu)
  • Able to stream video and audio files.
  • Able to transcode so the media can be played on any of the devices above.
  • Able to mount and play DVD files in ISO format automatically.




There are several options available to you. However, there are some things that either aren't implimented yet, or aren't implimented well. This means you will have to run multiple background help apps or services to meet all yoru needs.

First off, we should start with a Hometheater PC, or mini PC.

Your best bet is to buy a Home Theater PC case that includes an IR Receiver. You'll also need a remote thats compatible with it. If I were you I'd look towards cases that are compatible with the Logitech Harmony line of remotes.

Next you'll need your OS. Since you want to run linux cause its free that puts some forks in the road.

You can use the maintained "Mythbuntu" system which is really just a version of Ubuntu that boots directly to a HTPC type interface. Mythbuntu has some codec incompatibilities due to licensing issues. But strangely Boxee and XBMC get around this despite both having their roots in Linux OSs.

The other option is to run a basic linux system and run a HTPC program like Boxee, XBMC, or another application like that on top of it.

Mythbuntu features/options/drawbacks
Good support for multiple Server/Client installs. It supports a backend server that handles all transcoding and file server duties. It can also play DVD.iso's stored on the file server. Because it supports a back-end and front-end setup you can use a powerful system to do all of the transcoding/serving and hide it in a closet if its noisy. You can then have a relatively weak front-end PC thats hooked up to your home theater. Since the actual transcoding (the most CPU intensive HTPC task) is handled onthe back-end server its just streamed to the client HTPC. I recommend a wired gigabit network as a standard! To transode HD video you will need some serious back-end hardware if you want to maintain good framerates and avoid audio/video sync issues. This also supports "apps" like Pandora/Last.FM/etc....

Mythbuntu is not as easy to setup as Boxee or XMBC though.

XBMC and Boxee type systems.
These are much simpler to setup. But they aren't nearly as configurable and they don't support back-end decoding. So the client PC has to be much more powerful. Out of the box though they will play nearly every format out there, and both include tons of applications. XBMC and Boxee will run on Windows/Ubuntu/Mac installs and can reference file servers via SMB/AFP/NFS protocols, or local content. It "installs" just like a normal application. They also have android and iPhone based apps that can act as remote controls over a WiFi connection.

That covers the basic HTPC type setup. Now onto your other requirements.
  • Able to automatically create/update media list as files are added to the library.
  • Web browser interface to browse and play the media from the server to avoid having to install specific software on the devices.

This is where it gets tricky because there is no "all-in-one" solution.

What you will need to do is install multiple "services" that run in the background to handle these types of tasks.

What you are looking for now is a webserver that can server up media content. You can look into the ORB software or Twonkey Media Server. The problem with both of these service apps is that they don't happily mesh with ANY existing media programs so their "ratings" and "smart playlists" don't transfer over. Aka if you rate a song, you will have to separately rate and create a similar playlist on another machine. This seems simple, until you get to massive libraries. Then it becomes a nightmare to keep ratings and playlists synchronised. They are also not free!

This is my setup at home, and it works pretty well and is easy to keep sync'd up.
  • 1 Linux PC running iTunes via WINE.
  • 1 Macbook Pro (considered the "Master" library for iTunes)
  • 1 MacMini hooked up to Home Theater via a DVI->HDMI converter and a SPDIF TOSlink cable. Video is passed through the DVI interface which is pin compatible to HDMI. But no audio passes through. For that i use the SPDIF link to transmit DD5.1 and PCM audio to the receiver.
  • External 2TB USB drive hooked up to MacMini.
  • The MacMini runs a paid app called "Connect360" which shares iTunes library content as well as smart playlists. The smartplaylists were the "killer feature" I wanted.

The Mac Mini hosts all Video files and has a duplcate of the iTunes library. The iTunes library that resides on my Macbook Pro is considered the Master library. Meaning if i want to rate a song, or create a smart playlist I do it on the Macbook Pro. It is the master simply because I use it more than any other PC I have. Whenever I make enough changes I run a bash script that will exactly duplicate the iTunes library from the Macbook Pro to the MacMini. The real way it works is it runs an Applescript that tells iTunes to quit if its open. Then it checks permissions, and finally it uses RSYNC to delete/copy files on the MacMini so its a perfect replica of the library that resides on my Macbook Pro. It runs fast, takes only 1 or 2 minutes to sync up the library.

Now that seems complicated, but its really not. I'll happily post up the script if anyone wants it.

Now, as for the MacMini's duties. Via the Connect360 helper application, it serves up the Video, iPhoto and Music libraries to all DNLA compliant devices (Xbox360, Playstation 3).
iTunes itself is set to "share" its library. Using the iTunes remote control appliation from an iOS device I can remotely control iTunes on the MacMini meaning I don't need to use the TV to play my music playlists, I just turn the Home Theater receiver on and set it to the input the Mini is hooked up to.
The MacMini also runs the Boxee application, which is set to run automatically at startup. This is the main video interface for the home theater. The Boxee application is configured to look at the iTunes library thats stored locally on the MacMini in /Users/%user%/Music/iTunes/ and it also is set to look at the USB 2TB external drive where i store ALL of the video files. Boxee can also play any DVD I put into the MacMini's drivebay. It can also play VIDEO_TS folders, and DVD iso files. Plays MKV, AVI and just about every video format out there.

So on the surface its actually really easy to use. But there are several services/applications running on a single machine that provide a single interface to the home theater.

Now here's were the iTunes libary sharing comes in. The iTunes program installed on my Linux machine via WINE looks on the network and finds the shared iTunes library hosted on the Mini. So I just connect to that and stream the music to the linux box when I want to play some music on the linux box. I also have a Mac Pro desktop that i use for video editing, ripping, encoding, photoshop...etc. If I have new movies, DVDs and such what I will do is connect to the shared folder on the USB2 drive hosted by the mac mini and simply copy the files over to the USB drive via the network. Boxee automatically recognises new files and adds them to its known library.

Now why is the Macbook Pro laptop my "Master" library? Because my iPhone is synced to the iTunes app on the laptop, and I have the laptop with me at work and at home. So i'm more likely to add music, create a playlist, or rate music on the laptop. So if I make any big changes i just use the script I wrote which will duplicate the iTunes library onto the mac mini. Here's a copy of the script. Its Stupidly simple. the script is saved and I can execute it by double clicking it from the MacMini desktop or I can invoke it from the command line via SSH from any PC on my network.

PHP Code:
osascript -'tell application "iTunes"' -"quit" -"end tell"
sudo chmod -R 777 /Users/william/Music
rsync 
-va --delete $user@$ipaddress:$sourcepath  $destinationpath
open 
-"/Applications/iTunes.app/" 
  • Line 1: closes iTunes if its open.
  • Line 2: modifies permissions of the destination so there aren't any errors when writing the files. I'm not too concerned with security on my local network.
  • Line 3: RSYNC will compare the source directory (Macbook Pro) with the destination director (MacMini) and then selectively delete files and copy new files from the Macbook Pro. If I delete a song on the Macbook Pro, RSYNC will delete that song on the MacMini. If I add a new song, it will copy it over. If I rename files it does the same. If I update album art or ratings it also duplicates those changes over on the MacMini. Its great because it doesn't wast time copying data that hasn't changed and already exists on the destination.
  • Line 4: re-opens iTunes on the MacMini.


  • 1989 Pontiac TransAm GTA, 5.7L LT1/M6 400rwhp+
    • Jammin X1 CRT Pro, MMM/1717, 6S
    • Hyper One Seven 1/7th scale GT car, MMM/1717, 6S
    • Hyper 10TT, MMP/1410, 3S
    • TL Mini 8ight, stock, 2S
  Send a message via AIM to Thirdgen89GTA  
Reply With Quote