Mac Mini HTPC

Ranked #8,097 in Computers & Electronics, #159,849 overall

Create a Complete and Cutting Edge Media Center with your Mac Mini

With the switch to HDTV last summer, we decided it was time to upgrade our media experience. Our old system of rabbit ears and a VCR was not going to work out with an HD signal. After some research I learned that many are using the Mac Mini as a driver for their home theater setups, and it sounded great to me. My primary requirement is that it have a user-friendly experience that compares with traditional TV/VCR/Remote setups - I didn't want to be using a keyboard and mouse on my living room couch. The transition is now 80% done and I have chronicled my experience so far, including many useful resources I found helpful along the way.

You'll find how-to videos, reviews of PVR (personal video recorder) and other media-related software, discussion forums, and more. I'll also be learning the Mac OS in the process, so will probably include mac-specific content as well. Contributions of additional resources are welcome! This is a work in progress, and still in it's infancy.
The Mac Mini appeals for several reasons. It is possible, in theory, to use this one tiny computer to replace the functions of your VCR/DVR and DVD/CD Player. The Mac platform is stable thanks to it's UNIX roots.The new 2009 Mini's have plenty of horsepower to process the video, especially with an inexpensive RAM upgrade to 4GB (see the video below for more on that).

I am using iTunes for music on the mini, Plex for movies and video, and EyeTV for recording and watching live tv. My goal is to have one integrated application but right now I'm switching between these. The mac comes with FrontRow, but you'll see in some of the links below that Plex is widely regarded as superior. The main advantage to Plex is the stunning visual interface. But it takes some time to set up and load your files into the library. Go for the Aeon skin - it's very nice.

My HP MediaSmart Server provides storage for music, movies, TV shows and photos.
The network is mixed Wireless-N and -G. We have two HP Pavillion laptops running XP and Vista, respectively. The Mac Mini is set up in the living room and hooked up to my HDTV.

Next Steps:
- Purchase antenna for attic and run cable to an HDHomeRun device, which will convert the HD signal to ethernet and run through the wireless router to all nodes of the network.

- Refine remote control to really give full control of all menus in EyeTV and Plex.

- Research and implement optimal solution for playing recorded TV on bedroom tv.

Blogs and Editorial Content

Read about Mac Mini HTPC setups, get subjective insight and reviews and start to plan your setup.

You can get a good overview of how some people have been using the Mac Mini to drive their media systems by reading through blogs.These will give you the big picture of hardware and software options, along with some reviews and insight into the process. Learn what to expect and plan out your setup on these sites.
@ mr. Obsession
Great overview of plex, eyeTV, remote control options, HDHomeRun and more.
The Ultimate Mac Mini HTPC - Part 1: Media Center Software | Gamaze.com
Mattias Hansson reports his experience testing 4 different media center software options, and the leader is, ironically, MediaPortal, which runs on Windows XP in BootCamp on the Mac.
The Ultimate Mac Mini HTPC - Part 2: Installing MediaPortal using Apple Boot Camp | Gamaze.com
Part 2 covers how to install MediaPortal and BootCamp. I haven't tried it yet, instead opting to start out with learning the Mac platform.
MartList: Dummies Guide To Setting Up A Mac mini Home Theater
Short punch-list of important items you'll need to get your mini system working, including the hardware, cables, software and even free codec packages so you can play all video formats.
Build your own Mac mini Home Theater | Facebook
Get exclusive content and interact with Build your own Mac mini Home Theater right from Facebook. You don't have to have an account.

Forums

http://123macmini.com
http://macscripter.net

AppleScript

It's possible to use AppleScript to automate EyeTV functionality. For example, you can, in theory, create a script that automatically runs after a show is done recording, that exports the file into a specific format and saves it in another location on the computer. I have been trying to figure out how to do this and export the file to a folder on my HP MediaSmart Home Server, and these links are some of the references I have been using to work on this.
Triggered Scripts for EyeTV
Examples of triggered scripts that can be used with EyeTV
MacScripter Forums
Thread with an example script, but for some reason it is not working for me. I think because my path to the network drive is not formatted correctly.
AppleScript for exporting EyeTV using HandBrake
Another script example, this one uses HandBrake to decode the EyeTV file and export it. I haven't tried this one yet.
EyeTV Export with HandBrake Script
The script that ultimately worked for me was derived from this page. I just had to modify the target path to point to my network share. It took a few tries to get the path right: "/Volumes/RecordedTV/" did the trick.

