Jump to content

My Hackintosh AppleTV HTPC


29 posts in this topic

Recommended Posts

Hackintosh HTPC - The Next Generation!


So, following on from my old HTPC thread, recent developments with AppleTV etc have spurned me on to bigger and better things with regards my plans for HTPC niceness using Apple's solutions.


The aims:


- Playback of Movies, TV Shows, Music and Photos - preferably streamed from a centralised server


- (Scheduled) Recording of TV programmes


- DVD playback


- All from the Apple Remote



Overview of my solution:


- Server sits in cupboard, downloading video content, converting to MPEG4 / AAC and adding to local iTunes


- HTPC runs AppleTV OS and streams content from Server


- HTPC also runs DVD Player.app and EyeTV


- All controlled from the Apple Remote, thanks to twistedmelon.com's Mira software and Manta TR1 dongle



The hardware:




- JVC Widescreen (16:9) Standard Def TV - SCART/S-Video/Composite inputs only :rolleyes:


- CoolerMaster Cavalier 4 (CAV-T04-UWA) Silver HTPC case


- ECS 915GM mobo [intel 915, GMA900, ALC665 audio, Gigabit LAN all working]


- Seagate 160Gb 5400rpm SATA2 HDD


- IDE DVD / CDRW Combo drive


- Intel Celeron D 3.06Ghz (SSE3)


- 2Gb DDR333 RAM (1Gb + 512Mb + 256Mb + 256Mb - whatever I had lying around :dev:)


- External VGA-> S-Video/Composite + Flicker Fixer (capable of 1024x768)


- Freecom USB DVB-T Stick (EyeTV compatible)


- Manta TR-1 USB IR dongle from twistedmelon.com


- 802.11g wifi card





- Pentium 3 733Mhz


- 256Mb RAM


- 4Gb boot drive + 420Gb for data storage (160+160+100) - all IDE


- PCI SATA card for future expansion


- 802.11g wifi card




The software:




- JaS 10.4.7 (the newer kernels break sleep/wake on this machine)


- Apple's AppleTV OS (thanks to DiaboliK's Front Row Replacement package)


- Elgato's EyeTV 2.4


- Apple's DVD Player.app


- BHolland's IR remote emulation software, combined with some Mira-driven applescripts





- Windows XP SP2 (only because this machine has no SSE2 to run OS X)


- iTunes for Windows


- iPodifier


- Azuerus



The Hows, Whys and Wherefores:


Ok, so the whole HTPC thing is something i've been looking into for quite some time - before the OSx86 project even existed. Basically, I want to be able to download content (all free-to-distribute films and shows, obviously) from the internet, and somehow have a nice way to view that content on the living room TV. I also want to be able to record TV shows, preferably in a scheduled way (ie program it to record a show next week, and not have to remember when its on) and watch DVDs.


I've looked into various Windows-based solutions, and been frustrated with basically all of them. The critical point is the streaming - I want the media to be stored on a machine I can leave on 24/7 - this means hiding it under the stairs or in the garage. I also want to be able to stream to anywhere in the house - to my MacBook Pro, to my PC in the bedroom, or to the HTPC hooked to the TV in the living room. Every time I have tried this in the past i've ended up giving up because of jumpy, crappy video playback. I had almost given up hope, thinking that I needed 802.11n for this to be feasible.


However, I have learned a lot and am now proud to say I have my dream solution, and its all working over 'crappy old' 802.11g.


The hacking of the AppleTV software was the main driver for me to revisit this, and I must say i'm very glad I did.





The server machine, outlined above, is running in the cupboard under the stairs, completely headless. Its job is threefold:


1) To act as a central repository for content.


2) To download new content.


3) To convert downloaded content into a format suitable for serving to the rest of the network, and automatically add it to the pool of available content.



The HTPC machine lives in the living room, connected to a TV. Its job is threefold:


1) Display content on demand on the TV


2) Record TV programmes to hard disk


3) Playback DVDs






- Content downloading aka Codec hell


- Streaming over 802.11g


- Backup / redundancy


- Switching between apps



1. Codec Hell


Content, by and large, is easy to come by. However, when you're dealing with content derived from internet sources such as torrent sites, you're at the mercy of whoever encoded it in the first place. Thanks to the way AVI acts as a container for Video and Audio codecs, and thanks to the bewildering array of such codecs out there, chances are that out of any 10 videos you download, only a couple of them will use the same combination of video and audio codecs.


Back in the days when I was still trying to do this stuff in Windows, I was installing codecs until I was blue in the face, only to discover that one particular movie or other would behave strangely - either colours would be wrong, or it would play too slowly, or the audio wouldnt sync, or the video would be upside down (!) or a myriad other problems.


I distinctly remember coming up with an 'Install Plan' for my HTPC which detailed three different versions of DivX, some versions of XviD, some other codec packs, utilities and tweaks, all to be installed in a particular and very precise order, to stop them breaking each other. I also remember that that approach only fixed it for only most - not all - of my content. There had to be a better way.


Wanting to move to an iTunes-based solution made me realise i'd need to bite the bullet and convert all my existing content to a standard format. This turned out to be the best idea I could have had, as it removed, in one fell swoop, the need for all these damn codecs, and gave me just one format to concentrate on. So I grabbed a copy of iSquint and set about converting everything to glorious H.264...


...Quack quack oops. H.264 needs significant CPU resources and time to encode. I had something in the order of a couple hundred gigs of video I wanted to convert, and while my Pentium D920 2.8Ghz hackintosh is no slouch, I did want to get it all done this century. So I opted instead for the crappier quality (but significantly faster to encode) MPEG4 option. I figured once you're viewing it on the TV, you're not going to notice. Well, I probably wont. I'm not an AV nut - I dont really care about uber-high quality, I just want to enjoy the movie. For audio I standardised on 128kbps AAC.


To automate the conversion of new content on my new media server, I have iPodifier set up to monitor two directories - one for incoming Movies, and one for incoming TV Shows. I get Azuerus to dump whatever i'm downloading into the relevant directory. iPodifier takes care of the rest - it picks up the video, converts to MPEG4 (or optionally H.264) and adds the converted video to the local iTunes library. Supersweet!



2) 802.11g Streaming


None of my content stutters or breaks while streaming to AppleTV running on the HTPC, even while the server machine is downloading at full pelt, and the CPU and disks are busy converting incoming video to MPEG4. Nothing i've tried before has managed it even when the CPU and network were otherwise idle. Nuff sed really - just amazing.



3) Backup / Redundancy


I had considered making the server machine use RAID-5 for redundancy. But I dont have any spare HDD space to sacrifice just now. The drives are all fairly new, and I wouldnt put anything on there that I couldnt replace. I may, however, revisit this in the future - either with Windows software RAID, or a PCI card.



4) Switching between AppleTV / DVD Player / EyeTV


Mira provides a nice, big, configurable menu which can be invoked with the menu button. I have it set up to give Front Row (really AppleTV), DVD Player and EyeTV options. All three apps are configured (in Mira) to quit if I hold down Menu. Thus, if I want to change app, I hold down menu to get back to desktop, click Menu once again, and select the relevant option.



Current Problems / Limitations / Issues / Ideas


There is very little thats 'wrong' with my setup, but here's my small list:


- the Mira applescripts cannot handle 'holding down' the up or down keys to scroll through a long list of movies - so that has to be done by repeat-clicking, which is a pain.


- cant wake the machine from sleep with the remote (no biggie - just hit the power button).


- the only audio out port which is working on the HTPC is on the front-panel. I need to figure out how to change it to work with the rear output, otherwise i have to keep plugging a long audio cable into the front every time I use the machine (my current workaround).


- I may think about removing the 'Quit' option from the appletv menu and installing the application launcher menu plugin to launch dvd player and eyetv that way. Not sure how that will compare to my current setup - I guess it'll be nicer cos it'll all be in the one interface.... hmmm.....


Other than that, this is killer-super-sweet. If I was doing it with a mac server and a real Mac Mini, it'd be even easier / better.


Anyone got any comments / thoughts?

Link to comment
Share on other sites

All I can say is WOW! That is quiet a accomplishment. As far as the Front Audio thing goes, you could solder the wire from the front audio port to another female audio port which is let out through the back.


1) Get a audio cable with Female Headphone port

2) Remove other end of wire

3) Solder wires (of above said audio cable) to appropriate parts of the front panel port

4) Put wire through computer and take it out a back hole in chassis

5) Enjoy


Low Level fix but will not need any programming/hacking knowledge.

Link to comment
Share on other sites

Great set-up!

What wifi card are you using?

I have converted movies on my main machine and moved them to HTPC´s iTunes. Without wifi it is a real pain in the arse to move new movies - I have to burn DVDs. And what about your key presets in Mira for EyeTV? Have the same problem while navigating the ATV menus, it looks like there is no solution at the moment.

Link to comment
Share on other sites

hey there - thanks for the kind words :)


U.C. : I already sourced a minijack (headphone) socket and will dig out my soldering iron sometime soon ;)


aed: wifi card - cant remember, but i have to use some third party ralink driver thingy. might swap it for my netgear in my main hackintosh which is detected as Airport.


key presets in Eyetv - i downloaded them from the mira forums, here: http://in.mypocket.com/index.php?showtopic=1255&hl=EyeTV


hope this helps :D



Update on the setup: iPodifier is having a few little issues.... annoyingly, it cant handle subdirectories, and a lot of torrents create subdirs (if there was a directory in the original torrent, i mean) when downloaded. im going to have to look into automating this somehow... maybe an azureus plugin to run a script on torrent completion? anyone have any ideas?


Also, iPodifier doesnt seem to have an option to delete the source video once its been converted, so I guess clearing out my incoming torrent directories is going to be manual for now.

