TV-tuner Avermedia AVerTV Studio 307 и Ubuntu

Сегодня на работе потребовалось записывать телевизионный канала в низком качестве, для контроля за рекламными блоками бегущей строки. На складе нашелся ТВ-тюнер Avermedia AVerTV Studio 307.

dmesg приятно удивил, что устройство известно системе:

[   47.068861] saa7130/34: v4l2 driver version 0.2.14 loaded
[   47.069024] ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 18 (level, low) -> IRQ 18
[   47.069037] saa7134[0]: found at 0000:02:04.0, rev: 1, irq: 18, latency: 32, mmio: 0xfeafec00
[   47.069047] saa7134[0]: subsystem: 1461:9715, board: Avermedia AVerTV Studio 307 [card=45,autodetected]
[   47.069065] saa7134[0]: board init: gpio is 0
[   47.069224] input: saa7134 IR (Avermedia AVerTV St as /devices/pci0000:00/0000:00:1e.0/0000:02:04.0/input/input5
[   47.097048] e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
[   47.268581] saa7134[0]: i2c eeprom 00: 61 14 15 97 ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268604] saa7134[0]: i2c eeprom 10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268624] saa7134[0]: i2c eeprom 20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268645] saa7134[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268671] saa7134[0]: i2c eeprom 40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268713] saa7134[0]: i2c eeprom 50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268736] saa7134[0]: i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.268762] saa7134[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[   47.603338] tuner 0-0043: chip found @ 0x86 (saa7134[0])
[   47.603394] tda9887 0-0043: tda988[5/6/7] found @ 0x43 (tuner)
[   47.603401] tuner 0-0043: type set to tda9887
[   47.611969] tuner 0-0061: chip found @ 0xc2 (saa7134[0])
[   47.612003] tuner-simple 0-0061: type set to 51 (Philips PAL/SECAM_D (FM 1256 I-H3))
[   47.612007] tuner 0-0061: type set to Philips PAL/SECAM_D
[   47.612011] tuner-simple 0-0061: type set to 51 (Philips PAL/SECAM_D (FM 1256 I-H3))
[   47.612014] tuner 0-0061: type set to Philips PAL/SECAM_D
[   47.614700] saa7134[0]: registered device video0 [v4l2]
[   47.614739] saa7134[0]: registered device vbi0
[   47.614786] saa7134[0]: registered device radio0

Видим, что драйвер: saa7314, номер карты: 45, аудио тюнер: 51.

Создадим файл /etc/modprobe.d/tv для подгрузки модуля:

options saa7134 card=45 alsa=1 secam=dk tuner=51
options tuner secam=d

Здесь: alsa=1 -поддержка alsa драйве; secam=dk -Российский формат ТВ

Перегружаемся и устанавливаем tvtime:

$ sudo apt-get install tvtime

Запускаем сканирование каналов:

$ tvtime-scanner --norm=SECAM

После чего создается файл ~/.tvtime/stationlist.xml со списком каналов.

Все, можно смотреть, запускаем tvtime

Теперь займемся записью.

Скрипт для запуска tvtime для настройки устройства video0 на канал 32:

/usr/bin/tvtime -d /dev/video0 -c 32 > /dev/null 2>&1 &

Скрипт для записи видео, запускаем скрипт через cron раз в час:

#!/bin/sh
D=`date +%Y.%m.%d_%H.%M`
/usr/bin/streamer -q -o /home/video/CH32/${D}.avi \
-O /dev/null -c /dev/video0 -r 5 -f mjpeg \
-j 20 -s 320x240 -t 60:00 -p2 > /home/video/CH32/ch32.log &
#Удаление старых файлов более $DAY_RM дней назад
DAY_RM=20
/usr/bin/find /home/video/ -type f -name '*.avi' -ctime +${DAY_RM} -exec rm {} \;

Настройку устройства /dev/video0 можно осуществить с помощью утилиты dov4l.

примеры:

$ dov4l -q

$ dov4l -d /dev/video0 -b 32896 -u 32896 -c 10000 -n 10000 -w 0 -s 640,480

В общем man.

Почитать:

http://www.mjmwired.net/kernel/Documentation/video4linux/CARDLIST.tuner
http://liski.vsi.ru/ubuntu/index.php?topic=84.msg413
http://mydebianblog.blogspot.com/2006/07/beholder-beholdtv-409fm.html
http://mydebianblog.blogspot.com/2007/08/blog-post_8710.html

Leave a Reply