USB or PCI, both technologies, have more bandwidth than is necessary to tune television channels and to handle audio signals if we talk about a single management channel (a single tuner and a single sound device with only one or two applications or sources. audio being processed)
What will make the difference is the TV tuner chip, whether or not there is hardware encoding or decoding. Today almost everything that is sold is without hardware decoding since the processors are so powerful that they do it through software, an old PCI TV Card almost always comes with a hardware encoder, which allows your machine to be more free of work and even make better use of mixes simply because it frees up work. In short, USB devices are heavier and require extra work from your machine.
This chip its handled in many TV cards, and most of those already icludes an build-in sound card (basic but a capable sound card)
Notable mentions are:
Unsupported due stupid developers work:
Most of those cards works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning. Inclusive with up to five cards in one computer, though you need a powerful CPU to keep up with the data flow.
For detailed images of the various slightly different models, see bttv gallery. Most of LifeView's saa713x cards fit both 32-bit PCI slots and 64-bit PCI-X slots -- see the telltale second slit in the foot of the card. Most of them are old PCI bus and there is not yet a PCIe bus based!
Most of cards are just rebranded, excelent example is the LifeView series, those are same as 'FlyTV' range also called the FlyTV Prime 33 or also FlyTV Prime 33FM. The '33' indicates that this card uses the SAA7133 chip Ths is not the same as SAA7134 of this document. There are also 'Prime 30(FM)' and 'Prime 34(FM)' product lines, indicating the use respective use of the SAA7130 and SAA7134 chips.
lspci -vv | grep -e Multimedia -e Phillips -e Video -e SAA -A 1
You will have something like:
0000:00:0a.0 Multimedia controller: Philips Semiconductors SAA7134 FlyView ...
Subsystem: Unknown device 5169:0138
Most of those cards have the saa7133HL-v101 chip. But Some of those already has a multimedia sound card build-in, so we need to setup in parts:
The card needs the saa7134 module, which should be built as a module in the kernel. When the module is inserted, your particular variant may be autodetected or you may need to manually configure it. Those cards in fact dont have good autodetection process so its better to remove and reload to test the right configuration, also you will need the saa7134-alsa for the build-in sound card and also specify the build-in tunner sometimes separatly:
modprobe -f -r saa7134 saa7134-alsa
, mostly
in debian it load automatically, so you must remove it first
and later try with modprobe saa7134
to load again !modprobe -f -r saa7134 saa7134-alsa
and then loading again
with this: modprobe saa7134 i2c_scan=1
to checkYou must check the Documentation/video4linux/CARDLIST.saa7134. As example, some versions of FlyVideo 3000 are shipped with different tunners to find yours, check then at the Documentation/video4linux/CARDLIST.tuner list!
For the NTSC tuner on the FlyVideo 3000 (without the radio), It found 17 was the right one. The FlyVideo3000FM has a different tuner, and it found 43 works, but only gives you channels below 60. Tuner 39 gives you all channels. In kernel 2.6.12 I had to reboot to reset the tuner -- modprobe didn't do it -- but in kernel 2.6.18 the tuner reset without a reboot. With 2.6.19, I switched to tuner 95.
So then for those cards, if autodetection fails, you can insert the module with the following options:
modprobe saa7134 card=2 tuner=39
The command of example was for Flyvideo 3000 that doe snot have radio ( 3000FM does)
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup.
You can get the audio from the card through the PCI bus instead of through the audio out jack and a patch cable to your sound card.
For kernels 2.6.15 and later, see Saa7134-alsa for details on both ALSA and OSS sound.
For earlier kernels, adding "oss=1" as an insmod parameter will create /dev/dsp1 and /dev/mixer1. For detailed instructions, see Gentoo's saa7134 wiki.
In earlier kernels, you use
aumix -d /dev/mixer1 -I
to set the recording channel to 1.
Use something like this:
mencoder
tv://
-tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:
adevice=/dev/dsp1:input=0:amode=1:normid=4 -ffourcc DX50 -ovc lavc -lavcopts vcodec=mpeg4:mbd=2
-oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi
This gives me stereo audio with medium-quality video. I found that if I included "-of mpeg" to create a true mpeg stream, the audio got delayed -- there are no sync problems with the avi file.
You can also use transcode to record:
transcode -x v4l2,v4l2 -M 2 -i /dev/video$DEV -p /dev/dsp1 -e 32000,16,2 -y ffmpeg -F mpeg4
-c 00:30 -g 640x480 -f 29.970,4 -I 1 -u 1024 -Q 3 -E 32000,16,2 --lame_preset medium -o output.avi
Note the "-e 32000,16,2", letting transcode know about the parameters of the audio stream from the saa7134 card.
The files produced in this manner are almost twice as large as the ones produced by the mencoder command above, but show significantly less pixillation. CPU utilization is also about double. For the saa7134, 48000Hz is only valid for external audio input to the card; for internal audio input (directly via the PCI bus), you have to use 32000Hz.
If you have more than one card in the same machine, and want to control which devices they create, you can use this sort of thing with kernels before 2.6.15:
saa7134 video_nr=1,2,3 vbi_nr=1,2,3 mixer_nr=1,2,3 radio_nr=1,2,3 card=2,2,2 tuner=39,39,17
With 2.6.15 and later kernels, use this instead (drop the mixer and add a line for the audio driver):
saa7134 card=2,2,2 tuner=39,39,17 video_nr=1,2,3 vbi_nr=1,2,3 radio_nr=1,2,3
saa7134-alsa index=1,2,3
In /etc/modprobe.d/saa7134, I use this for five different cards (including two LifeView FlyTV Platinum cards):
options saa7134 card=2,54,2,54,2 tuner=39,54,39,54,17 video_nr=1,2,3,4,5 \
vbi_nr=1,2,3,4,5 radio_nr=1,2,3,4,5 disable_ir=1,1,1,1,1
install saa7134 /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa
options saa7134-alsa index=1,2,3,4,5
This creates video1, vbi1, radio1, and the alsa device hw:1 for the first card, and so on up.
With the FlyVideo 3000(FM), you should have the small grey credit-card sized remote. And yes, this is supported and should be working (I haven't tested it).
For instructions, see Saa713x devices: Generic SAA7134 Card Installation#Remote_setup.
Closed captioning on saa713x is now working; Michael Schimek has added support to libzvbi (mid-May 2005); see Text capture.