Apr 04 2008

HD Video - A Primer

Published by Jonathan Wise under Articles

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 1920×1080 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?

4 responses so far

Mar 07 2008

Possibly the most elite home network ever…

Published by Jonathan Wise under Articles, Toys

Once we move back to Ontario, I’ll be working from a home office. Add that to the fact that we’re not using anything more than basic cable, but digital distribution (both the paid and the found-automatically-on-the-internet-and-you-can’t-convince-me-I-shouldn’t-have-it kind) for our entertainment, and I think I have some unusual problems to solve. Here’s what I’m dealing with:

  • I want a reliable and dedicated “business” connection with no WiFi access so that my company’s source code is secure.
  • But I want access to my stuff from my iPhone and my Craptop, and visitors and passers-by should have free access to Internet, because that’s the spirit of the thing, but they shouldn’t have fee access to my files and documents, so I want both a secure and an open WiFi network.
  • The XBox 360’s method of getting shared content is incredibly noisy and resistant to QoS. The sharing program, in my case Connect360, uses broadcast messages to toss bits all over the network. The only way I’ve found to ensure Quality on this is to have a dedicated network just for sharing between the computer and the XBox.
  • My media is going to be stored in different places depending on primary usage. High quality movie rips (legally obtained, of course) shouldn’t be transcoded by Connect360. Daily TV downloads and recordings using EyeTV (and can be transcoded since they’re already pretty low quality), MP3s and Photos will be frequently revolved and updated and should be managed from a PC (manually, or by script.) All of these files need to be available from anywhere in the house.

The solution to all of these problems can be seen in this diagram (click for a larger version):

As you can see, there will be no less than 3 individual networks, with bridge points between each, where appropriate.

  • The green network represents the dedicated XBox network, allowing us to stream content from a PC regardless of the activity of other devices. We’ll open it up for free WiFi since there’s really nothing accessible on that network, but QoS all other devices as low priority.
  • The blue network is the primary home network, your typical file/print sharing setup. Living on that network is a sweet little LaCie Mini NAS drive, which will share all our high quality movies and will also have a direct USB connection to HDTV via the XBox to avoid transcoding. Other media: recordings, downloads, MP3s and photos will be shared from the home Mac to all devices over this pipe. Two touch points in the home office will allow me to listen to my music while I’m at work, and sync my calendars and e-mail with the home Mac.
  • Both the blue and the green network will be coming off a standard home Cable Internet connection, but each router will have its own public IP.
  • The purple network is a dedicated 7+ MBPS DSL connection (shooting for 10MBPS, but we’ll see what’s available) used only for connecting my home office to the Internet. It will have no wireless connection, and won’t leave my office in any way. The Blue network connection into the home office will be firewalled and won’t be set-up for Internet — SMB file sharing only, but if something goes wrong with my DSL, I can re-configure for Cable over the blue network and still do my job. The purple network will allow communication between my work computers, both of them running Synergy so I only need one keyboard and mouse. And the little iMac will by my jukebox/Photoshop/personal mail rig.
  • The two work computers will run up to 4 Virtual Machines each, but my primary VMs (represented by the monitors — and yes I’ll have 4!) will be: an e-mail/IM computer for connecting to work, a development workstation with occasional VPN access to sync source code, and a test server and client — more added as my current project dictates.

    My newest work computer will be running Microsoft’s new Windows Server 2008 with Hyper-V virtualization, allowing incredible performance of the Guest machines.

  • Any capable device can also get VPN access from any network, since its secure by nature, but only 3 machines will be configured to do it most of the time. My touch points with the physical office will be fairly limited, since I’ll be able to have local VMs of current server builds that I’ll refresh whenever I’m in the office for meetings.

I think that’s ambitious enough… but if you have a better home network, or ideas to improve this, I’d love to hear about them!

5 responses so far

Feb 29 2008

Bought an HD-DVD Player

Published by Jonathan Wise under Toys

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.

No responses yet

Feb 23 2008

Windows Media Sharing is a Disaster!

Published by Jonathan Wise under Reviews

What a horrible mess!
I’m trying to setup a VM to share my media with my XBox, so I’ve got Windows Media Center 2005 running smoothly, all updated in VMWare. Then I try to connect the XBox… So far I’ve discovered that:

  • Just because you can connect long enough to pair the XBox with Windows doesn’t mean Windows can share with it. I’ve had no luck getting past the initial setup.
  • If you want to skip the Media Center Extender, you’ll need upgrade to WMP 11
  • Even with that, you can’t share video. You also need to install the crashy Zune software and re-add your media library to it.
  • None of the above matters because none of it will work unless you have “Windows Certified” router.

On my Mac I have one app for music (iTunes), one for photos (iPhoto), and a folder for video. Connect360 knows all of them, because the APIs are standard across the platform, so it can share all of them with ONE click after the 30 second install.

Windows is a steaming pile of poo at sharing media…

Update: Some progress — it turns out Media Center Extenders use some derivation of Terminal Services, so if you don’t have that service, plus Fast User Switching, enabled, it will refuse to work (and also refuse to tell you why)

Update 2: Finally got it to browse my videos. Unfortunately, Media Center doesn’t use the same set of codecs as WMP. I’m not prepared to put another n hours into figuring out how to get codec support into Media Center. Screw this Windows crap, I’m going back to my transcoded Mac solution…

No responses yet

Jan 08 2008

XBox360 + Connect360 + Linksys WRT54g (firmware hacked)

Published by Jonathan Wise under Hacks, Reviews

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.

3 responses so far