Review: The Hauppauge HD-PVR
Written by Doug Bonnell
Posted on: 03.06.2009 at 03:22am
Section: Hardware

Introduction

Hauppauge's HD-PVR is a video/audio capture device that samples "YPrPb" component video at HD resolutions of 480i (720x480 @ 30fps), 480p (720x480 @ 60fps), 720p (1280x720 @ 60fps) or 1080i (1920x1080 @ 30fps). The HD-PVR has attracted a lot of attention since it is able to bypass all digitial content controls and take advantage of the "analog hole", while doing so at a very affordable price. Previously, capture devices like the HD-PVR were priced 4 to 6 times the $200 price tag of the HD-PVR.

The HD-PVR is not a solution for capturing 1080p. The satellite and cable providers currently don't supply any 1080p content. All 1080p content available on BluRay media is supported by players that only output to HDMI (at 1080p), not component.

The HD-PVR's features include:
  • H.264 video recording format
  • AAC or AC3 audio recording formats
  • 2 and 5.1 channel audio supported
  • Composite, S-Video and YPrPB Component video inputs
  • Stereo RCA or optical audio inputs
  • Passthru outputs to external HDTV component inputs and optical audio
  • IR Blaster for control cable/satellite Set Top Box (STB)
  • USB 2.0 interface to host computer

The Goodies: HD-PVR, remote, YPrPB/USB/IR Blaster cables, PSU


Part 1: Inputs/Outputs and What's Inside

While the HD-PVR has component and optical outputs on the back panel, it can't playback captured shows from the host computer to an HDTV. These outputs are intended to pass-thru the audio/video from the Set Top Box (STB) to the HDTV.


HD-PVR Rear Panel


HD-PVR Front Panel

I don't have an S-Video source for testing with the HD-PVR. I did hookup my Canon PowerShot camera and record a minute or two of 480i using the "Video" (composite) jack on the front panel.


The Guts!

The HD-PVR's circuit board is fairly simple, thanks to highly integrated video/audio controllers and a custom ASIC for the H.264 encoding. You also have 4 "bling" LEDs that light blue when the box is doing a capture. Those marketing people ... LOL!

Later versions of the HD-PVR have a fan inside to help with cooling while encoding.
I never had any overheating/lockup issues with this version that only has a heatsink on the encoder chip. Owners of the version with a fan are reporting irratating noise levels and the cheap fans dieing. Sounds like Hauppauge needs to come up with a box design with better airflow for cooling?

The main chips on the board are:
  • Custom ASIC? The H.264 encoder
  • Analog Devices ADV 7401 multiformat video decoder and graphics digitizer
  • Analog Devices ADA V803 stereo audio codec provides recording, playback and format conversion (AAC or AC3).
  • Zilog Z8F0811 20Mhz 8 bit microprocessor
  • Elpida 32M x 16 bit DDR2 memory


Part 2: Windows Support

I used my trusty old Gateway 4542GP notebook with Windows XP for initial testing of the HD-PVR. This machine has a 1.6Ghz Pentium® M Processor 725 and 1GB of memory. Not a fast machine, but adequate for capture work.

Hauppauge supplies a CD with the following software:
  • Total Media Extreme by ArcSoft
    • ArcSoft Capture Module
    • Create AVCHD or DVD Video Discs
    • Watch AVCHD/DVD/VCD Movies
    • ArcSoft Media Converter
  • HD PVR MP4 Creator
  • WinTV Scheduler


  ArcSoft's Capture Module




The capture module does what you'd expect it to do. Everthing works fine, but the preview display tends to stutter both audio and video. I don't doubt that part of this is due to my machine's older CPU, but it would be nice to be able to disable the preview display after a capture session is started.

ArcSoft's Create AVCHD or DVD Video Discs




ArcSoft's Total Media Studio looks to be a fairly standard DVD authoring tool with the exception that it supports mastering AVCHD discs for Blu-ray players. You can find out more about AVCHD at http://en.wikipedia.org/wiki/AVCHD.

My attempt at making an AVCHD disk worked, but my neighbor's Sharp Blu-ray player didn't like the disc. It recognized it as Blu-ray, but then declared it was invalid media.
Perhaps the player requires some sort of menuing, I just burned the disk as a "load and play" without anything fancy.


Watching AVCHD/DVD/VCD Movies
Thanks to a lack of HDCP hardware on my laptop, I wasn't allowed to watch any of my captures on the laptop since Total Media Extreme passed me off to Window's Media Player.

However, downloading MPlayer SVN Windows with SMPlayer GUI lets you play the captures (at least the 1280x720 type) OK. Playback is a bit choppy, it appears that the video is being played back at 30fps by skipping every other frame of the 60fps capture. Maybe using the "softskip" option would smooth the playback. The Linux version of MPlayer runs at 60fps so playback is very smooth.


