[FFmpeg-user] Grabbing quality from TV card

tovis mailer.tovis at freemail.hu
Sun Mar 18 21:22:00 CET 2012

I have reach some progress :D
Some one later suggest to use h264 codec (I think dE.) - I've decided to
give a chance. I've downloaded and compile x264 library from git (I have
several pain, because I have to get also latest yasm to compile it with
appropriate assembler, and also install Debian package autoconf). But the
result was prove this. I have using command:

$ ffmpeg -v verbose -f video4linux2 -i /dev/video0 -r 29.97 -s 640x480
-vcodec libx264 \
 -t 10 -f avi -y /tmp/test01.avi

In result I have resonable good quality of the video stream :D

Next I have tried to get sound. As it suggested in ffmpeg documentation I
have checked available options for alsa:
$ cat /proc/asound/cards
 0 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfe024000 irq 16
 1 [HDMI           ]: HDA-Intel - HDA ATI HDMI
                      HDA ATI HDMI at 0xfdffc000 irq 19
 2 [Bt878          ]: Bt87x - Brooktree Bt878
                      Brooktree Bt878 at 0xfdbfe000, irq 20

$ cat /proc/asound/devs
  2:        : timer
  3:        : sequencer
  4: [ 0- 2]: digital audio capture
  5: [ 0- 1]: digital audio playback
  6: [ 0- 1]: digital audio capture
  7: [ 0- 0]: digital audio playback
  8: [ 0- 0]: digital audio capture
  9: [ 0- 0]: hardware dependent
 10: [ 0]   : control
 11: [ 1- 3]: digital audio playback
 12: [ 1- 0]: hardware dependent
 13: [ 1]   : control
 14: [ 2- 1]: digital audio capture
 15: [ 2- 0]: digital audio capture
 16: [ 2]   : control

I have using command for grabbing:

$ ffmpeg -v verbose -f alsa -ac 2 -i hw:0 -f video4linux2 -i /dev/video0 \
-r 29.97 -s 640x480 -vcodec libx264 \
-f avi -y test02.avi

No sound :( I have tried hw:0, hw:1 and hw:2 as input, but nothing.
I have compile latest mp3lame from sourceforge. No result. But in video
stream, mp3 track is exist (I have checked on windows using mediainfo)!?

I goes back to check v4l2 facilities. I have list available controls for
/dev/video0, using command v4l2-ctl (getting from Squeeze repository),
here is the result:

brightness (int)  : min=0 max=65535 step=256 default=32768 value=32768
contrast (int)  : min=0 max=65535 step=128 default=32768 value=32768
saturation (int)  : min=0 max=65535 step=128 default=32768 value=32768
hue (int)  : min=0 max=65535 step=256 default=32768 value=32768
balance (int)  : min=0 max=65535 step=655 default=32768 value=32768
bass (int)  : min=0 max=65535 step=655 default=32768 value=32768
treble (int)  : min=0 max=65535 step=655 default=32768 value=32768
mute (bool) : default=0 value=1
chroma_agc (bool) : default=0 value=0
combfilter (bool) : default=0 value=0
automute (bool) : default=0 value=1
luma_decimation_filter (bool) : default=0 value=0
agc_crush (bool) : default=0 value=1
vcr_hack (bool) : default=0 value=0
whitecrush_upper (int)  : min=0 max=255 step=1 default=207 value=207
whitecrush_lower (int)  : min=0 max=255 step=1 default=127 value=127
uv_ratio (int)  : min=0 max=100 step=1 default=50 value=50
full_luma_range (bool) : default=0 value=0
coring (int)  : min=0 max=3 step=1 default=0 value=0

Tuner card internal sound output attached to CD input on mainboard for
onboard audio. I've goes back to "-i hw:0" and start grabbing w/o time
limit, in other console I have set mute to '0' :
$ v4l2-ctl --set-ctrl=mute=0
Sound from TV tuner is up, after several seconds, I have stopped grabbing,
when ffmpeg step out to shell sound is goes down - I have checked the sort
clipp - I've got sound :D

Happy? Not yet.
I need NO sound on the card's host box - I suppose to use it as a stream
server. The best (for me) if I could get sound from tuner card  directly,
avoid sound card. I have tried similar procedure using grabbing command:

$ ffmpeg -v verbose -f alsa -ac 2 -i hw:2 -f video4linux2 -i /dev/video0 \
-r 29.97 -s 640x480 -vcodec libx264 \
-f avi -y test02.avi

But no success. Is it possible to get sound avoid the sound card? Any


More information about the ffmpeg-user mailing list