Wise on Tech Hacks, scripts and ideas for the refined geek.

14May/101

Windows 7 Media Center + Extender vs. Mac OS X + AppleTV = not a fair fight.

I am a long-time Apple TV user, stubbornly making Apple's "hobby" useful in my home theater with an array of hacks and community developments -- despite their efforts to keep it locked up. I found that, once hacked, it was the most flexible and elegant thing out there for getting my media from my computer to my TV. With Windows 7, and my unabashed enthusiasm for it, I decided to give Windows Media Center another try. What I discovered puts my hard-hacked Apple TV solution to shame...

OS X + AppleTV

To start with, the Apple TV is a good iTunes Store device. If you're happy consuming only the content Apple offers through their store, and want a way to get it on your TV, its a good solution.
No one gets all their content through iTunes, though, so enter the Patchstick. With it you can unlock Apple TV's OS X potential, allowing SMB or AFS file sharing with your computer, run an app called Sapphire to put a pretty face on your media library, and even install Boxee to get access to a number of additional Internet-delivered content providers.

Hacked, the Apple TV is a very useful device, and as long as you don't mind trailing Apple's updates by a couple weeks to a couple months, using it along-side a Mac and an iPhone/iPod touch its a elegant and cohesive solution -- most of the time. Add an Airport Express or two in some other rooms, and you have a whole-home music and video set-up.

The biggest complaint I had is that the FrontRow experience pales compared to the Apple TV. In our set-up the computer doubled as the bedroom media center, and while it was nice that both the home theater and our bedroom could share the same media, the experience lost cohesiveness at the computer...

On the Mac -- the more powerful device -- we'd frequently be switching between FrontRow, the Finder and iTunes to manage content. I couldn't imagine using a Mac as a home-theater-only device; you constantly need to pick up the keyboard and mouse. The Mac itself was essentially unaware of the AppleTV, save for syncing content. And FrontRow is essentially unaware of the iTunes Store. Its like Apple isn't really sure where an actual computer fits into the scenario.
I used a Rube-Goldberg device of RSS > Google Reader > Google Reader Notifier > Transmission BitTorrent client to get my subscription-delivered content -- a fragile chain that broke not infrequently -- and an AppleScript scheduled via iCal to keep the file system clear of stale content.

Updates on the Apple TV became a management nightmare -- the device is under-powered to begin with, so every couple months it would need a wipe and restore. When that happens, expect to carve out a couple hours to get the hacks back into place. On top of that, the stinking device doesn't have an On/Off switch, so I had to co-ordinate timers and CRON jobs to keep it healthy and prevent it from sucking through my power bill.

Don't get me wrong. Its workable. Its lightyears ahead of what your cable company offers. And it is pretty slick when its all working - no one can accuse Apple of making ugly UIs. It looks good. If you already have a Mac, you can pick up an AppleTV for pretty cheap, and get started at a reasonably low cost. But since you can't do much without hacking, this isn't a solution I'd expect my parents to use.

WMC 7 + XBox Media Center Extender

The reason I've stayed away from Windows Media Center, and its Extenders, in the past, is that I'd constantly hit a brick wall trying to use content not natively supported. It felt cludgy, and its use of what was essentially Remote Desktop Protocol just seemed like a half-hearted attempt.

A lot has changed in Windows 7. It natively supports MP4, and DivX AVIs, so right out of the box it plays almost anything you throw at it -- no hacking needed. Its still pretty much RDP under the hood, but that technology has matured to the point where you don't even notice it any more. In fact, because it ensures a consistent experience between the Extender and the PC, its actually a good thing.

The approach is different than the Apple TV -- the Extender is a function of the computer. While the AppleTV can do things that FrontRow can't do, in the Microsoft scenario, the Extender is somewhat dumb. Turns out, this is fine. I expect my PC to be more powerful than my TV. But there's not a whole lot of compromise. Some of the Extras don't appear on my TV, and a few menu options are left out when shown on the Extender. Otherwise, the experience is the same.

