Библиотека сайта rus-linux.net
Смотрим телепередачи под Linux
А.Стахнов.
Здравствуйте, глубокоуважаемые читатели и читательницы. Сегодня я расскажу вам, каким образом вы с помощью компьютера и Linux сможете отдохнуть, я даже прямо скажу - посмотреть телепередачи. Чтобы смотреть телепередачи, а так же слушать FM радио необходимо и достаточно потратить порядка 40 американских национальных рублей (именно столько сегодня стоит дешевая плата TV Tuner'а). Идеальный вариант - плата TV Tuner'а от известного производителя - качество исполнения и вывода изображения приличное, нормальная поддержка драйверами. В этой области признанным лидером являются изделия AverMedia, и если ваши финансы позволяют, - рекомендую приобрести TV Tuner именно этого производителя. Не рекомендую вам приобретать внешний TV Tuner, подключаемый к компьютеру по шине USB. Причин две, зато веские - отсутствие нормальных драйверов (по крайней мере, под операционную систему Linux) для такого типа TV Tuner'ов, а во вторых - полоса пропускания USB (по крайней мере, USB 1.1) недостаточна для передачи без потери данных нескомпрессированного видео.
Как правило, выпускаются TV Tunerы следующих модификаций:
- Просто TV Tuner
- TV Tuner со встроенным FM радиоприемником
- TV Tuner со встроенным FM радиоприемником и пультом дистанционного управления
Тут уж я не советчик, лично у меня третий вариант (TV Tuner ForteMedia 951) и именно его я буду описывать.
При покупке обратите внимание - TV Tuner должен иметь поддержку SECAM D/K - именно в этом стандарте ведется вещание телепередач в странах СНГ.
TV Tuner куплен и установлен в компьютер, а что дальше? Дальше мы должны обеспечить две вещи - корректно настроенные драйвера и соответствующие программы для просмотра телевизионных передач и приема FM радиостанций.
Прежде чем заняться настройкой драйверов, совершим небольшой экскурс в мир TV Tunerов. TV Tuner для нас, пользователей, состоит из трех-четырех частей:
- Собственно TV Tuner - аналоговая схема, запаянная в жестяную коробочку и занимающая приблизительно четверть платы TV Tuner'а
- FM Tuner - как правило он входит в состав TV Tuner'а
- Микросхема оцифровки аналогового видеосигнала и передачи данных на PCI шину компьютера
- Микросхема управления звуком (может отсутствовать)
Настройка TV Tuner'а
Казалось бы - все просто. На самом деле не все так хорошо. Для того чтобы настроить нашу плату, необходимо знать используемые в нашей плате типы устройств. Ключевое слово для нас при поиске информации - video4linux или video4linux2 - набор драйверов и документации для обеспечения поддержки видео под Linux, а так же bttv. Информацию о video4linux вы можете получить прямо в своем дистрибутиве. Для этого необходимо установить пакет, содержащий исходные тексты ядра операционной системы и модулей, и почитать документацию, которая находится в каталоге /usr/src/linux-2.xx.xx/Documentation/video4linux/bttv/, где 2.xx.xx - версия ядра операционной системы. Нас интересуют следующие файлы:
README - в этом файле кратко описан процесс установки и настройки вашего TV Tuner'а
MAKEDEV - это скрипт, который создает в вашем каталоге /dev необходимые для правильного функционирования TV Tuner'а файлы устройств
CARDLIST - этот файл содержит список поддерживаемых на сегодняшний день плат TV Tunerов и типов установленного на ней тюнера. На данный момент в списке присутствуют 66 плат TV Tunerов и 30 тюнеров
Insmod-options - в этом файле описываются опции, с которыми устанавливаются модули ядра операционной системы Linux, предназначенные для управления TV Tunerом
Modules.conf - файл содержит пример конфигурации платы TV Tuner'а
Помимо данной информации я очень рекомендую ознакомится со следующими источниками информации:
The BTTV Mini-HOWTO - англоязычный файл по настройке TV Tuner'а
bttv mini-HOWTO Владимир Бормотов, Дец Алексей - русскоязычный файл по настройке TV Tuner'а
Прежде чем приступить к настройке TV Tuner'а необходимо выполнить следующие несколько условий:
1. Иметь настроенную звуковую карту, поскольку звук с TV Tuner'а передается по кабелю на вход звуковой карты
2. Скомпилировать ядро операционной системы Linux с поддержкой следующих функций (ядро операционной системы Linux большинства дистрибутивов собрано с поддержкой необходимых нам устройств):
Установить поддержку ядром операционной системы драйвера bttv
Установить поддержку I2C интерфейса
Установить поддержку I2C bit-banging интерфейса
В секции Multimedia Devices, включите
Включить поддержку Video For Linux, и установить BT8XX Video For Linux как модуль
3. Проверить наличие устройства /dev/video* и если таковое отсутствует - создать следующими командами:
cd /dev
./MAKEDEV video 0
или лучше воспользоваться файлом /usr/src/linux-2.xx.xx/Documentation/video4linux/bttv/MAKEDEV
После выполнения этих условий можно переходить к настройке платы TV Tuner. Для проверки работоспособности платы TV Tuner, а так же для подборки параметров для драйвера необходимо использовать какое-то программное обеспечение, способное работать с video4linux. Пожалуй, самый простой вариант - использовать программу xawtv, которая примечательна тем, что использует библиотеку libXaw, и не требует никаких дополнительных специфических библиотек для компиляции. Помимо этого, в большинстве современных дистрибутивов операционной системы Linux программа xawtv присутствует, и установить ее не составляет большого труда.
В документации на вашу плату найдите точное название вашей платы, а в файле CARDLIST выясните, поддерживает ли драйвер эту карту и определяем необходимый нам для успешного использования драйвера номер карты TV Tuner'а.
К сожалению, драйвер bttv разрабатывают и сопровождают наши заграничные друзья, а в нормальные страны типа Франции или Канады дешевые китайские платы за тридцать долларов не попадают. Наш неизбалованный потребитель обычно покупает устройство по принципу - <чтобы подешевле и под Windows работало>, поэтому зачастую приобретаются всякие устройства, которые опознать совершенно невозможно, а из программного обеспечения - драйвер под Windows и убогая программка для просмотра телепередач. В этом случае остается только одно - настройка устройства методом <тыка>.
Небольшое отступление - в странах СНГ до сих пор используется стандарт SECAM D/K, поэтому при редактировании конфигурационного файла .xawtv выставлен тип кодировки SECAM. Помимо этого, при настройке драйвера bttv необходимо выставить переменную tuner type. Для большинства плат TV Tunerов и стандарта SECAM подходит tuner type=3 (PHILIPS SECAM). В том случае, если Вам это не поможет - попробуйте другие типы тюнеров.
Поскольку мы для отладки используем программу xawtv, предварительно создадим в домашнем каталоге пользователя, который будет запускать на выполнение программу xawtv конфигурационный файл .xawtv.
Конфигурационный файл .xawtv приведен ниже:
[global]
fullscreen = 800 x 600
freqtab = europe-east
pixsize = 128 x 96
pixcols = 1
jpeg-quality = 75
[defaults]
norm = SECAM
capture = over
source = Television
В этом файле мы определили размер изображения, частотную таблицу каналов, качество jpeg сжатия, стандарт телевизионного изображения и источник сигнала. Настройку проще всего производить на метровом диапазоне, который для стран СНГ содержит двенадцать каналов - R1-R12.
Нам необходимо для драйвера bttv найти номер типа TV Tunera, при котором наша плата TV Tuner будет нормально функционировать.
Алгоритм подбора следующий:
1. Запускаем X Window
2. В X Window запускаем два Xterm - в одном с помощью команды su - регистрируемся в системе от имени пользователя root, а с помощью второго терминала будем запускать программу xawtv
3. Устанавливаем модуль ядра операционной системы, поддерживающий i2c: modprobe i2c-dev
4. Устанавливаем модуль ядра операционной системы для тюнера, поддерживающий стандарт SECAM: modprobe tuner type=3
5. Устанавливаем модуль ядра операционной системы, с драйвером bttv и типом карты TV Tuner равный 1: modprobe bttv card=1
6. Затем запускаем программу xawtv: xawtv
7. Далее, с помощью стрелочек <вверх-вниз> перебираем телевизионные каналы, а с помощью стрелочек <вправо-влево> производим тонкую настройку телевизионных каналов
Проверяем как выводится изображение и звук. Если телепередача не выводится нормально - черно-белое изображение, нет звука или вообще ничего не видно, не слышно - 'q' в окошке xawtv И выполняем следующие действия:
8. Выгружаем драйвер bttv rmmod bttv
9. Меняем тип карты TV Tuner'а: modprobe bttv card=2
Повторяем пункты 4,5,6,7 до тех пор, пока не добьемся результата. Я для облегчения жизни сделал 2 файла Inm, Unm в которых прописаны команды по установке и соответственно деинсталляции модулей драйвера.
В моем случае в списке поддерживаемых плат TV Tunerов под номером 42 находится некая плата, в названии которой присутствует <951>. Поэтому я выбрал:
bttv card=42
tuner type=3
Однако в этот простой алгоритм может добавиться еще кое какие действия. Некоторые платы TV Tuner имеют в своем составе отдельный декодер звука (обычно микросхемы msp34xx, tda8425, tea6300). В этом случае необходимо дополнительно загружать соответствующие модули. Лично я <счастливый обладатель> такого типа TV Tuner'а. В этом случае алгоритм несколько другой - сперва добиваемся того, чтобы наш TV Tuner четко и правильно выводил телевизионное изображение, а потом, с помощью команды modprobe tvsound tda8425=1 попытаться добиться вывода звука. Что приятно, при попытке загрузки данного модуля происходит автоматический подбор типа микросхемы. В моем случае после выполнения команды modprobe tvsound tda8425=1 заработал звук, хотя на моем устройстве установлена микросхема pic16c54. Данный факт я выяснил при использовании опции debug=1 и файла ./var/log/messages.
Предположим все прошло успешно, вы определили параметры, с которыми необходимо загружать модули ядра, относящиеся к плате TV Tuner. Теперь нам необходимо сделать так, чтобы эти модули автоматически загружались при старте вашей операционной системы. Для этого в файл /etc/conf.modules необходимо добавить следующие строки (эти строки касаются именно моей платы TV Tuner'а, для вашей наверняка тип карты или тюнера будет другим):
# i2c
alias char-major-89 i2c-dev
options i2c-core i2c_debug=1
options i2c-algo-bit bit_test=1
# bttv
alias char-major-81 videodev
alias char-major-81-0 bttv
options bttv card=42 radio=1
options tuner type = 3debug=1
options tvsound pic16c54=1
Перегружаем наш компьютер, запускаем опять программу xawtv и проверяем функционирование платы TV Tuner. В случае успеха можно переходить к программам, функционирующим под управлением X Window.
Правда нудно? Существует более на первый взгляд более простой путь настройки платы TV Tuner'а. Что? Я нехороший дядька, прячу цацку от маленьких? Как говорится в одном анекдоте: <головой работать надо>.
На самом деле все достаточно просто.
Программы для облегчения настройки TV Tuner'а
Для того, чтобы подыскать подходящую программу на интересующую вас тему обычно достаточно просто сходить по одному адресу - www.freshmeat.net и набрать в строке поиска интересующее нас слово. В нашем случае это всего две буквы - tv. На мой запрос поисковая система сайта выдала 152 программных проекта, которые так или иначе связанны со словосочетанием tv. Теперь не спеша просмотрите список полученных программ. Среди программ, явно не вписывающихся в наши требования можно отобрать следующие программы:
bttvgrab - программа позволяющая с высоким качеством производить видеозапись
GCBTTV - утилита для конфигурации платы TV Tuner'а
GnomeTV - программа для GNOME для просмотра телепередач и телетекста
kwintv - программа для KDE для просмотра телевизионных передач
opTV - маленькая программа для просмотра телепередач
radiodj - программа для прослушивания передач радиостанций FM диапазона
rdj - аналогичная по назначению программа
XawTV - простая программа для просмотра телепередач
xmradio - программа для приема FM радиостанций
Zapping - программа для GNOME, для приема телепередач
Как видите, список относительно небольшой, но сравнимый со списком бесплатного программного обеспечения для приема телепередач для операционной системы Windows (кстати, для поклонников Windows рекомендую посетить очень хороший сайт - tuner.ixbt.com).
Так же можно воспользоваться ссылкой www.linuxlinks.com/Software/Multimedia/TV/ - содержит список из трех десятков программ, предназначенных для просмотра телепередач.
Что дальше? Читаем описание программ, смотрим cкриншоты, выбираем понравившуюся программу и : Не спешим. А какой у вас дистрибутив? если Red Hat, AltLinux, Mandrake или еще какой, в качестве стандарта использующий RPM - получаем некоторые неудобства. Практически все перечисленные программы поставляются в исходных текстах, в так называемом tarball формате (а по человечески - просто архивный файл, содержащий исходные тексты программы и все необходимое для ее успешной компиляции).
Вы спросите, в чем проблема? Скомпилируем, установим - вот и вся проблема : Но в RPM based дистрибутивах так <не кошерно>. Менеджер пакетов не знает, какие пакеты вы компилировали и устанавливали самостоятельно, в результате могут быть различные неприятные моменты при установке и обновлении пакетов в системе. Производители дистрибутивов тоже это понимают и предусмотрели такой случай. Чтобы из простого tar архива можно вполне быстро и просто сделать RPM пакет. Есть два пути - более идеологически правильный и работающий в большинстве случаев.
Немного отвлечемся. При создании RPM пакета помимо исходных кодов программы используется специальный spec файл, в котором находятся директивы компиляции, используемые библиотеки, пути и каталоги, используемые при инсталляции пакета и тому подобные вещи. Если вы знаете, что в вашем tar архиве программы есть такой файл - можно воспользоваться программой rpmbuild, которая может из tar архива сделать RPM как с иcходиками программы, так и бинарный RPM. Как правило разработчики программы не напрягают себя созданием spec файла и такой способ не проходит. Вариант номер два - использовать программу rpm следующим образом: rpm -ta имя_архива.
А можно поступить по-другому. сходить на сайт www.rpmfind.net и поискать нужную вам программу уже в виде готового RPM пакета.
Ну ладно, отвлекся. Как я уже упоминал - существуют программы, позволяющие быстро сконфигурировать вашу плату TV Tuner'а - в частности это программа GCBTTV.
GCBTTV - программа, написанная на perl и использующая библиотеку GTK. позволяет из списка выбрать вам тип карты TV Tuner'а или подобрать тип карты автоматически, тип тюнера и прописать загружаемые модули и их параметры в файл modules.conf. Помимо этого программа делает конфигурационный файл для xawtv. Лично мне это не помогло, поскольку мою плату программа опознать вообще не смогла и мне пришлось подбирать тип платы TV Tuner'а и параметры загрузки модулей.
Программы для просмотра телепередач
aatv
Программа - курьез. Читатели, которые постарше, наверняка помнят народные программистские забавы - картины распечатанные на принтере, нарисованные с помощью обычных букв и цифр. Программа выводит телевизионное изображение с помощью символов в текстовой консоли. Прикольно, но бесполезно.
Рисунок 1
GnomeTV
Программа для GNOME позволяющая смотреть телепередачи и читать телетекст. проект не развивается (версия 0.3 вышла в конце 2000 года).
Рисунок 2
kWinTV
Программа для просмотра телепередач под KDE. Удобна, красива, функциональна.
Рисунок 3
wmtv
Программа интересна тем, что может в минимизированном виде выводить изображение. Много места не занимает, а в тот момент, когда идет что-то интересное - просто делаем на минимизированной программе двойной щелчок мышью и получаем увеличенное изображение. Программу можно настроить таким образом, сто по двойному щелчку она будет вызывать внешнее приложение, например тот же xawtv.
Использование пульта ДУ
LIRC
Linux Infrared Remote Control - программное обеспечение для управления устройством с помощью пульта дистанционного управления. Поскольку проект развивающийся, рекомендуется перед установкой скачать самую последнюю версию программного обеспечения с сайта разработчиков. Перед установкой ознакомьтесь со списком поддерживаемых устройств и документацией. Вполне вероятно, что вам придется вносить изменения в драйвер bttv. В дистрибутиве lirc содержатся примеры конфигурационных файлов для поддерживаемых устройств.
Поддержка управления с пульта дистанционного управления есть, например, в том же kWinTV.
Вот и все. Пробуйте, экспериментируйте, и смотрите передачи.
Публикации статьи
Впервые опубликовано на WWW.SOFTERRA.RU
http://www.softerra.ru/freeos/20444/
Журнал Hard N Soft #11 2002 год
Электронная версия журнала
http://www.hardnsoft.ru/magazine.php?issue=101&article=438