The weekend isn’t even halfway over, and already I’ve achieved two significant project successes — or at least, I hope I have. (One of them has yet to be proven out). Since at least one of these has been something I’ve tried to achieve for a long time without any success, I thought I’d post how I got it done in case it helps others.
This is the one that I think others might be interested in. Here at home, we have a TiVo HD DVR that we use to record HD programming that we pick up from a Channel Master 4228HD over-the-air TV antenna. While this works a treat, the problem is that I don’t have a second TiVo HD in the game room upstairs and thus can’t watch my favorite shows like Fringe on my new plasma TV up there. However, I do have a perfectly competent PS3 Media Server running on my computer, and the plasma TV has a built-in DLNA client that can stream programs from my server with ease. Surely there’s a solution here somewhere.
TiVo records shows to MPEG-2 files that are encrypted using your TiVo Media Access Key (MAK). It’s a simple matter to decrypt these things, but that’s as far as I could ever get. Simply dropping the decrypted .mpg file into my PS3 Media Server folder doesn’t work; client players can never reliably play back the file. Either I’ll get picture with no audio, or sometimes nothing at all. Sometimes the video would play back on a computer, but I’d often have problems with the audio and video getting out of sync, especially if I fast-forward or rewind. I’ve tried free tool after free tool to convert these stupid things and I’d always get these same problems. I did manage to figure out that something about TiVo’s .mpg files isn’t exactly “industry standard”, in the sense that there is some incorrect, missing or misplaced information in them that causes video tools to choke or work improperly.
Well, recently I discovered a handy-dandly little Java program called kmttg. This program purports to be an all-in-one solution for copying, decoding, re-encoding and transferring TiVo files. Sounds great, I thought. kmttg is one of those great apps that amalgamizes several other tools and utilities to reach an end goal in an automated fashion, and best of all, it downloads and installs almost all of those tools for you without any manual intervention. So I set it up and unleashed it upon the first episode of Fringe’s fourth season, told it to convert to a nice .mp4 file with AAC audio, and hoped that this time I would get lucky.
I almost did. But those same dastardly problems with audio and A/V sync drift were cropping up again. The audio channels weren’t getting mapped properly — one of the surround channels ended up on the front left channel somehow — and the longer the video went on, the more out-of-sync it became. Furthermore, kmttg’s built-in commercial detection and removal features weren’t working either. If I tried to use them, I’d see a whole slew of error messages and wind up with a video that was maybe 5 or 6 minutes long. Unacceptable!
I started poking around Google and discovered a partial answer. There’s a video editing application for Windows called VideoReDo which, besides being a pretty competent scene editor, commercial remover and file converter, also happens to have a simple little tool built-in called “QuickStream Fix”. Running the QuickStream Fix on the decrypted TiVo .mpg file was what I needed to prevent the commercial detection and removal from failing. It also allowed the entire TiVo file to convert to an .mp4 in its entirety, no minutes lost. However, I was still getting issues with improper audio channels and A/V sync drift. Maddening!
To fix this, I decided to try using kmttg’s Handbrake encoding mode instead of ffmpeg encoding. You can do this within the kmttg GUI by simply opening the “Encoding Profile” dropdown and choosing any option that begins with “hb_” instead of “ff_”. Going even further than that, I discovered a pair of purpose-built Handbrake profiles for kmttg on the TiVo Community Forums, posted by a user named Shelleye. The profiles were written specifically with a 720p Roku box in mind, but the settings had been tweaked and tested for both HDTV and DVD sources and also downrezzed the video to 940 pixels in width, a sort of pseudo-HD that sounded like it would probably be a good quality/file size compromise. I decided to download them and give them a try.
So I loaded up the hb_roku_960_Detelecine profile into kmttg and turned it loose on the Fringe episode “Alone in the World”, and a while later (hey, I only have an Intel E6600 CPU here) I had myself a perfect .m4v file with flawless video and audio that streamed beautifully to my plasma TV upstairs. FINALLY! I guess the key here, for me, was using the Handbrake encoder instead of the ffmpeg encoder.
I’m now transferring the other Fringe episodes from my TiVo so that I can convert them as well. At long last, I’ll be able to catch up with this show on any TV (or computer) that I want. One of my personal favorite times to catch up on TV is at work, during my lunch hour. Everyone else in the office goes out to lunch every day, so I typically have the place to myself for an hour since I bring in my own lunch most days. Lately I’ve been watching the Lance Henriksen drama Millennium from Chris Carter, but if I can get my Fringe episodes sorted, I’ll switch over. I watched almost all of the first three Fringe seasons at the office during the summer, so it’ll be like old times.
This has been a long time coming, and now that I’ve got the proof-of-concept done, I’m thinking about converting all of the other crap I’ve got stashed on the TiVo so I have a better chance of actually getting through it. For pity’s sake, I’ve still got 16 episodes of the late, great Terminator: The Sarah Connor Chronicles that I never watched, plus The Walking Dead and who knows what else. Despite all of this, the TiVo’s still got about 150 GB free. In hindsight, installing that 1 TB drive was a seriously good idea.
Last week I mentioned how I discovered that one of my GTO’s reverse lamp globes had broken off of its mount. The globe was a captive assembly within the passenger side taillamp and was not accessible for proper repair, at least not without major taillamp surgery that I was unprepared and unwilling to undertake. However, there was just enough room to get a finger into the vacant light bulb socket and re-seat the globe. The problem was that the globe’s single mounting clip was broken. So I figured I’d try some Gorilla Glue in hopes of getting it to stay put, clip not withstanding.
Now that I know how to pop a taillight off of the GTO, removing it took all of about five seconds. I brought it into the house and applied Gorilla Super Glue to the rim of the globe, then turned the taillight assembly upside-down and pulled down hard on the globe to try and bond it to the socket. After about two minutes of this, I poured a little more glue directly into the broken clip in hopes of filling up the gap between it and its mounting screw.
Admittedly the Gorilla Super Glue isn’t waterproof and is not intended for outdoor applications, but given that no water should ever get into the taillamp anyway (if it does, you’ve got larger problems) and the regular Gorilla Glue didn’t have a precise enough tip for this kind of detail work, I thought I’d give the Super Glue a try. The thing I liked about the Gorilla Super Glue is that it contains rubber particles that supposedly provide some built-in shock absorption, which is exactly what I’m going to need in this application. Suffice it to say, I’ve got my fingers crossed on this.
So I’ve got the taillamp assembly sitting on my office desk now, where I’ve set up a makeshift prop system so that gravity can assist in keeping the globe rooted in place. The Super Glue stuff is supposed to be fully bonded in a matter of minutes, but I’m going to leave it overnight — although I did check it a little while ago and found that it feels pretty solid. I have a few errands to run tomorrow, so I’ll pop the taillight back in before I leave and take the GTO to see how it holds up. The worst that can happen is that the glue will fail, in which case I suppose I’ll try the regular Gorilla Glue — the waterproof, heavy-duty stuff.
And if that fails, I’ll have to suck it up and buy a new taillight. Sometime. (Like as soon as $260 lands in my lap.)
As you might have guessed, this is the success of the day that isn’t yet fully proven out. Frankly, I half expected not to have enough surface area to bond to, so in my estimation I’ve already come out ahead. I’ll report back after the road test.
Edit: Apparently all those hours I once spent watching Forensic Files were for naught, because I forgot that superglue fumes will solidify and adhere to surfaces. Forensic scientists sometimes use this technique to reveal fingerprints on irregular surfaces. Well, by propping my taillight up on a towel and thereby cutting off most of the airflow in and out of that globe, much of the inner chrome surface of the lens has fogged over from the fumes. It’s not a total disaster — and it would wipe off with a finger, if I could actually get a finger in there — but I wish I’d remembered this a few hours ago.
Ah well — the outer lens itself is still perfectly clear, and the slightly-fogged chrome almost has a kind of pewter appearance!
Edit 2 (11/13/2011): Just got back from a few hours of errand-running and the GTO’s newly-repaired reverse light is holding up perfectly so far. Plus, the fogged chrome is barely noticeable from the outside. Looks like this fix was a win.