Okay, apologies as this is long read but I wanted to share some thoughts and my experiences in setting up a Mac Mini as a media centre...
Background
I was using a WD MyBookWorld NAS for storing my movie collection. This was accessed using WD TV media streamers around the house as well as apps on my MacBook Pro ad iPad/iPhone and a jailbroken Apple TV 2 with XBMC. The media server on the WD NAS was limited in the sense it was an outdated version that wasn't readily upgradeable without a bit of hacking not to mention not offering up the media in a well structured and presented fashion.
I also have an Apple TV 3 hooked up to my main TV and plugged into my Pioneer receiver for audio that I could stream my iTunes library from my iPad or iPhone.
This whole set up did not offer a consistent experience and required more media hardware than was really necessary i.e. in the Livingroom, the Samsung Smart TV could not stream all media content from the NAS so I required an additional media streamer (WD TV) as well as an Apple TV for audio to the receiver.
I figured a media server could act both as the server and media streamer and offer up much more functionality on top.
Hardware choice and why
I've been a Mac user for about 1.5 years now and really enjoy the experience so looked at the Mac Mini as the perfect box to act as my media centre. Looking at the options available the current generation (late 2012) i5 model seemed like the perfect choice. The i5 2.5Ghz model is plenty powerful for my software requirements and given this is going to be running as a server with several applications running, it is an easy and cheap machine to upgrade the RAM on. Integrated graphics is not a concern for me as all software being utilised is pretty much cpu dependant. USB 3 is a real asset on this machine since I will be using this as my NAS and storing all my media on a 2TB USB 3.0 drive. Key data is stored on both this external drive and on the internal drive so I will always have a backup of important files - something that was not as easy to manage on the WD NAS. While USB 3.0 is not a requirement for simple media streaming - USB 2.0 is certainly fast enough - the extra speed is welcome when adding new media and for backing up data. If you are planning on streaming multiple files concurrently from an external drive though, the USB 3.0 will be the better option over USB 2.0.
Finally the Mac Mini is a gorgeous looking unit - much better than any other set top boxes I have used which is important because this will be in situ in the Livingroom.
Final hardware choice is a late 2012 Mac Mini 2.5Ghz i5 with 500GB HD and 8GB RAM. WD USB 3.0 2TB external Drive.
This Mac mini is running connected via HDMI to my Samsung LED, Audio Out (TOSLink) to my Pioneer receiver & Ethernet to my router. No input devices connected.
Upgrading
Knowing that the 2.5Ghz i5 cpu is way more than adequate for the needs of this machine, the only two components to consider upgrading are RAM and hard drive. The machine ships with 4GB RAM as standard but I think an upgrade to 8GB is recommended due to the plan to run several pieces of software concurrently on a continual basis. While I could get by with 4GB RAM, I think 8GB is the sweet spot. 16GB RAM is overkill for the intended purpose of this machine unless you are intending to transcode stream multiple movie files concurrently and if so, opting for the more expensive quad core i7 cpu would also be advisable.
While I have an SSD in my MacBook Pro, I decided against the need to upgrade the mini to a SSD drive. More storage space is more important than speed in this case and given most of the data being accessed will be via an external drive, the SSD benefits will rarely be seen. Also, this machine will be running continually and not starting up and shutting down on a regular basis and all apps will already be running so it's not like I will ever be waiting on the machine as such.
Software used
Media Software
Plex Media Server & Plex Client
Probably no surprise to everyone out there but I decided to go with Plex for my core media server software. This is an awesome application that is easy to set up and is proving very reliable. It also offers up that consistent experience across all clients that I was after with regards to the media I will be using. A great way to present your media and it handles all the metadata for the media with aplomb.
iTunes
All my audio is stored in iTunes and with it always running, I can use the free app on my iPad/iPhone to wake the Mac Mini and play and control music from iTunes directly through the Pioneer receiver without ever turning on the TV.
User Interfacing
RowMote app for iPhone & Ipad.
Because I am running the Mac Mini on it's own without any keyboard, mouse or trackpad attached, I did consider getting a wireless/bluetooth media keyboard to control things. I found this RowMote software and thought I would give it a try and I have never looked back - in a word it is awesome. This gives you a trackpad on screen to control the cursor but what really excels here is you can use pinch to zoom to enlarge OSX on the TV screen to make it easy to see what you are doing from distance. It is simple to use and just works. You can also switch to the remote mode and use 'cursor' keys to navigate menus and bring up the keyboard to input text which also shows up on the iPhone/iPad screen to make it easier to see what is being typed. This app also features an app launcher so it is easy to start up or switch to apps that are currently running.
Finally, the icing on the cake with this app is a quick airplay feature. An example is if I am upstairs in the bedroom and the mac is downstairs sleeping, I can wake the Mac with this app and select airplay to my bedroom Apple TV. Now I have the mac awake and running on my bedroom TV to do any tasks without having to leave the room or even see the Mac screen to initiate Airplay. I'm a fan and really recommend this software to anyone using a Mac as a media centre.
Screen Sharing
Enabling Screen Sharing on the Mac mini lets me connect to it using my Macbook Pro to view the screen and work on it with the keyboard and trackpad. In the house, this gives the most natural computing method of interacting with the Mac Mini for doing tasks. Again, this lets me work on the Mac Mini from anywhere on my home network.
LogMeIn
For external remote access to the Mac Mini, I prefer this app than any other. I can use it at home on the iPad or iPhone for convenience but more importantly from outside of my network for example if I needed to do a task such as kick off a download when I was away on holiday or even just to log in from work on my lunch to do some maintenance, grab app updates in iTunes etc. There are many tools you can use but I think LogMeIn works the best and offers the most consistent experience across its web and IOS clients.
iTunes Wifi Sync
Instead of pulling out my Macbook Pro to update apps across the family's IOS devices, I can just do a single update on the Mac Mini and then use Wifi Sync on each device at their convenience to update apps, iTunes library etc.
Utility Software
Keyboard Maestro
For running commands or scripts on a specific trigger - see Challenges/Solutions.
Audio Switcher
Allows a quick way to change audio settings and for retaining the default sound output - see Challenges/Solutions.
Handbrake
For converting movie formats on the machine itself - not required for Plex as it plays just about anything but I like to maintain a consistent library format where possible.
Unarchiver
Handy app for extracting files from most archive formats.
NoIP
Free solution for maintaining an easy to use dns name instead of your external IP address provided by your ISP.
Configuration
The Mac Mini is just running standard OSX 10.8.2, not the server edition. I have iTunes, Plex Media Server, Keyboard maestro & Audio Switcher added to log in items.
The Mac is set to sleep after 20 mins of inactivity but I have wake on network access enabled. The Mac will wake if any Plex client contacts it or if you use RowMote, Apple Remote or screen sharing on another Mac to access it. Ultimately the Mac will stay in sleep but always wakes up on demand without any issues.
Mac is set to wake from sleep each morning at the same time for 20 minutes. The purpose for this is to update NoIP with the correct external IP address for my home network to ensure continuity of remote access. LogMeIn requires that your server be awake and I can wake remote using a WOL (Wake On Lan) tool or website. This is not required but handy if you plan on accessing your server remotely on a regular basis. It also means if NoIP was not functioning for some reason that I know at that time each day, I will still be able to access the server with LogMeIn as it will be awake at this time.
Mac is set to restart once a week in the energy saver preferences - not required but more of a case of weekly maintenance to keep things running fresh on the Mac - probably just a paranoia from my Windows days!
Finally I have drive and screen sharing enabled in settings so I can access the media drive or view the desktop on the Mac Mini from another computer.
Challenges/Solutions
While Sleep on the Mac is very reliable, some apps or the system in general does not always work as expected when the machine wakes and this caused me a few problems where Keyboard Maestro came to the rescue:
Plex client on the Mac for viewing movies etc. locally has a helper application that takes control of IR remote input from the likes of the aluminium Apple remote and other third party remotes and let's these apps control Plex from your armchair. After waking, this helper application losing exclusivity for the remote commands and now as well as controlling Plex, you will also be opening iTunes tracks, changing system volume etc. with the remote - not what you want. A simple shell script to kill and start up the helper application fixes this issue but I wanted to automate this process and this is where Keyboard Maestro comes in. This app has loads of functionality and one of them is to perform an action on a specific trigger. In this case, I have it set to run my shell script each time the Mac wakes up so the remote will only control Plex client as I intended. While there are other tools than can automate this, Keyboard Maestro is the most feature rich one that works every time without fail!
NoIP is a tool for maintaining an external DNS name for your home network so you can access your home network (and your Mac Mini) from the Internet - handy if your ISP doesn't provide a static IP address for you as this can change anytime although most likely if you reboot your router. While the likes of LogmeIn will work regardless of whether you know your external IP address, your Mac must be awake for you to be able to connect to it. you will need to know this external IP address to wake the Mac remotely to gain access using a WOL tool. The NoIP tool on your Mac updates the NoIP servers with your current external IP regularly at an interval that you set. The problem is this tool no longer updates when the Mac wakes from sleep. To counter this, I use Keyboard Maestro again to restart the NoIP tool each time the Mac wakes and NoIP can continue to do its job!
I have my Mac Mini connected to a Pioneer amp using the digital out connection and this is used almost 100% of the time i.e. when watching movies or listening to music. The issue I faced is the Mac can only use a single audio output at a time and sometimes switches this depending on what is trying to use the audio e.g. it may switch to HDMI out via the TV or using the LogMeIn audio output driver for audio over remote sessions - not something I ever need. While this is easily changed back in audio settings, it is still a short coming in OSX and should not happen as well just being plain inconvenient. Audio Switcher is a free app that sits in your menu bar and gives a quick way to switch audio settings. More importantly for me, it lets you select a default audio input & output and as long as it is running, it will ensure they settings are maintained. Because this app runs at login, my audio is now always running through the digital output and never switches unless I manually tell it to.
Final Thoughts
The goal was to create a more consistent experience and gain more functionality at the same time. Using the Mac Mini as my NAS / media server I have achieved just that. In my livingroom I have gone from a NAS, Media Streamer & Apple TV to a single Mac Mini that does it all. With its 4 USB 3.0 ports, the Mini also lends itself to being an easily expandable NAS thanks to being easy to fit external drives and it still has two internal 2.5" drive bays if required. While the Mac Mini is already a fairly low power user, setting up the Mac Mini to wake on network access lets you set an aggressive sleep timer knowing that it will still wake on demand without issue and of course when running, it is completely silent. Finally, with Plex having so many clients available as well as being so easy to configure and use it was the obvious choice as the media server. It runs great on the Mac Mini and I can easily stream a couple of 1080p movies through the house without it skipping a beat. I have a Plex client built into my bedroom Samsung TV and got a cheap Roku with added Plex client for the spare room TV. The whole set up is pretty seamless.
Background
I was using a WD MyBookWorld NAS for storing my movie collection. This was accessed using WD TV media streamers around the house as well as apps on my MacBook Pro ad iPad/iPhone and a jailbroken Apple TV 2 with XBMC. The media server on the WD NAS was limited in the sense it was an outdated version that wasn't readily upgradeable without a bit of hacking not to mention not offering up the media in a well structured and presented fashion.
I also have an Apple TV 3 hooked up to my main TV and plugged into my Pioneer receiver for audio that I could stream my iTunes library from my iPad or iPhone.
This whole set up did not offer a consistent experience and required more media hardware than was really necessary i.e. in the Livingroom, the Samsung Smart TV could not stream all media content from the NAS so I required an additional media streamer (WD TV) as well as an Apple TV for audio to the receiver.
I figured a media server could act both as the server and media streamer and offer up much more functionality on top.
Hardware choice and why
I've been a Mac user for about 1.5 years now and really enjoy the experience so looked at the Mac Mini as the perfect box to act as my media centre. Looking at the options available the current generation (late 2012) i5 model seemed like the perfect choice. The i5 2.5Ghz model is plenty powerful for my software requirements and given this is going to be running as a server with several applications running, it is an easy and cheap machine to upgrade the RAM on. Integrated graphics is not a concern for me as all software being utilised is pretty much cpu dependant. USB 3 is a real asset on this machine since I will be using this as my NAS and storing all my media on a 2TB USB 3.0 drive. Key data is stored on both this external drive and on the internal drive so I will always have a backup of important files - something that was not as easy to manage on the WD NAS. While USB 3.0 is not a requirement for simple media streaming - USB 2.0 is certainly fast enough - the extra speed is welcome when adding new media and for backing up data. If you are planning on streaming multiple files concurrently from an external drive though, the USB 3.0 will be the better option over USB 2.0.
Finally the Mac Mini is a gorgeous looking unit - much better than any other set top boxes I have used which is important because this will be in situ in the Livingroom.
Final hardware choice is a late 2012 Mac Mini 2.5Ghz i5 with 500GB HD and 8GB RAM. WD USB 3.0 2TB external Drive.
This Mac mini is running connected via HDMI to my Samsung LED, Audio Out (TOSLink) to my Pioneer receiver & Ethernet to my router. No input devices connected.
Upgrading
Knowing that the 2.5Ghz i5 cpu is way more than adequate for the needs of this machine, the only two components to consider upgrading are RAM and hard drive. The machine ships with 4GB RAM as standard but I think an upgrade to 8GB is recommended due to the plan to run several pieces of software concurrently on a continual basis. While I could get by with 4GB RAM, I think 8GB is the sweet spot. 16GB RAM is overkill for the intended purpose of this machine unless you are intending to transcode stream multiple movie files concurrently and if so, opting for the more expensive quad core i7 cpu would also be advisable.
While I have an SSD in my MacBook Pro, I decided against the need to upgrade the mini to a SSD drive. More storage space is more important than speed in this case and given most of the data being accessed will be via an external drive, the SSD benefits will rarely be seen. Also, this machine will be running continually and not starting up and shutting down on a regular basis and all apps will already be running so it's not like I will ever be waiting on the machine as such.
Software used
Media Software
Plex Media Server & Plex Client
Probably no surprise to everyone out there but I decided to go with Plex for my core media server software. This is an awesome application that is easy to set up and is proving very reliable. It also offers up that consistent experience across all clients that I was after with regards to the media I will be using. A great way to present your media and it handles all the metadata for the media with aplomb.
iTunes
All my audio is stored in iTunes and with it always running, I can use the free app on my iPad/iPhone to wake the Mac Mini and play and control music from iTunes directly through the Pioneer receiver without ever turning on the TV.
User Interfacing
RowMote app for iPhone & Ipad.
Because I am running the Mac Mini on it's own without any keyboard, mouse or trackpad attached, I did consider getting a wireless/bluetooth media keyboard to control things. I found this RowMote software and thought I would give it a try and I have never looked back - in a word it is awesome. This gives you a trackpad on screen to control the cursor but what really excels here is you can use pinch to zoom to enlarge OSX on the TV screen to make it easy to see what you are doing from distance. It is simple to use and just works. You can also switch to the remote mode and use 'cursor' keys to navigate menus and bring up the keyboard to input text which also shows up on the iPhone/iPad screen to make it easier to see what is being typed. This app also features an app launcher so it is easy to start up or switch to apps that are currently running.
Finally, the icing on the cake with this app is a quick airplay feature. An example is if I am upstairs in the bedroom and the mac is downstairs sleeping, I can wake the Mac with this app and select airplay to my bedroom Apple TV. Now I have the mac awake and running on my bedroom TV to do any tasks without having to leave the room or even see the Mac screen to initiate Airplay. I'm a fan and really recommend this software to anyone using a Mac as a media centre.
Screen Sharing
Enabling Screen Sharing on the Mac mini lets me connect to it using my Macbook Pro to view the screen and work on it with the keyboard and trackpad. In the house, this gives the most natural computing method of interacting with the Mac Mini for doing tasks. Again, this lets me work on the Mac Mini from anywhere on my home network.
LogMeIn
For external remote access to the Mac Mini, I prefer this app than any other. I can use it at home on the iPad or iPhone for convenience but more importantly from outside of my network for example if I needed to do a task such as kick off a download when I was away on holiday or even just to log in from work on my lunch to do some maintenance, grab app updates in iTunes etc. There are many tools you can use but I think LogMeIn works the best and offers the most consistent experience across its web and IOS clients.
iTunes Wifi Sync
Instead of pulling out my Macbook Pro to update apps across the family's IOS devices, I can just do a single update on the Mac Mini and then use Wifi Sync on each device at their convenience to update apps, iTunes library etc.
Utility Software
Keyboard Maestro
For running commands or scripts on a specific trigger - see Challenges/Solutions.
Audio Switcher
Allows a quick way to change audio settings and for retaining the default sound output - see Challenges/Solutions.
Handbrake
For converting movie formats on the machine itself - not required for Plex as it plays just about anything but I like to maintain a consistent library format where possible.
Unarchiver
Handy app for extracting files from most archive formats.
NoIP
Free solution for maintaining an easy to use dns name instead of your external IP address provided by your ISP.
Configuration
The Mac Mini is just running standard OSX 10.8.2, not the server edition. I have iTunes, Plex Media Server, Keyboard maestro & Audio Switcher added to log in items.
The Mac is set to sleep after 20 mins of inactivity but I have wake on network access enabled. The Mac will wake if any Plex client contacts it or if you use RowMote, Apple Remote or screen sharing on another Mac to access it. Ultimately the Mac will stay in sleep but always wakes up on demand without any issues.
Mac is set to wake from sleep each morning at the same time for 20 minutes. The purpose for this is to update NoIP with the correct external IP address for my home network to ensure continuity of remote access. LogMeIn requires that your server be awake and I can wake remote using a WOL (Wake On Lan) tool or website. This is not required but handy if you plan on accessing your server remotely on a regular basis. It also means if NoIP was not functioning for some reason that I know at that time each day, I will still be able to access the server with LogMeIn as it will be awake at this time.
Mac is set to restart once a week in the energy saver preferences - not required but more of a case of weekly maintenance to keep things running fresh on the Mac - probably just a paranoia from my Windows days!
Finally I have drive and screen sharing enabled in settings so I can access the media drive or view the desktop on the Mac Mini from another computer.
Challenges/Solutions
While Sleep on the Mac is very reliable, some apps or the system in general does not always work as expected when the machine wakes and this caused me a few problems where Keyboard Maestro came to the rescue:
Plex client on the Mac for viewing movies etc. locally has a helper application that takes control of IR remote input from the likes of the aluminium Apple remote and other third party remotes and let's these apps control Plex from your armchair. After waking, this helper application losing exclusivity for the remote commands and now as well as controlling Plex, you will also be opening iTunes tracks, changing system volume etc. with the remote - not what you want. A simple shell script to kill and start up the helper application fixes this issue but I wanted to automate this process and this is where Keyboard Maestro comes in. This app has loads of functionality and one of them is to perform an action on a specific trigger. In this case, I have it set to run my shell script each time the Mac wakes up so the remote will only control Plex client as I intended. While there are other tools than can automate this, Keyboard Maestro is the most feature rich one that works every time without fail!
NoIP is a tool for maintaining an external DNS name for your home network so you can access your home network (and your Mac Mini) from the Internet - handy if your ISP doesn't provide a static IP address for you as this can change anytime although most likely if you reboot your router. While the likes of LogmeIn will work regardless of whether you know your external IP address, your Mac must be awake for you to be able to connect to it. you will need to know this external IP address to wake the Mac remotely to gain access using a WOL tool. The NoIP tool on your Mac updates the NoIP servers with your current external IP regularly at an interval that you set. The problem is this tool no longer updates when the Mac wakes from sleep. To counter this, I use Keyboard Maestro again to restart the NoIP tool each time the Mac wakes and NoIP can continue to do its job!
I have my Mac Mini connected to a Pioneer amp using the digital out connection and this is used almost 100% of the time i.e. when watching movies or listening to music. The issue I faced is the Mac can only use a single audio output at a time and sometimes switches this depending on what is trying to use the audio e.g. it may switch to HDMI out via the TV or using the LogMeIn audio output driver for audio over remote sessions - not something I ever need. While this is easily changed back in audio settings, it is still a short coming in OSX and should not happen as well just being plain inconvenient. Audio Switcher is a free app that sits in your menu bar and gives a quick way to switch audio settings. More importantly for me, it lets you select a default audio input & output and as long as it is running, it will ensure they settings are maintained. Because this app runs at login, my audio is now always running through the digital output and never switches unless I manually tell it to.
Final Thoughts
The goal was to create a more consistent experience and gain more functionality at the same time. Using the Mac Mini as my NAS / media server I have achieved just that. In my livingroom I have gone from a NAS, Media Streamer & Apple TV to a single Mac Mini that does it all. With its 4 USB 3.0 ports, the Mini also lends itself to being an easily expandable NAS thanks to being easy to fit external drives and it still has two internal 2.5" drive bays if required. While the Mac Mini is already a fairly low power user, setting up the Mac Mini to wake on network access lets you set an aggressive sleep timer knowing that it will still wake on demand without issue and of course when running, it is completely silent. Finally, with Plex having so many clients available as well as being so easy to configure and use it was the obvious choice as the media server. It runs great on the Mac Mini and I can easily stream a couple of 1080p movies through the house without it skipping a beat. I have a Plex client built into my bedroom Samsung TV and got a cheap Roku with added Plex client for the spare room TV. The whole set up is pretty seamless.