The two most important things about Windows Media Center are that it's consistent across devices, and it's extensible across devices:

  • It's so consistent that I can pause a movie downstairs on the big TV, go upstairs and resume the show where I left off from the bedroom.
  • It's so extensible that I don't have to hack it to add plug-ins, or new functionality -- I just run an installer on my PC, and both it, and my Extender device are instantly upgraded.

A low-end XBox costs less than an Apple TV, is way more powerful and responsive, has an Off switch, and oh ya... it plays great games too. Everything "just works" together: you plug it in, follow a pairing process no more complicated than the Apple TV requires, and within seconds all your content -- regardless of source -- is available. There are dozens of online content providers built right into Windows Media Center, and others can be added on simply by even a novice computer user.

I use a uTorrent on the PC with the RSS functionality built-in for my subscribed content, which shows up in the "Pictures + Videos" section of WMC instantly. And best of all, I put the keyboard and mouse away, because I can do pretty much all common media management tasks on the PC right from my remote.

Not a Fair Fight

Apple really only has their toes in the water here, and Microsoft has been working up to Windows 7 for quite awhile. But while Apple has the iTunes Store and the devices, Microsoft's only real asset in this arena is the XBox. Apple could, if they chose, offer a cohesive PC/TV/Mobile media acquisition and consumption strategy, but I think they're genuinely unsure of where the computer should fit into the picture -- they prefer a locked-down environment, but a full computer gives the user more control than they're comfortable with -- so they've moved timidly into the living room.

