Using a Hauppauge PVR-150 to capture OTA DTV
This is a very long entry. I hope it is valuable to someone.
So, this whole digital tv switchover has caused me to do some work. I'm one of the few people left that doesn't have cable or satellite and still relies on over-the-air tv. I have a couple of PVRs: a ReplayTV 2000 and a computer system I set up with a Hauppauge PVR-150 tv capture card. I don't use the latter in the traditional PVR way. I don't have that computer hooked up to a monitor or a tv. I access it with VNC and simply record shows onto a drive that is shared across our LAN. Amanda and I watch the recordings on our computers.
So this presented a problem, since the PVR-150 only records analog. It works quite well, since there is on-board hardware support for the digital conversion. It doesn't take much of a computer system for this to work well. In fact, the system I am using is only a Celeron 1Ghz machine. I really didn't want to upgrade the whole computer to just be able to continue doing what I was doing.
So I decided to try hooking up an over-the-air digital to analog converter to the PVR-150. The government is sponsoring a program to get you 2 $40 credits toward the purchase of those. More info here. So I went to the local Wal-Mart and picked up an RCA DTA800 converter box. It was a bit of a trick to get the ir blaster configured so that WINTV-2000 could change the channels reliably on the RCA DTA800. Here is a screen shot of the blaster config that I settled in on:
Here is a screen shot of the channel config for wintv-2000. Notice I had to add the digital sub-channel as part of the normal channel for wintv-2000.
So far, so good. Now comes the sticky point. The PVR-150 has software to allow programming from titantv.com. On the titantv.com web site there is a channel guide. On this channel guide there are "record" buttons on the shows. Clicking this record button downloads a tvpi file (see the wikipedia entry). Using the digital channel guide, the tvpi, of course, has digital information. When the tvpi file gets downloaded to the system with the PVR-150, a file association kicks in and runs a program installed with the PVR-150. This program probably does the right thing when there is a real digital source, but with the ota dtv converter, and the ir blaster setup, it was not changing the channel when it was starting a recording. After some investigation, I discovered that it was always putting an extra 1 in front of the channel before trying to change it, so the blaster was sending "1021" to the RCA DTA800 instead of "021". Hmm, what to do, what to do?
Well, i figured that the tvpi file is just an XML file coming down, it can't be that hard to parse it and make it do what I want. I also decided that perl was just the right tool for the job. You have perl installed on your machine, right? So I whipped up a perl script to sit in between titantv and the wintv-2000 scheduling program. This perl script changes the xml delivered by titantv and makes the wintv-2000 scheduler program happy. It changes the <tv-mode> element from digital to analog and also changes the <rf-channel> element to be what the ir blaster can deal with. It saves this to a temp file, then invokes the program that used to be associated with tvpi files (pvrfile_applet.exe).
You can see the perl script here.
I also had to change the file association for tvpi files to invoke this perl script. I plopped it in "C:\Program Files\rcadta800\tvpidta800.pl". Here is a screen shot of the file association setup. The string inside the "Application used to perform action" is:
C:\perl\bin\perl.exe "C:\Program Files\rcadta800\tvpidta800.pl" "%1"
So now I'm able to click on the record button on titantv.com, and it schedules wintv-2000 to record the program. The ir blaster kicks in, changes the channel on the RCA DTA800, and records the right program.
I know, it's taking a digital signal, converting it to analog, and then back to digital. But I was able to continue using the same equipment that I had been using all along to record tv shows to mpg files on a shared drive on my lan.
One final note. I was not able to use the most recent version of the Hauppauge software to do this. That version apparently is only for windows XP or greater. I still have windows 2000 on that computer. I tried it (install CD 3.4d1) and the wintv-2000 program would sometimes hang at the splash screen or crash altogether, making recording unreliable.
I was able to use the most recent version of the ir blaster config program, which has many more set-top boxes available. (You can see the version in the screen shot above). The following are screen shots showing the versions of wintv-2000 and the scheduler.
Here is a sample, converted to a 320x240 flv file:
Please feel free to ask for more details.
So, this whole digital tv switchover has caused me to do some work. I'm one of the few people left that doesn't have cable or satellite and still relies on over-the-air tv. I have a couple of PVRs: a ReplayTV 2000 and a computer system I set up with a Hauppauge PVR-150 tv capture card. I don't use the latter in the traditional PVR way. I don't have that computer hooked up to a monitor or a tv. I access it with VNC and simply record shows onto a drive that is shared across our LAN. Amanda and I watch the recordings on our computers.
So this presented a problem, since the PVR-150 only records analog. It works quite well, since there is on-board hardware support for the digital conversion. It doesn't take much of a computer system for this to work well. In fact, the system I am using is only a Celeron 1Ghz machine. I really didn't want to upgrade the whole computer to just be able to continue doing what I was doing.
So I decided to try hooking up an over-the-air digital to analog converter to the PVR-150. The government is sponsoring a program to get you 2 $40 credits toward the purchase of those. More info here. So I went to the local Wal-Mart and picked up an RCA DTA800 converter box. It was a bit of a trick to get the ir blaster configured so that WINTV-2000 could change the channels reliably on the RCA DTA800. Here is a screen shot of the blaster config that I settled in on:
Here is a screen shot of the channel config for wintv-2000. Notice I had to add the digital sub-channel as part of the normal channel for wintv-2000.
So far, so good. Now comes the sticky point. The PVR-150 has software to allow programming from titantv.com. On the titantv.com web site there is a channel guide. On this channel guide there are "record" buttons on the shows. Clicking this record button downloads a tvpi file (see the wikipedia entry). Using the digital channel guide, the tvpi, of course, has digital information. When the tvpi file gets downloaded to the system with the PVR-150, a file association kicks in and runs a program installed with the PVR-150. This program probably does the right thing when there is a real digital source, but with the ota dtv converter, and the ir blaster setup, it was not changing the channel when it was starting a recording. After some investigation, I discovered that it was always putting an extra 1 in front of the channel before trying to change it, so the blaster was sending "1021" to the RCA DTA800 instead of "021". Hmm, what to do, what to do?
Well, i figured that the tvpi file is just an XML file coming down, it can't be that hard to parse it and make it do what I want. I also decided that perl was just the right tool for the job. You have perl installed on your machine, right? So I whipped up a perl script to sit in between titantv and the wintv-2000 scheduling program. This perl script changes the xml delivered by titantv and makes the wintv-2000 scheduler program happy. It changes the <tv-mode> element from digital to analog and also changes the <rf-channel> element to be what the ir blaster can deal with. It saves this to a temp file, then invokes the program that used to be associated with tvpi files (pvrfile_applet.exe).
You can see the perl script here.
I also had to change the file association for tvpi files to invoke this perl script. I plopped it in "C:\Program Files\rcadta800\tvpidta800.pl". Here is a screen shot of the file association setup. The string inside the "Application used to perform action" is:
C:\perl\bin\perl.exe "C:\Program Files\rcadta800\tvpidta800.pl" "%1"
So now I'm able to click on the record button on titantv.com, and it schedules wintv-2000 to record the program. The ir blaster kicks in, changes the channel on the RCA DTA800, and records the right program.
I know, it's taking a digital signal, converting it to analog, and then back to digital. But I was able to continue using the same equipment that I had been using all along to record tv shows to mpg files on a shared drive on my lan.
One final note. I was not able to use the most recent version of the Hauppauge software to do this. That version apparently is only for windows XP or greater. I still have windows 2000 on that computer. I tried it (install CD 3.4d1) and the wintv-2000 program would sometimes hang at the splash screen or crash altogether, making recording unreliable.
I was able to use the most recent version of the ir blaster config program, which has many more set-top boxes available. (You can see the version in the screen shot above). The following are screen shots showing the versions of wintv-2000 and the scheduler.
Here is a sample, converted to a 320x240 flv file:
Get the Flash Player to see this video.
Please feel free to ask for more details.