LifeView FlyVideo3000FM NTSC
Introduction
This card works perfectly -- it gets 640x480 frames, audio directly from the card, and closed captioning. I've worked 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.
See also LifeView FlyVideo3000 PAL-N.
Identification
LifeView have rebranded this range to the 'FlyTV' range. This card is also called the FlyTV Prime 33 or FlyTV Prime 33FM. The '33' indicates that this card uses the SAA7133 chip. There are also 'Prime 30(FM)' and 'Prime 34(FM)' product lines, indicating the use respective use of the SAA7130 and SAA7134 chips.
The 3000 and the 3000FM cards are identified as having the same subsystem:
lspci -vvv: 02:0a.0 Multimedia controller: Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev 10) Subsystem: Unknown device 5169:0138
The cards have the saa7133HL-v101 chip.
Loading the right driver
The card needs the saa7134 driver, 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. Try the simplest method first:
modprobe saa7134
If the card is not working right, and you have a recent kernel, try this:
modprobe saa7134 i2c_scan=1
If both fail, you may need to configure the card manually by passing values for the card and/or tuner.
Selecting the tuner
Use card 2 in the Documentation/video4linux/CARDLIST.saa7134. Versions of FlyVideo 3000 are shipped with different tuners; to find yours, grep on the card and your television standard to pull up relevant alternatives:
grep Philips Documentation/video4linux/CARDLIST.tuner | grep NTSC
For the NTSC tuner on the FlyVideo 3000 (without the radio), I found 17 was the right one. The FlyVideo3000FM has a different tuner, and I 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.
Inserting the module
For this card, if autodetection fails, you can insert the module with the following options:
modprobe saa7134 card=2 tuner=39
The 3000 version of the card (without radio) takes tuner 17.
When you've found a method that works -- autodetection or manual configuration -- include the working options in your modules configuration setup. For details, see Saa713x devices: Generic SAA7134 Card Installation#Drivers_probing.
Getting PCI audio
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.
Recording with mencoder
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.
Recording with transcode
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.
Loading multiple cards
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.
Remote control
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.