Link to comment
Share on other sites

ok, im a moron - ipodifier does indeed have an option to delete after encoding.


weird thing is, most of the files i encode wont seem to stream to the appletv... i just get an empty progress bar. i wonder if its because i dont have the latest itunes installed on the appletv machine? i dont suppose a real appletv has itunes on there, but it probably has quicktime codecs etc which are installed with itunes7. will try that later.

Link to comment
Share on other sites

Thx for the link. The problem with EyeTV is completely solved and now I don´t need mouse. Everything is done via apple remote.

The only inconvenience I´m facing is that when OS X starts, the default position of a mouse pointer is the top left corner and when for example Media Central is started the bar and pointer is visible. It happens with most full screen applications. The only solution I found at the moment is to program one of Apple remote´s buttons to move mouse pointer down (Universal Access) when in Finder, but of course I´d like it to move automatically at startup. Anybody has any proposal for that?

Link to comment
Share on other sites

solution for you:


install this http://osaxen.com/files/xtool1.1.html


then make an applescript which does this:


set ScreenWidth to item 1 of (screen resolution)

set ScreenHeight to item 2 of (screen resolution)

move mouse {ScreenWidth/2, ScreenHeight/2}


save that applescript as an application, and set it as a login item.


i havent tried this btw, but let me know how you get on :)


also - i tried installing appletv on my MBP, which has the latest iTunes installed. the videos which failed to stream to the HTPC streamed fine to the MBP, so i guess installing latest iTunes on the HTPC will solve this problem.


just thought i'd note that for anyone else thinking of building their own AppleTV.

Link to comment
Share on other sites



i have another problem. i installed iTunes 7.1.1 (the latest) and some of my videos still arent streaming to the HTPC machine, which is running 10.4.7. they stream fine to my MBP which is running 10.4.9.


but the htpc machine isnt able to sleep and wake reliably under any build other than 10.4.7. dammit!


i guess there must be some framework or quicktime component missing from 10.4.7.... hmmmm......

Link to comment
Share on other sites

tried copying over everything i could find in /System/Library/Quicktime and /System/Library/Frameworks/QuickTime.framework... result: appletv still works as before, but no change with streaming those files... dammit!

Link to comment
Share on other sites

I dont really know how streaming works and all that stuff, but can you just mount the servers HDD on your mac, and play movies off it on VLC or something.

Link to comment
Share on other sites

tried copying over everything i could find in /System/Library/Quicktime and /System/Library/Frameworks/QuickTime.framework... result: appletv still works as before, but no change with streaming those files... dammit!

It seems I have the same problem on 10.4.8 . Some videos are not streamed.

Link to comment
Share on other sites

im going to see if i still have the appletvos DMG lying around and see if i can glean whats on there.


maybe it needs some 10.4.9 kext or framework...


aed: do you have a real intel mac you can test with also? so far, all my videos stream correctly to my MacBook Pro (10.4.9 _+ latest updates). please post any findings here - i will do likewise.

Link to comment
Share on other sites

LOL... ok so I solved the 'mystery'... and it has NOTHING to do with some mysterious framework from 10.4.9....


I realised the other main difference between my MBP and my HTPC is that on my MBP I installed the latest Perian beta.


The software im using to transcode the videos (iPodifier) appears not to touch the audio stream, so I guess some files just dont have AppleTV-compatible audio streams. Not compatible, that is, until you install Perian 1.0 Beta 4.


(I'd post a link but they politely ask people not to do so. However, googling for 'perian beta' will get you there :thumbsup_anim:)


My HTPC now streams all my media without problems :thumbsup_anim:

Link to comment
Share on other sites

Interesting setup.


I just put together a MacBook without a screen as my HTPC.

Connected to a Sony Wega tube via S-video and using an optical cable for the audio.

I still haven't had time to get Front Row 2.0 to work on it.


My previous 1.25 eMac just didn't cut it on H.264, MKV and mp4 files.

Link to comment
Share on other sites

Ehh I just use a hacked AppleTV with a external 1TB formated NAS attached directly to my router.


With NinoTV, ATVFiles, and automount I've got everything I need (AC3 passthough on avi files, can play VOBS/ISO's etc all over a wireless connection (802.11N). Works great!


I was having issues when I had the storage localy on my PC (since it was wireless from my pc ->router and wireless from router->atv) but breaking down and buying a NAS helped tons and everything ugly is hidden :-p

Link to comment
Share on other sites

  • 1 month later...

im ditching this setup in favour of a modded xbox with xbmc. the htpc machine is now going to run MythTV (tho possibly in a VM thru parallels).


why? well, the external VGA->TV thing never gave me decent video playback (it always seemed bizarrely jerky).


that and the xbox has a decent frontend, and is frankly more advanced than the appletv frontend (eg tv shows by season number anyone? hello? apple??)

Link to comment
Share on other sites


  • Create New...