ArcSoft's Media Converter


The Media Converter let's you re-scale and transcode the captures for various portable media players and full size HD for Sony PS3 (MP4 with H.264) and Microsoft's XBOX (WMV). Needless to say, transcoding on this older laptop is very slow.


Hauppauge's HD PVR MP4 Creator


Hauppauge has provided a quick MP4 converter that re-packages the H.264 video stream into an MP4 "container" rather than default "transport stream" container. I suspect that this is a free program with a simple GUI wrapper. Since the audio and video streams are just copied into the container, MP4 creator is fairly quick.


Hauppauge's WinTV Scheduler


The scheduler works the IR Blaster, allowing control of the STB so a capture can be made automatically.



I didn't setup the IR Blaster, so I can't comment as to whether is works very well or not.
Since my STB is also an HD recorder, it's just a lot easier for me to set the STB to record something and then I can use the HDPVR to capture the playback at a later time (for "hands off" timeshifting).

This brings us to the remote control included with the HDPVR. Unfortunately, it does nothing with the include software. It's supposed to work with SageTV and the like, but I'm not interested in spending another $30-$70 for 3rd party software to check it out.



Part 3: Linux Support

Current Linux support for the H-PVR is decent, but there are a couple of holes you need to consider when using the HD-PVR:
  • There's no support for the IR Blaster.
  • There are no tools for mastering AVCHD discs, only tools for standard DVDs.
  • Capture of 1080i just doesn't work. Also, if you bring over 1080i files from a Windows box, the Linux tools (MPlayer, Mencoder, etc) crash.

The Kernel USB Driver
There is a Linux driver for the HD_PVR available. I've compiled it for my 2.6.26 kernel and have been running the HD-PVR on Linux for the past week. I've found the driver to be quite stable and it's feature set is almost complete with respect to the functionality dispalyed on the ArcSoft Capture Module. The minor variations are:
  • The current drive only supports capture into TS containers. There doesn't appear to be an option for creating M2TS containers. The M2TS container seems to only be of use when creating an AVCHD disc, as the ArcSoft software will convert a TS file into M2TS for writing to the disc.
  • There is no direct control of the "bling" LEDs. This is probably a good thing since later versions of the HD-PVR have a fan for cooling the encoder chip that is controlled on the same line as the LEDs. Shutoff the LEDs and you shutoff that fan, risking overheating your unit.
The driver does support control of the "Audio Boost" function, but it's currently done using /sys/module/hdpvr/parameters/boost_audio, rather than using the ioctl method  of "v4l2-ctl --set-ctl=boost_audio=1" like the other options use. This means you need to boost the audio using "echo "Y" | sudo tee /sys/module/hdpvr/parameters/boost_audio" which is a little annoying to me. I'd rather use v4l2-ctl.

MythTV has a Hauppauge HD-PVR Wiki page which is a good reference for downloading, building, and installing the custom Linux driver for the HD-PVR.

The driver will create /dev/video0 with an HD-PVR connected to the system. The video device number will be different, of course, if you have another video device (say a tuner card) already installed (/dev/video0 = tuner, /dev/video1 = HD-PVR, etc). I found it convienent to change the permissions on these video device so all users can read/write to the devices. This is done by editing /etc/udev/rules.d/50-udev-default.rules and changing the "MODE" line in the video4linux section to look like this:

KERNEL=="video0",MODE="0666",   SYMLINK+="video"

As a final note about the driver, keep in mind that the peak bitrate option is only valid if the bitrate mode is set to "Variable". You will see strange values if you attempt to set the peak bitrate and then read it back while the bitrate mode is "Constant".


A Linux Capture Module






I've have been working on a GUI application that has the look and feel of ArcSoft's Capture module. I am planning on releasing this work under an "umbrella project" that I am calling "Re-Fuze HD". I will be a convienent graphical application for capturing, playback, editing and converting files from the Hauppauge HD-PVR.


Watching the Captured Videos
     

Current versions of MPlayer and Xine support viewing of the HD-PVR's capture files. These files are "Transport Stream" containers with video encoding using ffmpeg's ffh264 codec. You can check Mplayer's support of H264 by typing:

mplayer - vc help | grep 264

and looking for ffh264 in the output.


Latest MPlayer code plays HD-PVR's *.ts files

I found the latest "snapshot" version of MPlayer to have the best playback quality and ability to keep sound sync'd with the video: MPlayer Downloads

