Since returning to GRR, I’ve let the Mac Pro run overnight, downloading 30-some WWDC 2008 videos, which just became available on Friday. At an average of 500 MB each, I’m probably burning through 15 GB of data, which means that under some bandwidth-rationing regimes, I’d be closing in on a bandwidth cap. I ranted about this before, but this is a textbook case of why the US’ broadband oligopoly is going to hurt the country in the long run: somewhere out there, there’s an iPhone developer on Comcast or AT&T who can’t get needed iPhone development info because he or she has hit an arbitrary bandwidth cap. American developers are at a disadvantage, relative to the rest of the world, thanks to the crooked arrangement of just having one or two providers (if any) in a given area, enjoying a government-protected monopoly while not being expected to provide any specific level of service.
We don’t have a single provider taking care of everyone in the public interest, nor do we enjoy the benefits of genuine competition. What we’ve got is good old fashioned US-style cronyism, something that will only get worse as the government frantically borrows more money (WTF?) to buy more of the private economy (WTF?)
Having said that… why the heck are all these videos a half gig anyways?
If you look at the previous years’ WWDC videos or similar ADC on iTunes content (Leopard Tech Talks, for example), you’ll notice that by and large, the video portion of the file is just the slides. Except for the transitions and any demos, the video portion of the presentation doesn’t move. Yet if you zoom in on the text, you’ll see a little bit of an artifact that jumps every second or so as it hits a keyframe, meaning this non-moving content has been encoded as if it were natural, moving video.
And it’s a massive waste of bandwidth. Since QuickTime supports variable frame rates, you could have a single frame (i.e., a slide) that stays up for 10 or 20 or 60 seconds, and only need the data for that frame once. Then for the next slide, you’d only need one sample, however long it is. There are slideshow-movie-maker examples for QuickTime that do exactly this (I think I even did one in QTJ a long time ago, but it’s not in the book [should have been] and I don’t know where I posted it, if I did). I suspect you could do the slides with a lossless codec, like PNG or even Animation (which is just RLE), and still get a huge space saving over the current process of re-encoding that keyframe every second, and providing B-frames (deltas) that don’t convey any information because the image doesn’t actually change.
In fact, you could still use natural video for your demos by simply having a second video track that would contain samples only for those times when you’re actually doing video. Moral of story: QuickTime creative abilities remain freaking awesome.
So why not do this? Well, obviously, the videos need to be playable on iPods and iPhones, which only support H.264 (though I’d be interested to know if H.264 can do variable frame rates… I assume it can’t, at least not in the Low Complexity profile, but it’d be a real nice feature for exactly this kind of thing). You could use the variable length samples in production — drop some PNGs on a video track in your Final Cut timeline and stretch their durations and you’re doing exactly that — but once you export, you’ll get the same constant-frame-rate H.264 that you would if you were exporting your kids’ Halloween videos. Alas.