Monday, March 16, 2009

Streaming Videos With pyTivo vs Wii

Since CBS Channel 2 OTA reception is pretty much non-existant, I have been downloading shows from the internet (mostly from isohunt) and watching them on the Wii from the 2G SD card. This does, however, require the Wii Homebrew Channel and a Wii version of mplayer. While it does allow me to watch these shows on my TV, it is, to say the least, inconvenient to constantly take the card upstairs to the computer, and wait for the insanely slow transfers to the SD card.

Luckily I inadvertently discovered another solution.

I hit Circuit City the day before they closed for good, and they had a HD-TiVo--floor model including everything but the power cord--for $150. It was, obviously, quite hard to pass up. And to make it even better, it rang up as $120.

So the Samsung box is gone, and all TV is now OTA HD thru the Tivo. As an extra bonus, the TiVo has two ATSC tuners; the single antenna feed is split internally. So we can now record two shows at once! Granted, it is not often that we find two shows that we want to record simultaneously (especially now that I've gotten rid of the DirecTV), but it certainly is a nice feature. Maybe I'll actually start to watch American Idol now. Or not.

I had saved a number of kids shows from DirecTV that I wanted to transfer to the new TiVo, and while the transfers started out OK(1), they are not grouped. After a bit of googling, I discovered that Tivo uses a seriesID, not the show title, to identify and group shows. And the seriesID has to be in the guide data as well. So, since the shows are from channels I no longer receive, I have no way to group the transfered shows. Short of hacking into the thing and perhaps messing with the guide data.

Which brings me to pyTivo. While looking for a non-grouping solution, I stumbled upon a little app called pyTivo. This handy little program, which runs on Linux, Mac, MSWindows, Solaris, and even the Linksys NSLU2 NAS device, allows you to "stream" (see below) videos on your computer to your Tivo.

It is basically a better version of the Tivo Desktop, allowing a much wider range of formats to be viewed on your TV with your Tivo. The best thing about pyTivo is that "it just works." I am running Mandriva cooker, and once I installed ffmpeg (plf version), I started pyTivo, then went down to my living room, pulled up the Now Playing List on the Tivo, and there was my computer share! I was able to browse all my movies, ripped DVDs, etc.

pyTivo will simply transfer mpeg2 compliant videos to the Tivo, and, with ffmpeg, will transcode (nearly) all other formats into a Tivo compatible format before transferring. I say nearly, because ffmpeg has some issues with MKV files. I only got a portion of the video, and even less of the sound on the converted 720p MKV of The Dark Knight. I've only been able to watch that on my computer. I couldn't even burn it to a DVD (again, a ffmpeg issue).

Other than that, movies transfer and play perfectly! It is also nice because I have been making backup rips of the DVDs the kids watch a lot, and I now have a way to easily watch them. Which means I can pack up the DVDs somewhere where prying little hands can't scratch them or throw them across the room. And I can skip the previews & FBI warning taboot!

A couple of notes about "streaming": In order to watch a remote show on the Tivo, you need to transfer the show to the Tivo. You can not just select a remote program and click on Play. However, Tivo does allow you to start viewing immediately. Over my G-band network, shows and DVD rips are transferring quickly enough that I can start viewing immediately, tho I recommend starting the transfer, going to get a glass of water, wine, or whiskey, and then sitting down to watch. Higher definition movies do require a couple of minutes of cache time. Also, the CPU speed of your computer will affect transcoding time of any videos that need to be converted for the Tivo. I have a AMD dual core 5500+, so I don't have too many concerns there.

Also, Tivo places transferring videos in its to-do list, which means that you can't start watching one remote movie, then change your mind and start watching something else. If you change your mind, you need to cancel the transfer, then start the transfer of the new video.

While I have not tried them out, pyTivo also allows you to view pitures and listen to music located on your local network.

There is also a pretty web interface for pyTivo, accessible at http://localhost:9032/ which allows you to add shares (video, picture, or music), change settings, aspect ratio of your TV, etc. Most people will only need to add and remove shares.



Overall, pyTivo is a very handy little application. It has pretty much negated my need to build a home-theater PC with MythTV. (Not that I don't still WANT to....)


(1) My series 2 Tivo appears to have died during the transfers. It was working OK, but now it won't even boot up. I don't know if it was just this Tivo's time to die, or if it had something to do with the transfer process.