ac0mputerguru
New Member
Hauppauge WinTV-HVR2250 on Kubuntu 25.10
Complete Setup Guide for S-Video Capture with OBS Studio1. Hardware Overview
The Hauppauge WinTV-HVR2250 is a dual-tuner hybrid PCIe capture card. Under Linux it exposes:
- Two DVB adapters for ATSC/QAM digital TV
- Two hardware MPEG2 encoder devices (/dev/video0 and /dev/video1)
- Two VBI devices (/dev/vbi0 and /dev/vbi1) for closed captioning
2. Kernel Driver (saa7164)
The card is supported by the saa7164 kernel module, which is included in the mainline Linux kernel. The upstream driver supports DVB-T, ATSC, and QAM digital TV. Analog S-Video and composite capture is handled through the same module via the MPEG2 hardware encoder.To verify the driver loaded correctly, run:
sudo dmesg | grep -iE "hauppauge|saa7164"
You should see the card detected, firmware loaded, and both video and DVB devices registered.
3. Firmware Installation
The card requires firmware from Steven Toth's repository. Download and install as follows:wget http://www.steventoth.net/linux/hvr22xx/22xxdrv_27086.zip
wget http://www.steventoth.net/linux/hvr22xx/HVR-12x0-14x0-17x0_1_25_25271_WHQL.zip
wget http://www.steventoth.net/linux/hvr22xx/extract.sh
sh extract.sh
sudo cp *fw /lib/firmware
For Ubuntu 16.04 and later (including Kubuntu 25.10), after installing firmware it is also necessary to set the card number explicitly. Create the file /etc/modprobe.d/options with this content:
options saa7164 card=8
Then reboot.
4. Adding Your User to the Video Group
Your user must be a member of the video group to access the capture devices without root:sudo usermod -a -G video $USER
A full reboot is required for the group membership to take effect. Logout alone may not be sufficient.
To verify after reboot:
groups | grep video
5. S-Video Input Configuration
The HVR2250 exposes multiple inputs per video device. The physical S-Video ports on the card both map to input number 2 (svideo) on their respective devices:- S-Video port 1 (VCR) → /dev/video0, input 2
- S-Video port 2 (Camcorder) → /dev/video1, input 2
v4l2-ctl -d /dev/video0 --list-inputs
Important: The input selection does not persist across reboots or when OBS opens the device. It must be set before launching OBS each time, unless automated via udev (see Section 6).
To set inputs manually before launching OBS:
v4l2-ctl -d /dev/video0 --set-input=2 && v4l2-ctl -d /dev/video1 --set-input=2
To verify the NTSC standard is set:
v4l2-ctl -d /dev/video0 --set-standard=NTSC
v4l2-ctl -d /dev/video1 --set-standard=NTSC
6. Automating Input Selection at Boot (udev)
To automatically set S-Video inputs every time the card is detected at boot, create a script and a udev rule. This is non-blocking — if it fails, it fails silently and the system continues normally.Step 1: Create the Script
sudo nano /usr/local/bin/hauppauge-inputs.shPaste the following content:
#!/bin/bash
v4l2-ctl -d /dev/video0 --set-input=2
v4l2-ctl -d /dev/video1 --set-input=2
Make it executable:
sudo chmod +x /usr/local/bin/hauppauge-inputs.sh
Step 2: Create the udev Rule
sudo nano /etc/udev/rules.d/99-hauppauge.rulesPaste the following content:
SUBSYSTEM=="video4linux", ATTRS{subsystem_vendor}=="0x0070", ATTRS{subsystem_device}=="0x8851", RUN+="/usr/local/bin/hauppauge-inputs.sh"
To Remove the Automation
Simply delete both files:sudo rm /etc/udev/rules.d/99-hauppauge.rules
sudo rm /usr/local/bin/hauppauge-inputs.sh
7. OBS Studio Configuration
OBS Studio's built-in Video Capture Device (V4L2) source cannot handle MPEG2 streams and will show a black screen with this card. Instead, use a Media Source for each S-Video input.Before Launching OBS
If the udev rule is not yet in place, set the inputs manually from a terminal:v4l2-ctl -d /dev/video0 --set-input=2 && v4l2-ctl -d /dev/video1 --set-input=2
Adding a Media Source in OBS
- In the Sources panel, click the + button and select Media Source.
- Name it (e.g. VCR or Camcorder) and click OK.
- In the Properties dialog, uncheck Local File.
- Set Input to /dev/video0 (for VCR / S-Video port 1) or /dev/video1 (for Camcorder / S-Video port 2).
- Set Input Format to mpeg.
- Click OK. Live video should appear immediately.
Source Settings Summary
- Source Type: Media Source (NOT Video Capture Device/V4L2)
- Local File: unchecked
- Input: /dev/video0 or /dev/video1
- Input Format: mpeg
8. Quick Reference
Check Driver Status
sudo dmesg | grep -iE "hauppauge|saa7164"v4l2-ctl --list-devices
Set S-Video Inputs
v4l2-ctl -d /dev/video0 --set-input=2v4l2-ctl -d /dev/video1 --set-input=2
Test Capture from Terminal
dd if=/dev/video0 of=test.mpg bs=1M count=10vlc test.mpg