Wednesday, August 8, 2007

TiVo Video and togo

I have two TiVos and a file server running Solaris at home. I also have a Linux server running VMware with XPpro in it. Finally I have a PPC Mac running OSX 10.4 Tiger. That should cover the gaumet 'eh? Oh, I have Gigabit ethernet (it's not that expensive anymore!). If only the TiVo wasn't limited to USB 2.0 10/100 adapters. I get 60MB/s between the Linux and Solaris box.

Transfer
To get the .TiVos to the file server I got TiVo desktop for Windows. It really only goes to local disk; mapped drives not allowed. I tried the Macintosh version but it doesn't transfer! TiVo says buy Toast to get what's free on Windows.

I have Galleon installed on Solaris. It was much easier (really) then the Linux install I used to use. The gui to select transfers is *slowwww*. It works well enough for auto transfers though. It's a Java app and works on all OSen. Development has finally been picked up so maybe it will get faster.

I also tried using a web browser directly. That worked as long as I did one at a time & didn't switch away. Definitely single threaded.

I bought Toast. It's slower (hours, days) then the PC version, but it works on a mapped drive. And it's faster then Galleon.

Burning
At first, I got Sonic MyDVD as recommended by TiVo. Ugh. Crashes consistantly. So I bought Nero.

Nero had issued burning directly to a DVD, but going to an .nrg file worked well enough. An update from Nero fixed that. Nero would always rencode so it was slow. Finally it didn't handle .TiVo. I needed to transcode to mpg. See below.

I then bought Toast on the Mac. That works well! Transcoding, etc. Ideally I could go to an ISO file so I could burn on any system, but they have a .toast format. Maybe some digging through the docs.

Ideally, I want to create ISO files that can be burned on any of my OSen. Toast will work though.

Transcoding
I mentioned that Nero wouldn't do .TiVo right? Luckily there are various ways of transcoding to .mpg.

TiVo Desktop has a .dll that works with DirectShow on windows so Windows Media Player can view the videos. There is a kludge that will let you use the DirectShow stuff to transcode & demux, etc. It's a tedious GUI that should be automated.

DirectShowDump is a nice GUI tool that will let you point at multiple .TiVo files and turn them into .mpg

Someone created tivodecode that does the job on the command line. It's GPL code and has been ported to Windows, MacOSX, Linux and any POSIX system. An easy compile runs it on Solaris. Now it can be batched. On the Mac, there are a few GUI wrappers that will download and transcode.

GoBack
Ok, I've got all these .TiVo and .mpg files on my file server. How can I pull them back to the TiVo like I do the multi room viewing?

Tivo Desktop will serve .TiVo files up. Did I mention that it doesn't do mapped drives?

The Mac version will work.

Galleon will do it with .TiVo and .mpg files in the proper format. mpg files don't have the meta data with the description; you only get a filename to describe an mpg.

Recent versions of the TiVo OS will not deal with subfolders. Everything in 1 directory. That doesn't scale well and I divvy'd up my shows so I can't use anything above because they show up as 1 TiVo.

pyTivo to the rescue. It lets you setup multiple shares. I serve up each subfolder as a share. I see a TiVo as Good_Eats and that's my Good Eats subfolder. It was easy to get going on the Solaris box, but it should run everywhere Python and ffmpeg can run. Oh, pyTivo will also convert files to .mpg the tivo can understand, on the fly. As long as ffmpeg can transcode it. Fantastic. I have run into issues with mp4 and avi files but that might be because the Solaris box doesn't have the codecs. I might need to go to Linux.

Commercials
There are a few apps out there that will let you cut up .avi or mpg files. avidemux will search for blank frames that broadcasters are required to put between commercials and shows. ffmpeg will transcode from mpg to avi:
ffmpeg -i file -target ntsc-dvd -b 2500 -s 352x480 -hq -ab 160 file.mpg
There's still a large, tedious process for cutting.

cbreak is a windows .NET app that is supposed to do it automatically. There's even a batch file that'll convert .mpg with ffmpeg.exe 1st. It's drag & drop. Perfect. Except the resulting file isn't .TiVo compatible. My Solaris ffmpeg can't convert the avi either. Displaying it via pyTivo locks up the TiVo too!

There are commercial apps out there like VideoReDo that automate much of it. MythTV has skipping built in, but I don't know if it can be used as a filter.

No comments: