Sunday, June 22, 2008

Hauppauge HD PVR (model 1212)





Product Page
Support Page
SHSPVR Forums
AVS Forum

- Captures 720p/1080i over component (and eventually 5.1 DD bitstream over optical) in h.264 in realtime in hardware with almost 0% cpu utilization . This takes advantage of the analog loop hole (not ICT at least not until 2012 if ever) and lets you record from almost any HD source like cable set top boxes or satellite. This is a big boon for homebrew PVR/HTPC users. Finally, you can capture any content including all the premium content you paid for on your terms and archive and do what you want with it.
- External USB 2.0 device.
- Comes with an IR blaster which I didn't test since I already change channels on my cable STB using firewire:
http://home.comcast.net/~timmmoore/firewire/readme.htm
- A farily resonable (compared to alternatives) $250 price direct from hauppauge
- Has a set of component, analog audio, and optical out for pass through. Pass through only works when the device is turned on (with no delay).
- hooked it up, installed drivers from the DL on the hauppauge support page. Looking at the file dates 1.0b seems to be the latest drivers (even newer than the ones posted in the shspvr forums).
- Current drivers only supports pcm on optical. Bitstream (5.1) is coming in a future driver update. I stuck with analog audio for now. Btw, the analog ports are reversed. Connect Red - White and White - Red.
- I Installed it along side a pvr-250 in the same pc and had no conflicts. Both are working fine together. I have read some posts where there might be IR conflict issues between the hd pvr and the pvr-150 but I use eventghost + usbuirt for all my IR needs which IMO is a more robust solution anyways.
- I don't cover transcoding much because I have htpc's and popcorn hour to cover all my playback needs on the native .TS files it produces. It does have a utility to convert this odd mpeg2 transport stream container with mpeg4 h.264 encoded video + aac audio inside of it to mp4 format but I haven't messed with that much. I hear this odd file format has been making editing a bit difficult for some.
- Captured 720p content from xbox 360 (GTA IV), and some wmv 1080p content (though I was outputting 720p from the 360 over component). AV quality is excellent even at default bitrates. I really didn't see much difference when increasing the bitrate or trying variable vs constant. Very little to no artifacts during fast action scenes. Overall picture is just a tad softer. I'm very pleased with the quality
- recording sizes for 1 min of 720p video:
default CBR (8avg, 12 peak): 61MB
HQ CBR (highest quality settings 13.5avg, 20.2peak): 103MB
HQ VBR Avg: 42MB
HQ VBR Peak: 49MB

- Files (and I tried all formats) played back fine on ffdshow, vlc for the most part (got an error once in a while during a seek), and popcorn hour.
- Arcsoft software is pretty much junk. It constantly shows a preview window (delayed about half a second compared to the live feed) that sucks up like 40% cpu on my opteron 170 oc to 2.7ghz. I tried gbpvr (free) which has sort of a command line recorder (schedule.exe) that lets you quickly schedule a manual recording. It's a pretty heavy install if all you want is a command line recorder so I wrote my own (more on that later).
- Heat issues. Seems like every new AV gadget I get these days has heat issues. Recording would freeze usually in 1-6min. The hot spot seems to be on the bottom. Sitting the unit on its side lets me record maybe only 15min before freezing. Several people have reported this issue. There are NO VISIBLE VENTS on this PLASTIC case which just seems incredibly stupid.
- I called support and got a human in about 3 min (and they were NOT in India!). I got an RMA# without any fuss. Service was incredibly fast. Total time from me shipping the defective unit back and getting a replacement was just 5 days.
- The RMA unit had a different serial number but same revision: C1.
- I've done multiple recordings up to 2 hrs at 720p and 1080i without issue now.
-1080i tests: encoded 1 min of 1080i content. I think it was 9 avg, 13.5 peak, vbr at around 81MB.
- 1080i does NOT play back in VLC at all. ffdshow tryouts (latest nightly build) plays it back with a lot of ugly artifacts on the opteron but faired better on my q6600. Using the powerdvd h264 codec instead plays it back perfectly (powerdvd 7 or 8). Popcorn hour - plays it back perfectly!
- Playback summary (under vista 32bit w/ 8600gts, q6600 oc 2.9ghz). I used Haali splitter:
720p - vlc, ffdshow tryouts, coreavc pro 1.7, powerdvd h264, popcorn hour all work fine
1080i - stick to coreavc pro 1.7, powerdvd h264, arcsoft, or popcorn hour.
UPDATE:
Did some more playback testing on low end computers:
- athlon 64 3000 + ati X800XL agp (cat 8.6)
It just can't handle 1080i content. I tried all sorts of codecs (arcsoft, cyberlink, ffdshow, coreavc) and none will play it back smoothly. 720p seems to work ok with coreavc but cpu is always at or around 100%
- dell Precision Workstation 450 pentium IV 3.0 ghz dual xenon hyperthreaded + ati hd 2400 pro agp (cat 8.3)
1080i is a struggle to get working. It played ok in powerdvd8 with dxva acceleration. You have to actually play it within powerdvd8. Using just the cyberlink codec wasn't good enough and still caused high cpu usage. Even though cpu utilization was pretty low it still wasn't completely smooth. It is watchable though. 720p plays perfectly smooth with coreavc.
- I did some short 15 sec samples of GTA IV off of xbox 360 in both 720p and 1080i. I used default CBR settings.
hdpvrsamples.zip

UPDATE:
I've added some more samples. I finally moved the hd pvr into production and did some captures from my SA 3250HD. Here are some clips from food, espn, and discovery hd theater (comcast).
default encoder settings:
hdpvr-def.zip
maximum variable average:
hdpvr-maxvbravg.zip

HD PVR Fan Mod:


- Thanks goes out to stroths over at the sagetv forums for the basic idea.
- I finished my fan mod. Nothing is permanent. Everything done is reversible. I ended up going to michaels arts and crafts store to the sewing section and bought this plastic mesh for 39 cents. It works great since you can easily cut it with plain old scissors. It comes in different colors. I chose black.

- fan used:
Enermax Marathon 120mm Fan - Magnetic Bearing
They are very quiet. No need to under volt.
- Removing the 4 rubber feet exposes some double sided sticky tape. It's really thin and hard to remove without ripping. There aren't any warranty void stickers but still, if they look closely they can tell you've opened the case. Right under the tape are the screws.

- After that the whole top comes off. At this point I pushed out the clear plastic frame along with the silver top. Just go around the edge with a small thin flat headed screw driver to loosen up the series of tabs that hold it in place. Eventually a few will give and you can pop out a side.

- Next, I separated the silver top from the clear plastic frame. This required some careful work using a jewelry screwdriver. Insert it right where the silver top meets the clear frame and slowly pry them apart working around the edge. I started at a corner and worked down one side.

- After that I just used a lot of velcro dots. I attached the fan to the under side of the plastic frame blowing down into the case. There aren't really any vents for the air to escape so it just kind of comes out around the ports.

- Cut the mesh to fit the top of the plastic frame. Cut a small corner piece out to run the fan wire through. Velcro the mesh to the top of the clear frame.