Script to Export EyeTV recordings using HandBrake

Here is the script that I am currently using. It triggers when a recording finishes and encodes the file as an mp4. I find that it's working reasonably well, though the HandBrake process takes a long time and uses most of the CPU cycles.

property HANDBRAKE_CLI : "~/bin/HandBrakeCLI"
property HANDBRAKE_PARAMETERS : " -O -I -f mp4 -e x264 -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=1500:vbv-bufsize=2000:analyse=all:me=umh:subq=6:no-fast-pskip=1 -b 1000 -2 -T -E faac -B 128 -R 48 -A Deutsch -w 640"
property TARGET_PATH : "/Volumes/RecordedTV/"
property TARGET_TYPE : ".mp4"
property SOURCE_TYPE : ".mpg"
property SHELL_SCRIPT_SUFFIX : " > /dev/null 2>&1 & "

on RecordingDone(recordingID)
tell application "EyeTV"
set new_recording_id to (recordingID as integer)
set new_recording to recording id new_recording_id
my export_recording(new_recording)
end tell
end RecordingDone

on run
-- tell application "Finder"
-- open location "//Volumes/Bartholomew/RecordedTV/"
-- end tell

tell application "EyeTV"
set selected_recordings to selection of programs window
repeat with selected_recording in selected_recordings
my export_recording(selected_recording)
end repeat
end tell
end run

on export_recording(the_recording)
tell application "EyeTV"
set recording_location to location of the_recording as text
set AppleScript's text item delimiters to "."
set recording_path to text items 1 through -2 of recording_location as string
set AppleScript's text item delimiters to ""
set recording_path to POSIX path of recording_path
set input_file to my escape_path(recording_path & SOURCE_TYPE) as string
set output_file to my escape_path(TARGET_PATH & my get_recording_name(recording_location) & TARGET_TYPE) as string
set cmd to HANDBRAKE_CLI & " -i " & input_file & " -o " & output_file & HANDBRAKE_PARAMETERS & SHELL_SCRIPT_SUFFIX
do shell script "echo \"" & cmd & "\" > /Users/justin/shellscript.log"
do shell script cmd
end tell
end export_recording

on get_recording_name(recording_location)
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
set path_components to every text item of POSIX path of (recording_location as string)
set recording_folder to item -2 of path_components as string
set AppleScript's text item delimiters to ".eyetv"
set recording_name to first item of every text item of recording_folder
set AppleScript's text item delimiters to oldDelimiters
return recording_name
end get_recording_name

on escape_path(the_path)
set oldDelimiters to AppleScript's text item delimiters
set AppleScript's text item delimiters to "/"
set path_components to every text item of the_path
set AppleScript's text item delimiters to oldDelimiters
repeat with counter from 1 to count path_components
set path_component to item counter of path_components
set item counter of path_components to my escape_string(path_component)
end repeat
set AppleScript's text item delimiters to "/"
set the_path to path_components as string
set AppleScript's text item delimiters to oldDelimiters
return the_path
end escape_path

on escape_string(the_string)
set chars to every character of the_string
repeat with i from 1 to length of chars
if "!$&\"'*()/{[|;<>?` \\" contains (item i of chars as text) then
set item i of chars to "\\" & (item i of chars as text)
end if
end repeat
return every item of chars as string
end escape_string

New RSS: Add your blog

Loading

Essentials for your Setup

Loading

Video Tutorial: Upgrading RAM

Upgrade the RAM in your Mac Mini

This is an excellent instructional video that walks you through how to upgrade the RAM in your 2009 mini. This is a somewhat tricky operation that requires the use of a putty knife to open the case, but with this video you will know exactly what you need to do.
Loading

Plex

Plex Setup Video Part II
There is a free screencast on this site called "SCO0201 - Mac mini Media Center - Part 2 - Plex." Part I is also available but only for a fee.

New Guestbook

  • GetSillyProductions Feb 27, 2011 @ 4:28 pm | delete
    it's a lovely media centre, great tutorials on getting the content on it, good lens

New Featured Lenses

Loading

by

dubjbl

I fiddle with my home network a bit too much.

Feeling creative? Create a Lens!