Part 2. Servers and Work Flow
To start out, there are two servers. The servers are the heart of the whole operation. They store the video files, convert them, transcode them on the fly, and serve them up to the client devices like my laptop or the Xbox 360. I know I’m focusing on the videos right now; they’re actually the hardest to get to play right. The music and photos are generally much easier to do. Once we get the videos working, the same servers will generally handle the music and pictures. In cases where it doesn’t, I’ll detail the setup of particular servers and whatnot for music and pictures. I’m a poor graduate student. I have to make do with what I have. I kid you not, I found a P4 PC with 1.25 GB RAM with optical drive outside by the garbage, just waiting for me to drop in the two 1 TB HDs I just happened to have laying around for the project. It’s served me well for over a year now. It’s been more stable than my Windows 7 PC, which I already had and was originally going to be my HTPC, but I like my current setup better. So now I had the best of both worlds: a FreeNAS server and a Windows 7 PC acting as server running at the same time without virtualization. Before going into the details of how I set all this up, let me tell you what it is I have running.
- uTorrent automatically downloads new TV shows for me based on RSS feeds.
- TheRenamer automatically renames them to episode number - episode title format and moves them to my FreeNAS box
- HD shows come as mkv files. To make them more device friendly, a batch script runs XenonMKV to convert the mkvs to Xbox 360 compatible mp4s, then deletes the original mkv, then moves the mp4 to the folder TheRenamer is watching. These files are also renamed nicely and moved to the FreeNAS box. Both the renamer and XenonMKV run on a schedule.
- On a schedule, a perl script runs that renames all *.mp4 TV shows to * [HD].mp4 so that I can more easily tell them from their SD counterparts when browsing them from my Xbox 360.
- On a schedule, TVersity updates its database of TV shows and movies (every 15 minutes). TVersity serves up the TV shows and movies to the Xbox 360 which feeds my projector and big screen. TVersity also feeds my Xbox 1 running XBMC on the bedroom TV.
- The shows and movies on the FreeNAS box are available on any laptop using SMB or AFP
- On a schedule, a batch file runs Handbrake, converting all new TV show & movie downloads to iPhone/Android G1 friendly format, then moves them to a folder set aside for portable videos.
- My Mac, over night, will check the folder for new files and copy them to itself, then import them into iTunes, which then syncs them with my iPhone. I still have to tell it that the files are TV shows or movies and add metadata. I’m working on this.
- Once the files are copied to my Mac, they are then moved to the “G1 Folder” so that the Mac won’t try to copy them over again.
- My wife can copy the files directly to her G1 and play them.
- PlayOn, running on the Windows Box feeds me Comedy Central, CBS, Hulu, Food Network, and so forth.
- PeerBlock protects my downloading activities from prying eyes uTorrent has a web based UI so I can check on and add and manage torrents from any computer on the network.
- I have Subsonic feeding music to my iPhone and my wife’s G1
- I have a Wii. It’s hooked up to the projector too though, so there’s no sense in running Orb right now, straining the Windows box further. Should I ever move the Wii to another room, I’ll set up Orb then. I don’t use a live TV tuner card, so there’s no need for Orb there either .
That’s the basic set up. Now on to how to do it. I’ll include my applescripts and Windows batch files and perl scripts as appropriate.