LifeView FlyVideo3000FM NTSC

From LinuxTVWiki
Revision as of 01:59, 5 May 2005 by Liontooth (talk | contribs)
Jump to navigation Jump to search

Installation instructions

Identification

 lspci -vvv: 0000:02:0a.0 Multimedia controller: Philips Semiconductors SAA713X Audio+video broadcast decoder (rev 10)
             Subsystem: Unknown device 5169:0138

This card has the saa7133HL-v101 chip.

Use card 2 in the /usr/src/linux-2.6.12-rc2/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:

  cat /usr/src/linux/Documentation/video4linux/CARDLIST.tuner | grep Philips | grep NTSC

For the NTSC tuner, I found 17 was the right one. I had to reboot to reset the tuner; modprobe didn't do it. Boot with this in /etc/modules:

  saa1734 card=2 tuner=17 oss=1

The "oss=1" will create /dev/dsp1 and /dev/mixer1, and is added to take advantage of this card's ability to use PCI audio transfer -- that is to say, you can get the audio straight off the card, without needing a patch cable to your sound card. For detailed instructions, see Gentoo's saa7134 wiki.

In brief, you use

  aumix -d /dev/mixer1 -I

to set the recording channel to 1 and then 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 DIVX -ovc lavc -lavcopts vcodec=mpeg4:vhq 
  -oac mp3lame -lameopts cbr:br=128 -endpos 60 -o output.avi

This gives me stereo audio with high-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:

  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 tv you have to use 32000Hz.

With Michael Schimek's help, I've finally also succeeded in making closed captioning work -- something like this patch is needed and will be submitted shortly

diff -uprNw saa7134-video.c.orig saa7134-video.c
--- saa7134-video.c.orig        2005-05-04 17:54:33.000000000 -0700
+++ saa7134-video.c     2005-05-04 17:26:46.000000000 -0700
@@ -169,7 +169,7 @@ static struct saa7134_format formats[] =
                .video_v_stop  = 22+239, \
                .vbi_v_start   = 10, /* FIXME */ \
                .vbi_v_stop    = 21, /* FIXME */ \
-               .src_timing    = 1
+               .src_timing    = 7
 static struct saa7134_tvnorm tvnorms[] = {
       {

Possibly educational is the record of my earlier failed attempt and the vbi images section for screenshots of the vertical blanking interval (vbi) with Michael's comments and proposed solution.