Archive for August, 2008

How Does GameVee Grab Work?

Once in a while I come across a technological achievement that makes me wonder, “How the heck did they do that?” GameVee, essentially YouTube for video game videos, now offers a video-capturing service called Grab. Grab exists to automatically capture videos from Halo 3 on Xbox Live and drop them into your GameVee profile, ready to be watched by friends and foes. While YouTube requires users to upload videos from their computers, Grab fully automates the process by reaching into your Halo 3 File Share and capturing your desired video on the server-side, producing a relatively high-quality capture, requiring only a little patience on the part of the user:

Here’s what makes me wonder, though: Halo 3 has no programming interface for accomplishing this feat, nor does Bungie.net, or the Xbox 360 itself. Halo 3’s videos are completely walled off to other computers and automation, requiring button pressing and reading to navigate to videos in players’ shares. Josh Lowensohn over at Cnet talked with the creator and CEO of GameVee, and he was very secretive about the details of how their system works, which makes me all the more curious. While I have no further details on how GameVee manages to automate the Halo 3 video-capturing process, I have an idea as to how I’d go about it…

  • Imaginary Setup
    It’s reasonable to expect that Grab isn’t doing something wildly complicated and impractical like capturing and decrypting Xbox Live packets and rendering videos on a computer other than an Xbox 360. Plus, the tail end of their captured videos also show the Halo video controller — a telltale sign that it’s just a computer capturing the video coming out of an Xbox. Starting with a regular desktop PC, a capture card or box would be required to get video input, and some kind of USB controller to send controls to the Xbox 360. Sending “spoofed” controller button-presses to an Xbox 360 console shouldn’t be terribly hard with a little USB controller work, but getting a computer to “understand” what’s happening in-game is a much larger hurdle.
  • Software
    If Grab is in fact automated — it could very well just be some guy downloading and capturing videos all day long — the key piece is going to be the software that keeps track of what the Xbox is doing, when a video is done playing, how it’s responding to button presses, etc. Machine vision is a rather complicated endeavor for a project like Grab, but it’s certainly seems within the realm of possibility. Another tactic might be to process only the audio coming from the Xbox, and “listen” for responses to button presses in the menu interface, and to wait for game audio to subside to flag the end of a video. Both are rather fragile, though — any abnormality in the flow could completely confuse the software, leaving a capturing PC stuck until an operator can clear the problem and reset the software.

However GameVee designed Grab, it seems to be working fairly well for them. What are your thoughts on how they might have accomplished something of this magnitude?

MacBook Pro Insomnia

For the past several weeks, my MacBook Pro had been occasionally waking up during periods where it was expected to be in sleep mode. Even with the lid closed, it would briefly wake up, illuminate the screen and Apple logo, then fall back asleep moments later. Seemingly random, it would sometimes happen only once every other day, and other times it would happen sequentially with only seconds in between cycles. I had no idea if the issue was hardware or software, but it didn’t seem major enough to warrant an AppleCare call.

A quick trip to the Console application in the Applications > Utilities folder reported dozens of instances of “USB caused wake event (EHCI)”, which gave me some initial Google hits. The obvious answer is that a USB device was waking up the computer, however I rarely had USB hardware plugged in when the random awakenings were occurring.

As it turns out, others have had this problem before. As indicated in the previous links, Mac OS X keeps its power schedule inside /Library/Preferences/SystemConfiguration/com.apple.AutoWake.plist, but this file didn’t exist for me, apparently “confusing” Mac OS X. Without it, it would exhibit the symptoms I was encountering.

Following suggestions, I opened System Preferences > Energy Saver > Schedule, where you can schedule system sleeps and wakes. By toggling on a scheduled wake, clicking OK, then disabling it, the com.apple.AutoWake.plist was re-created, and left with no scheduled sleeps or wakes. So far, this has cured my MacBook Pro’s insomnia!