- The fan clears all the components on the board but not by much. My only fear is if the adhesive (though it's pretty darn strong) on the velcro pads fail it could bring the fan crashing down on the main board. I might end up running this thing on its side anyways you know just in case :-)

- Power the fan using a usb to sata cable power supply usually used for hard drives but with a 4 pin molex it works great for the fan.

- the hottest chip seems to the ambarella chip:

- as you can see I didn't get the voltage/fan fix in my RMA unit mentioned here:
http://forums.sage.tv/forums/showthread.php?p=288154&postcount=154

used laser infrared thermometer gun
before mod (top wasn't exactly completely sealed since I had already done the mod at this time. I just loosely put the silver top back on and unplugged the fan so I think these pre-mod temps are going to be a bit low.)
125f after 5 min 1080i recording

150f after 30 min
125f underside
93f top side

after fan mod (15 min capture time)
120f highest
102f underside

Filter Graphs:
capture:
hauppauge hd pvr crossbar -> hauppauge hd pvr capture device (proppage: color settings) -> Hauppauge hd pvr encoder (proppage:encoder settings) -> file dump (filename)

playback:
.ts file (video)-> cyberlink h.264/avc decoder (pdvd7.x) -> video renderer
(audio)-> ffdshow audio decoder -> default direct sound device

preview:
hauppauge hd pvr crossbar -> hauppauge hd pvr capture device (proppage: color settings) -> Hauppauge hd pvr encoder (proppage:encoder settings) ->
arcsoft mpeg demux (couldn't get it to work with any other demultiplexer)
create two pins: video (mpeg-2 video) and audio (mpeg-2 audio)
pid mapping: video 0x1011, audio 0x1100 both elementary stream
(video) -> arcsoft video decoder -> video renderer
(audio) -> arcsoft audio decoder -> default directsound device

rcTVCap
- rcTVCap.zip (1.03 - 1/13/09)
- Written in c#. Built using Visual Studio 2008. Makes use of the DirectShowNet library.
- Requirements:
.Net 3.5 framework
latest hd pvr drivers (1.0b as of this writing)
a compatible file dump filter like the arcsoft one (more on this below) is required.
capture filter graph built on your own machine (instructions below)
- Thanks goes out to the_tom over at avsforum for sending me a copy of his RoboCapLE program that greatly helped me in writing this.
- Command line utility to capture using any filter graph (hopefully) though currently only tested with HD PVR. It shows 0% cpu utilization on my q6600.
- Usage: rcTVCap filterGraph dumpName secondsToRecord filename [ProfileName]
filterGraph: Capture graph previously built with Graphedit.
dumpName: name of the file dump filter used in the above graph. Make sure case matches. This is needed so I can set the filename on the graph.
secondsToRecord: number of seconds to record
filename: Name of the video file to capture to (fully qualified path).
ProfileName: This is optional! Specify a profile name defined in FilterProfiles.xml to set filter properties like quality settings.
Remember to use quotes around any arguments you pass in that has spaces.
Example: rcTVCap hdpvr-reccbr.grf "File Dump" 3600 "c:\videos\my recording.ts"
Example using HQ Profile: rcTVCap hdpvr-reccbr.grf "File Dump" 3600 "c:\videos\my recording.ts" HQ
- A self trimming log is generated in the same directory as the executable: rcTVCap.log
- Complete source code is included.
- I've only tested this under vista 32bit. I hope it works under xp. I wrote this in about 2 hrs, and it's my first time working with filters so let me know if you find any issues. I've done several 2hr recordings without issue though.
- It doesn't seem like it works under 64bit. Read the comments for more info.
- It seemed I was able to playback the file while it was still recording. I only did limited testing but it seems to work.
- Note: You most very likely have to build your OWN graph on the SPECIFIC machine you plan to run rcTVCap on. The included graphs in the zip file probably will NOT work. See below on how to build your own graph. This probably has to do with USB port assigning being different depending on the machine (thanks ash from the comments).

UPDATE: New in v1.02
- You'll notice a new FilterProfiles.xml. You can edit this with notepad. This is how you can set quality settings on the fly through the command line. The basic idea is you create a profile with a unique name, then identify the property and the value you want to set it to. Nothing is hard coded so hopefully as more guids are discovered you should be able to set them just by modifying the xml file.

<profile><name>SomeUniqueName<⁄ name>
This is the name that is passed in on the command line so make it something unique.
All Comments are optional.
<filtername> - Name of the filter you want to modify
<guid> - Guid of the property set
<id> - Property ID (so far all of them are use 0)
<value> - Value you want to set for the property (right now it's either the bitrate or 0 = constant, 1 = variable average, 2 = variable peak for bitrate mode).

Just look at the included FilterProfiles.xml (make sure it's in the same directory as rcTVCap.exe), and you should be able to figure it out.

A big thanks goes out to the_tom for the code to set property values and vladd for the C# translation.
http://www.avsforum.com/avs-vb/showthread.php?p=14483946#post14483946

- Multiple HD PVR's on the same PC. My friend actually got this to work with rcTVCap. I can't test it myself since I currently only have one HD PVR. The basic idea is to build two different graphs. When you insert the filters, each one will be listed twice (one for each physical hd pvr connected to your pc) in the available filters list. By specifying different filter graph files (grf) on the command line, you can control which hd pvr is used in the recording.
- rebkell over in the avsforums built a nifty GUI front end to rcTVCap that looks pretty slick:
http://rebkell.net/KLToolBox/
Just make sure you put his files into the same directory as rcTVCap.

Version History:
v1.00 (6/22/08)
- Initial release

v1.02 (9/30/08) (v1.01 was an internal release only)
- Added ability to set filter property values like bitrate and other quality settings.
- Fixed a minor issue where sometimes rcTVCap.log wasn't being created in the same directory as rcTVCap.exe
- Tested with the latest Dolby Digital 5.1 beta drivers.
- Removed instance check so you can run multiple instances at the same time. This is useful if you have more than on HD PVR hooked up to the same PC.

v1.03 (1/13/09)
- No new functionality. Rebuilt so it should work under 32bit and 64bit windows. A big thanks to Nissen for figuring this out.

rcGraphBuilder:

rcGraphBuilder.zip (v1.02)
- I just wrote this experimental tool to help quickly build the capture graph without the need to install graphedit. Just run the exe (on the machine that has the hd pvr) and click the build button. If you need to play with the property pages that is there too. I haven't tested it a lot so let me know if this works.
- Device Number lets you build graphs for each hd pvr when you have multiple hd pvr's hooked up to the same machine.
- 99% credit goes to vladd:
http://www.avsforum.com/avs-vb/showthread.php?p=14820309#post14820309
which I pretty much stole 99% of the code from.
- requires .net 3.5 framework.
- UPDATE: v1.02 was rebuilt so it should work under 32bit and 64bit os.

Building an HD PVR capture filter graph using graphedit:

- First you need to obtain the tool.
Vista: http://www.avsforum.com/avs-vb/showpost.php?p=11420971&postcount=11
xp: http://www.shspvr.com/graph_build/demultiplexter.html
run regsvr32 proppage.dll as administrator if you are under vista.
- Make sure you have arcsoft Total Media Extreme installed.
- OPTIONAL: If you don't want to install all of arcsoft software (because I hate having a bunch of software installed with a bunch of filters you don't need) you actually just need one filter from the install (C:\Program Files\Common Files\ArcSoft\Mpeg Engine\filedump.ax). So if you can get a copy of that file (say you copy it from another PC that does have arcsoft installed, or you could just install arcsoft, copy filedump.ax somewhere else, then uninstall arcsoft) just regsvr32 filedump.ax.
- UPDATE: Even more convenient you can download dump.ax here. Thanks SHS! (UPDATE2: The file in that zip file is called dump.ax. I'm not entirely sure that will work with my tools. To be safe I still recommend you grab filedump.ax off your install cd. If you do use it notice it is called "Dump" and not "File Dump" so adjust instructions accordingly. Also, my guess is dump.ax won't work with rcGraphBuilder but I haven't tested this.)
- You are building a new graph from scratch: start graphedit, ctrl-f to insert filters. Insert the following filters:
WDM Streaming Crossbar Devices: hauppauge hd pvr crossbar
WDM Streaming Capture Devices: hauppauge hd pvr capture device
WDM Streaming Encoder Devices: Hauppauge hd pvr encoder
DirectShow Filters: File Dump (type any dummy file or just hit cancel. It doesn't matter since rcTVCap will change this to whatever is passed in the command line). UPDATE: some people are having issues when hitting cancel which makes no since to me. It's been suggested entering a filename of "File Dump" helps. It's worth a try.
- Connect the pins according to the screenshot.
- Modify any quality settings on the encoder filter property page.
- UPDATE: Change the GOP Mode on the encoder filter development tab to Simple GOP 4/32/128. If you pick any of the "No IDR" options then I had seek issues when playing back with coreavc. This setting gets cleared if you power cycle the hd pvr so make sure you change it again if you happen to power off/on the hd pvr.
- UPDATE 2: It seems the seek issues only happen with Haali Media Splitter + coreavc (even tried 1.8) + No IDR setting. You change any of the three and the seek issue goes away. For example: I tried media player classic Home Cinema using the internal splitter with external decoder (coreavc), and I had no seek issues even with the "No IDR" setting.

- Save it.
- Press "Play" and test it first to see if it is capturing in graphedit (make sure you put a name for the File Dump filter if you want to do this test). If it doesn't work here, it won't work in rcTVCap. If you are having issues, make sure you are using the original USB cable that came with the hd pvr. Reboot your pc and power cycle the hdpvr and try again.
- Still confused and need a bit more step by step help? Then I suggest you start reading from about here.

Overall, I'm pretty impressed with this product even with it's issues (heat/voltage issues, flipped audio ports, no 5.1 drivers yet, etc). It definitely feels like a rushed product but still the results are pretty darn impressive. I'll be putting this device into production this week, and then I'll be able to test 24/7 long term reliability. With the fan mod I'm pretty confident it will hold up. I'll probably pick up a second one once they go through a hardware revision or two.
Recommended for the technically savvy.

UPDATE: 10/1/08
- released rcTVCap 1.02 (see above in the rcTVCap section for details).
- Tested the new Dolby Digital 5.1 beta drivers and they seem to work quite well. This is on vista 32bit. I've read that some people are having issues on vista 64bit.
http://www.shspvr.com/smf/index.php?topic=11718.0
ftp://ftp.shspvr.com/download/wintv-hdpvr/hdpvr1.0.3.53beta.zip
http://www.hauppauge.com/site/support/support_hdpvr.html (click the beta tab)
http://hauppauge.lightpath.net/software/hd_pvr/hdpvr1.0.3.53beta.zip
- you can see the new AC3 settings here:

- I disconnected the analog audio cables and connected the optical cable to the optical input on the HD PVR.
- I did have to make one change to my capture graph. To get it to capture from the optical input instead of analog I had to make a change on the Crossbar property:

On the Crossbar tab, output drop down, choose audio decoder out. Then on the input drop down choose SPDIF. What was interesting was I only had to do this once. This setting stuck even after power cycling the HD PVR and rebooting the PC.
- I've also noticed that either Simple GOP is the default now or the setting is sticking because it also survives between power cycles and reboots. Yeah!
- Here is a short 15 sec clip of food network with dd 5.1 (CBR with default bitrates):
hdpvrfooddd51.zip

I still need to do some long term testing with these new 5.1 beta drivers but so far so good. HD PVR just keeps getting better and better. I might just have to order another one.

UPDATE: 10/17/08
- Latest 5.1 drivers are out (non-beta)(thanks comment poster!). I installed them this morning. Did a reboot, then I unplugged and plugged back in the power on the hd pvr. I ran a few short tests and it seems like it is working ok. On the previous 5.1 beta drivers I was having some slight stability issues. I could go 5-7 days 24/7 and then it would become non-responsive until I power cycle the device. I hope these new non-beta drivers bring stability back up to pre 5.1 driver levels. If not I might have to RMA this unit again (I had one of the very first rev C1 that locked up in seconds, the RMA one was also a C1 and has been pretty good).

UPDATE: 11/21/08
- So after the 5.1 drivers the hd pvr was never stable more than an average of 3 days before it would lock up and I would have to power cycle it. This went on for about 2 weeks until I decided to RMA it again. I just got the replacement unit, and it is a rev E1.
- It came with a version 2.0 disc. I noticed new v1053 drivers were recently released. I compared the two and the ones on Hauppauge's support page were newer so I just used those. I did have to rebuild my capture graph though. I did a few quick tests with rcTVCap, and it seems to be working fine.

- The first thing I noticed are the 4 sets of vents they added to the bottom! Yeah! They finally added vents!
- I still had the fan from my last mod so I just slapped it on the bottom using the same velcro dots and added a fan grill. I have the fan blowing away from the bottom hoping to pull air more quickly out of the vents:


- I still run it on its side. Eh, old habits are hard to break. Those bling lights sure are bright:

- I just stuck it back in production so it should start recording again tomorrow. Hopefully this one is 24/7 stable.

UPDATE: 11/26/08
Added rcGraphBuilder. See above right after rcTVCap.

UPDATE: 12/09/08
- I have a new theory about some long term stability issues I've been having. It seems with 5.1 you want to use the usb cable that came with the hd pvr. Using either an extension (I was using a good one from monoprice), going through a hub, or just using another longer cable seemed to cause issues for me. I've now moved the hd pvr closer to my pc and using the original usb cable. It seems to be working much better now. So the moral of the story is use the included usb cable and plug it directly into a usb port coming off of the motherboard. Do not use extensions, other usb cables, usb hubs, or plugging into any ports on the front of the pc case.

UPDATE: 1/11/09
- As requested here are some close up shots of some of the chips (this was from my original rev c1):


- Also, here are some additional sample clips that were requested. These are 30 seconds each using default recording settings, 720p:
food-30sec.ts
dhdt-30sec.ts
These were recorded using rctvcap and the latest 1.0.5.4 beta drivers.
- Another theory on long term stability: I don't think it is enough to power cycle just the hd pvr. You need to reboot the machine too. I think there might be some leak or something at the driver level that gets worse over time and isn't fixed until you reboot the pc. It takes about 3 weeks of recording about 4 hrs a day 24/7 before I run into stability issues. I hope these new beta drivers are more stable. This started with the 5.1 drivers. Before that, the hd pvr was stable for much longer periods of time.

UPDATE: 2/14/09
- Long term stability problems still continue. I'm averaging about 2 weeks before a required power cycle. My latest experiment is I'm dropping back to analog audio aac 2 channel stereo. Since all this started with the 5.1 drivers I'm just using settings as if it were pre-5.1 drivers to see if I can return to those days of months of recording without power cycling. Also, Rico66 on avsforum speculates that it might have to do with some conflict with some remote control receiver usb devices. Anyways, testing continues and I hope a find a solution that gets me back to 3+ months of stability.

UPDATE: 2/26/09
- Looks like rebkell and Rico66 on the avsforum have been busy testing another theory on long term stability. Rebkell recommends you cover the front portion of the hd pvr that looks like an IR Receiver. It's worth a try. Try using 4 strips of electrical tape to make sure the IR Receiver window is completely covered.

UPDATE: 3/27/09
- Universal IR Remote Controlled AC Outlet for Appliances (110V). I picked up a few of those thanks to the anonymous comment. I wrote a little program that runs every night at 4:15am (ms scheduler kicks it off). If the hd pvr isn't recording, it sends an IR signal that the ir plug has learned (blasting via usbuirt). This turns off the hd pvr, waits 10 seconds, and sends the IR signal again to turn it back on. So basically my hd pvr will power cycle itself every day now. Also, thanks to Rebkell which noticed that in rctvcap I make a call to IMediaControl.StopWhenReady() which is an async call. I now sleep the main thread for 5 sec before I continue tearing down the graph. I'll test this version a while before releasing it.
- Filefront is closing down so I moved all my files to dropbox. I could use some more free space. I can get some more free space through referrals. It's a pretty neat service and completely free. If you feel like giving it a try please use my referral link. I would greatly apprecate it: https://www.getdropbox.com/referrals/NTQzNDQwMjk

UPDATE: 4/3/2010
- I finally got around to writing rcIR which lets you power cycle the hd pvr on a regular schedule if you have one of the above mentioned IR plugs and a usbuirt.

Post a Comment