Watch TV using a Hauppage WinTV PVR USB2

From LQWiki
Jump to: navigation, search

This article describes how you can watch TV on your computer using your Hauppage WinTV PVR USB2 video tuner.

Driver and Firmware

  • connect your TV Tuner via USB to your computer and to the electric power supply
  • get the firmware
mkdir -p /lib/firmware/
cd /lib/firmware
wget http://dl.ivtvdriver.org/ivtv/firmware/ivtv-firmware.tar.gz
tar xvzf ivtv-firmware.tar.gz
  • verify you have the driver
modprobe -l | grep pvr
/lib/modules/2.6.25.11-0.1-default/kernel/drivers/media/video/pvrusb2/pvrusb2.ko
  • load the driver
modprobe pvrusb2
  • make sure the driver has loaded
dmesg
usbcore: registered new interface driver pvrusb2       
drivers/media/video/pvrusb2/pvrusb2-main.c: Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner : V4L in-tree version
drivers/media/video/pvrusb2/pvrusb2-main.c: Debug mask is 31 (0x1f)                                           
pvrusb2: Device microcontroller firmware (re)loaded; it should now reset and reconnect.                       
usb 2-4: USB disconnect, address 4                                                                            
pvrusb2: Device being rendered inoperable                                                                     
usb 2-4: new high speed USB device using ehci_hcd and address 5                                               
usb 2-4: configuration #1 chosen from 1 choice                                                                
usb 2-4: New USB device found, idVendor=2040, idProduct=2400                                                  
usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3                                             
usb 2-4: Product: WinTV                                                                                       
usb 2-4: Manufacturer: Hauppauge                                                                              
usb 2-4: SerialNumber: 2401-00-0082BA22                                                                       
usb 2-4: reset high speed USB device using ehci_hcd and address 5                                             
cx25840' 4-0044: cx25843-24 found @ 0x88 (pvrusb2_a)                                                          
tuner' 4-0043: chip found @ 0x86 (pvrusb2_a)                                                                  
tda9887 4-0043: tda988[5/6/7] found                                                                           
tuner' 4-0061: chip found @ 0xc2 (pvrusb2_a)                                                                  
wm8775' 4-001b: chip found @ 0x36 (pvrusb2_a)                                                                 
tveeprom 4-00a2: Hauppauge model 24019, rev C389, serial# 8567330                                             
tveeprom 4-00a2: tuner model is TCL MFPE05 2 (idx 89, type 38)                                                
tveeprom 4-00a2: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) (eeprom 0x74)                           
tveeprom 4-00a2: audio processor is CX25843 (idx 37)                                                          
tveeprom 4-00a2: decoder processor is CX25843 (idx 30)                                                        
tveeprom 4-00a2: has radio, has IR receiver, has no IR transmitter                                            
pvrusb2: Supported video standard(s) reported available in hardware: PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K  
pvrusb2: Mapping standards mask=0xff00ff (PAL-B/B1/D/D1/G/H/I/K;SECAM-B/D/G/H/K/K1/L/LC)                      
pvrusb2: Setting up 20 unique standard(s)                                                                     
pvrusb2: Set up standard idx=0 name=PAL-B/G                                                                   
pvrusb2: Set up standard idx=1 name=PAL-D/K                                                                   
pvrusb2: Set up standard idx=2 name=SECAM-B/G                                                                 
pvrusb2: Set up standard idx=3 name=SECAM-D/K                                                                 
pvrusb2: Set up standard idx=4 name=PAL-B                                                                     
pvrusb2: Set up standard idx=5 name=PAL-B1                                                                    
pvrusb2: Set up standard idx=6 name=PAL-G                                                                     
pvrusb2: Set up standard idx=7 name=PAL-H                                                                     
pvrusb2: Set up standard idx=8 name=PAL-I                                                                     
pvrusb2: Set up standard idx=9 name=PAL-D                                                                     
pvrusb2: Set up standard idx=10 name=PAL-D1                                                                   
pvrusb2: Set up standard idx=11 name=PAL-K                                                                    
pvrusb2: Set up standard idx=12 name=SECAM-B                                                                  
pvrusb2: Set up standard idx=13 name=SECAM-D                                                                  
pvrusb2: Set up standard idx=14 name=SECAM-G                                                                  
pvrusb2: Set up standard idx=15 name=SECAM-H
pvrusb2: Set up standard idx=16 name=SECAM-K
pvrusb2: Set up standard idx=17 name=SECAM-K1
pvrusb2: Set up standard idx=18 name=SECAM-L
pvrusb2: Set up standard idx=19 name=SECAM-LC
pvrusb2: Initial video standard auto-selected to PAL-B/G
pvrusb2: Device initialization completed successfully.
  • make sure an additional video device exists
ls /dev/video*
/dev/video  /dev/video0

Watch TV

According to http://www.isely.net/pvrusb2/usage.html#V4L, your watching application needs to be capable of decoding an mpeg2 stream.

  • watch that you see a video signal
gqcam /dev/video

You will not be able to switch channels, and it is not sure you see more than snow. How to go on, depends on your distribution:

SUSE Linux 11 and 11.1

  • make sure you have one (and not more) soundcard and it works.
  • make sure the videolan (VLC) repository is contained in your yast installation repositories.
  • Install several development packages
yast -i libmpeg2-devel
yast -i zvbi-devel
yast -i arts-devel
yast -i kdelibs3-arts
yast -i kdemultimedia3-arts-mad
yast -i libmpg123-arts
yast -i openmotif-devel
yast -i aalib-devel
yast -i libdv-devel
yast -i libmad-devel

Download xawtv's latest cvs snapshot from http://dl.bytesex.org/cvs-snapshots/?N=A. In this example, we assume it is xawtv-20081014-100645.tar.gz.

  • Unpack the snapshot
tar xvzf xawtv-20081014-100645.tar.gz
cd xawtv
  • Configure the compile
./autogen.sh
./configure
  • build it
make 
  • install it
make install
  • prepare the sender list for xawtv by calling
scantv

You are asked some questions. If you do not know what PAL standard your country uses, consult wikipedia.

  • start it
/usr/local/bin/xawtv

Record a video

To capture a video with sound, do

echo false >/sys/class/pvrusb2/sn-*/ctl_mute/cur_val && cat /dev/video > myvideo.mpg

In this case, we assume /dev/video is the video device that you created above. This command is possible because mpeg2 data is streamed over /dev/video. It contains sound.

TV-Viewer

TV-Viewer is a complete frontend to watch and record TV. Installation is quite easy and you'll find a good documentation on the homepage. To get a first impression of the program have a look at the screenshots.

More information

  • ~/.tv contains config files for xawtv4
  • good irc channels for your needs are on freenode: #v4l, #pvrusb2 and #mythtv-users

See also