For a non-computer playback option, checkout the Western Digital HD MediaPlayer that has been receiving a lot of attention lately with it's $100 price tag. It supports H.264 encoding and can do 1080p playback. It looks like it would be a sweet companion for the HD-PVR!





Editing the Captured Videos with Avidemux 2.5


Editing the capture files (*.ts, *.m2ts) can be done quite readily with Avidemux 2.5. This latest version has much better support of H264 encoded files than the older 2.4.3 version available on a number of repositiories.

The only problem I ran into with version 2.5 is a bug where it won't save edited H264 files in any format other than "AVI". Other formats (such as MKV) get an error stating that the first frame isn't an "Index Frame", even though it is. I will be looking at the latest versions of Avidemux from the SVN repository for any fixes to this problem.

When running Avidemux 2.5, skip the "Safe Mode" for H264 files and click "Yes" when asked if you'd like to "Rebuild I and B Frames". If you don't, then the audio will never sync well with the video.

NOTE: I've never been able to edit 1080i TS files with Avidemux and maintain audio/video sync. These files are typically 30fps, but with a progressive FPS of 15fps. I've always had to transcode the original file and increase the resulting output to 30fps in order to use Avidemux.


Transcoding the Captured Videos with Mencoder
Mencoder (provided as part of the MPlayer package) does a good job of converting the captured videos to other formats. The example scripts in the table below are setup to work with a 1280x720 @ 60fps capture file and produce MPEG output files.
 
FILENAME=`echo "$1" | sed "s/\(.*\)\..*/\1/"`

# Transcode to 720x480 at 30fps MPEG for burning to a regular DVD
# Convert audio to AC3
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf \
scale=720:480,harddup,softskip -srate 48000 -af lavcresample=48000 \

-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=12000:vbitrate=9000:keyint=18:aspect=16/9:acodec=ac3:abitrate=192 \
-ofps 30000/1001 -o "$FILENAME-480p.mpg" "$1"

# Transcode to 1280x720 at 30fps MPEG
mencoder -oac lavc -ovc lavc -of mpeg -vf softskip -srate 48000 -af lavcresample=48000 \

-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=12000:vbitrate=9000:keyint=18:aspect=16/9:acodec=ac3:abitrate=192 \
-ofps 30000/1001 -o "$FILENAME-30fps-720p.mpg" "$1"

# Transcode to 1280x720at 60fps MPEG
FILENAME=`echo "$1" | sed "s/\(.*\)\..*/\1/"`
mencoder -oac lavc -ovc lavc -of mpeg -srate 48000 -af lavcresample=48000 \

-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=12000:vbitrate=9000:keyint=18:aspect=16/9:acodec=ac3:abitrate=192 \
-o "$FILENAME-60fps-720p.mpg" "$1"


If you don't want AC3 audio, change the "-oac" option to "copy", remove the "-srate" and "-af" options and the "acodec" and "abitrate" options from the "lavcopts" string.

All of these options can be changed, but an indepth discussing of Mencoder is beyond the scope of this review. However, a few options of interest in these examples are:

-vf scale=xxx:yyy
Scales the video up/down
-vf harddup
Duplicates frames to meet the -ofps value (Say 24fps->30fps)
-vf softskip
Reduces "jerking" when tossing out frames (Say 60fps ->30fps)
-lavcopts (maxrate,bitrate)
Try setting these to the same values used to capture the video
-ofps
Forces FPS on the output

GUIs for use with Mencoder


All of this is a bit much to remember/deal with, so I'm currently working on a simple GUI frontend for Mencoder. Since Mencoder is also available for Windows, there's already a Windows GUI available at SMSG - Simple Mencoder Shell GUI.




Conclusion

The Hauppauge HD-PVR is quite the little capture device. It's great performance, low price tag and ability to bypass all copy protection make it a serious "video geek's toy".

"The Good"

  • Hardware H264 encoding ... 480p thru 1080i capture ... AVCHD support
  • AAC/AC3 audio encoding ... 5.1 audio capture using optical
  • IR Blaster for STB Control
  • AVCHD media creation .... if it really works

"The Bad"

  • Non-standard 1080i capture ... Linux tools crash!

"The Ugly"

  • "Always On" preview in Capture Module for Windows is really annoying!
  • Will we ever have IR Blaster support for the HD-PVR under Linux?
  • Nice remote control. Too bad it doesn't work with the supplied ArcSoft stuff!
  • H264 hardware playback would have been really nice!

And now, one last final comment. From a consumer's viewpoint, why are some companies calling "capture only" devices PVRs? We all grew up with VCRs, those devices that could "capture" programs, "store" them AND PLAY THEM BACK!
Without storage and playback, a "PVR" ain't a "PVR"! Call it what it is ...