Microsoft has chosen a more open path, with any number of Extender devices, (you don't have to buy an XBox -- other devices will do the same job) a broader array of native media types, and extensibility offered to other content providers besides their own store. Windows 7 is really good, and Windows 7 Media Center trumps everything else out there, hands down.

Full Disclosure

Despite being a Microsoft employee, my job has nothing to do with Windows Media Center or XBox. Aside from employee pricing in the company store, there's no perk for me to use the Microsoft offering over anyone elses, and no job expectation that I will do so. I choose freely what technology goes into my home, and I have a very heterogenerous network, with Macs, PCs and other devices playing happily on my WiFi -- check out my tag cloud: I like Apple stuff!

For a long time I stuck with the Apple TV because, once hacked, it was the best solution out there -- regardless of who I work for. That is no longer the case. Windows Media Center 7 with an Extender is a better, more elegant, more flexible and more cohesive solution. Don't believe me? Try it out -- I think you'll see, as I did, that in this round, Windows is the clear winner.

4Apr/084

HD Video – A Primer

This weekend I spent an exorbitant amount of time trying to deal with HD video in the same way I manage my digitized DVD collection. By that I mean, attempting to figure out how to get ripped HD movies into a format that I can play over my network, with the XBox 360, the Mac in our room and a PC as the target players. Things have not gone well, and while some people may have worked out a system they can live with, I've not found a solution that can be applied efficiently enough to make it worth the effort. Nonetheless, I'll document what I've learned, in case its useful to anyone. There is no new information here -- all of it is on the web somewhere -- I'm just hoping to pull it into a coherent form...

MPEG4

For starters, high def content is invariably distributed in MPEG4-10 format. The different ways it can be bundled into a file will be discussed later on, but its important to first understand that not all MPEG4 is created equal.

MPEG4-2, or Part 2, is very common, and not really suitable for HD content. DivX and XVid are both implementations of MPEG4-2. DivX is MPEG4-2 with a couple extra features added. XVid is an independent re-implementation of DivX that, while usually compatible, is definitely a different beast. A player with DivX stamped on it can probably play any MPEG4-2 content, and probably play any XVid content. In cannot, however play MPEG4-10 content.

MPEG4-10, or Part 10, is relatively new and most commonly known as H.264. Its based on the same technology as its older cousin, but includes improvements to color handling, and allows higher quality content at lower bit rates.

Bit Rate: Loosely defined, the Bit Rate is the number of bits of data that go into showing 1 second of video. The higher the bit rate, the more information making up the image you see on the screen. Higher bit rates = better quality video.

H.264 can do better picture, with less artifacting, and less "chunkiness" (if you don't know what I mean by chunkiness, watch a dark scene in any DivX movie) at a lower bit rate. A 2GB MPEG4-10 video will look better than a 4GB MPEG4-2 video.

Containers

All video, regardless of the codec (be it MPEG2, MPEG4-2, H.264, etc...) is typically distributed inside a container, bundling up the video track with an audio track, and possibly other features such as alternate audio tracks (containing a different language) or subtitles. Wikipedia has a good entry comparing the different container formats, but here are the common ones you'll see for HD Video:

Quicktime (.MOV)
Quicktime is an incredibly flexible container that can hold virtually any collection of files, by using plug-in codec support. A .MOV container can hold an H.264 video track plus a DTS 5.1 surround sound audio track without any problem.

Limitations: There's not many devices with full Quicktime support. Basically you're stuck with something from Apple. The XBox does have basic support for .MOV containers, but doesn't have the ability to plug-in codecs to extend its limited offering.

Windows Media File (.WMV)
Windows Media is actually very fully featured, with support for containing high bit-rate HD video and audio tracks with 5.1 surround sound.

Limitations: Its a fantastic format, despite being from Microsoft, but there aren't many devices that support it, and I frankly hate Windows Media Player. You'll rarely find any content distributed in a WMV container.

MP4 (.MP4)
By far the most popular, and infuriatingly limited container for H.264 (MPEG4-10). Do not confuse "MPEG4" for "MP4" -- one is the video track, one is the container it travels in. MP4 supports H.264 video at all bit rates (but not all bit rates can be played on all devices, read about levels here) and can hold an AAC-LC audio track (probably more than one.) But herein lies the biggest problem with MP4: AAC-LC means "Low Complexity" or in other words "no digital surround sound." You can encode Dolby Pro Logic II into the stereo track and thus get surround sound that way, but it won't be DTS and it'll basically suck.

Matroska (.MKV)
The Matroska container is the most common one you'll see -- both from ripped optical media, such as Bluray or HD-DVD discs, and online. Its very flexible, and can hold super high bit-rate H.264 video tracks as well as multiple audio tracks, including DTS (Digital Theater Surround).

Limitations: Apparently its a poorly defined standard and there are lots of different interpretations on how to implement it. No OS or media player software supports Matroska out-of-the-box. Few set-top devices can support Matroska. The XBox 360 does not.

Useage

None of these containers formats are really mature enough to be considered ready for consumer use. Different devices can handle different containers -- but each with restrictions on what's inside the container. Here's a list of what the XBox 360 can handle.
The best standardized container, MP4, is missing a pretty critical piece of the home theater puzzle: digital surround sound. This is not a new feature here, folks. It needs to be supported for MP4 to be useful. The other containers, which do support surround sound, are either too proprietary or too disorganized to be useful yet.

If you were to obtain a MKV file with HD video inside (H.264) and a surround sound audio track, and you wanted to play it on your XBox, you'd basically have two choices on how to proceed:

Extraction and Re-bundling
Using an array of poorly-made tools and hacks available online, which I won't cover here out of disdain for them and the hours of time I wasted on them, you can extract both the H264 video stream and the AC3 (digital surround sound) audio track into separate files. Then you can modify them to be playable on your target device, and re-contain them in a supported container.

For example, you could drop the bit rate on the H264 stream down to at least level 4.1, outputting it to a new, slightly more compressed, but certainly still "Hi-Def" file. Then you could pare the audio track down to Stereo, with Dolby PL2 intact. Finally you could combine the two files together into an .MP4 container and play them on your XBox 360, PS3, etc...

A friend claims to have this process down to a few clicks done in less than 10 minutes (he says 6 minutes or less, but I'll chalk that up to bragging.) Using a Mac with Windows running in a VM, then later, after much frustration and waiting, using a well-equipped physical Windows PC after sneaker-netting the files, I was unable to complete all the steps of the process after 5 hours. The "software" is buggy, has poorly documented dependencies and 0 troubleshooting information if anything goes wrong.
My friend calls this operator error and says I'm technologically inept. I call it really bad software being used to do something it wasn't really intended for. I finally gave up.

Down-sampling
The less attractive, but much easier option, is to simply down-sample the whole contained file into a MPEG4-2/DivX file. If you have a Matroska file, you might still want to do some conversion first -- Quicktime Pro can 'Save As' a MKV file into a MOV in a couple seconds.

From there, many mature applications, like Handbrake or FFMPEGx on the Mac, will be able to convert the whole thing into something playable for you. It may take some time, and you'll want to compress at a high bit-rate to keep as much of the video quality as possible (and don't fool yourself -- you will loose quality), but it'll be a usable, decent-looking file that can play on a wide-range of devices, AND it can contain DTS 5.1 audio.

Conclusions

HD Video is the biggest screw-up in consumer technology history. We've been waiting for this for years... Waiting while they sort out 720p, 1080i, or 1080p as the resolution we're supposed to buy. Waiting while the cable companies struggle to get a trickle of 720p content to our sets (then screw their customers around trying to save money on it.) Waiting while big companies publically fight over which optical format we're supposed to go out and re-buy all our movies on...

In fact, "HD" video (eg: 1080p) describes only the resolution. You can have a 268kbps bit-rate video in 1920x1080 and call it "HD" if you want. It'll look like crap, but it'll be big!

Learning about the different container formats and how they're still a fractured mess of incompatible technologies only makes me angrier. Here I stand, ready to jump on the Hi-Def band wagon, with my brand-new TV, my brand-new XBox 360, cash in my hand... and the only reasonable and affordable way to get HD content is the now-defunct $50 HD-DVD add-on player I bought on clearance.
Bluray is ridiculously expensive. No one offers 1080p downloads or subscription content. Even the pirate world can't figure out how to distribute content playable on any common device...

Its a disaster. I spent the better part of a day trying to make it useful, and I've decided that, for now, I'll be storing my content in high bit-rate DivX with my surround sound intact, thank you very much. I'll re-visit this again sometime in 2009, and hope they've got their crap together...

Anyone have any corrections to this, or suggestions to make this space more understandable and usable?

  • Update: Gizmodo has a great article with more details on this topic.
29Feb/080

Bought an HD-DVD Player

So I bought an HD-DVD player. I know, I know, HD-DVD lost the war, stopped production and all the movie studios dropped out, but... it was $50, came with 6 free movies (5 of them after a mail-in), the remote control for the XBox360, and it functions as a bootable USB optical drive for most computers. How could I say no?

Seriously though, I will go Blu eventually, but right now the players cost way too much, the spec implementation hasn't matured, and neither of those huge problems is looking to be solved this year. I'm frankly surprised and dismayed that HD-DVD lost. Every decision Toshiba made was pro-consumer: they drove the price down fast, they had a solid and stable spec, they had good hardware from good partners, and... well, they're not Sony.

At any rate, I'll enjoy my 6 HD movies, and maybe pick up a couple more when the media goes on clearance, just to tide me over until Blu-ray gets affordable and functional. Personally I'm a big supporter of VoD, having had good experiences with iTunes and the XBox Live Marketplace, but realistically downloaded "HD" isn't quite as nice as what comes off a physical disc -- not yet anyway.

8Jan/085

XBox360 + Connect360 + Linksys WRT54g (firmware hacked)

Nullriver's Connect360 is a fantastic little app that you can run on your Mac that will fool your XBox 360 into thinking its talking to a PC, allowing you to share your iTunes, iPhoto and video libraries with the 360 dashboard. The video transcoding is a little lossy, but for SD applications it works exactly as advertised. Well worth the $20 they're asking.

According to the Connect360 Support website, you can't use Connect360 on your Mac to connect to your XBox 360 if your network uses a Linksys WRT54g with homebrew firmware on it. They're right -- it doesn't work.

The solution is pretty simple, however. Abstract the Mac and the XBox from the router using a good* network switch. The switch will allow the two devices to communicate (via broadcast) with each other without having to go through the router, and all will work as expected.

*Note: The Connect360 site also warns that some switches may cause a similar problem. I'm using a NetGear Gigabit Switch to accomplish this, and it works perfectly. YMMV.