Содержание |
Иногда очень хочется отдохнуть от надоевшей работы, а самым популярным средством организации пассивного досуга является телевизор. Сразу скажу, что просмотр телевизора - это бесполезная трата времени, которое можно потратить на другие, более полезные дела. Однако иногда хочется просто отдохнуть, ничего не делая...
Привычно считать, что чем дороже устройство, тем оно лучше. В ряде случаев это действительно так. Обычно, покупая тюнер за 5 000 рублей, вы получаете большую коробочку, пульт, на котором много кнопочек, и программное обеспечение (очень сильно похожее на Media Center от одного из проприетарных гигантов). Покупая тюнер за 900 рублей, мы получаем маленькую коробочку, пультик с небольшим количеством кнопочек и глючный старый софт... В обоих случаях софт не работает под Linux, а если мы работаем под Linux, то мы можем использовать практически любой пульт! А если нет разницы?
Эти рассуждения не относятся к тем поделкам, которые поддерживают только PAL или только SECAM, однако они справедливы ко львиной доле тюнеров, работающих на чипе Philips saa7134.
Дано: компьютер с установленной операционной системой Gentoo Linux, тв-тюнер "неизвестного китайского производства" (продается под маркой RoverMedia Tv Link Pro за 900 рублей =)) и пульт от этого тв-тюнера (хотя можно использовать и любой другой).
Задача: заставить работать тюнер и пульт, телевизор будем смотреть программой tvtime.
Если вы используете ядро из вашего дистрибутива, то, наверняка, все необходимое уже включено в ваше ядро. Иначе делаем
cd /usr/src/linux make menuconfig
включаем
Device Drivers ---> Multimedia devices ---> <M> Video For Linux
и там же
[*] Enable Video For Linux API 1 compatible Layer
Затем в
Device Drivers ---> Multimedia devices ---> [*] Video capture adapters ---> <M> Philips SAA7134 support
далее включаем
Device Drivers ---> I2C support ---> <M> I2C device interface
Устанавливаем модули и переходим к следующему пункту.
В общем виде запуск тюнера выглядит следующим образом:
rmmod saa7134 rmmod tuner modprobe tuner secam=d modprobe saa7134 tuner=XX card=YY
Главная проблема - подобрать рабочие XX и YY. Однако их можно найти в сети, если у вас распространенная модель тюнера (например AverMedia). Иначе вам придется подбирать эти цифры вручную (как это пришлось в свое время делать мне).
В любом случае для вас будет полезной документация в /usr/src/linux/Documentation/video4linux.
Единственной возможностью проверить правильность выбора параметров является непосредственная проверка работы тв-тюнера. Делать мы это будем с помощью программы tvtime...
Дополнение
Если в комплекте тюнера нету шнура для передачи звука на аудиокарту можно воспользоваться модулем saa7134_alsa для передачи звука по PCI-шине
modprobe saa7134_alsa index={номер алса устройства}
В принципе использование этого модуля оправдано только при использовании mplayer как тв-программы, в остальных случаях этот модуль создает только дополнительные неудобства
В Gentoo Linux установка выполняется простой командой
emerge tvtime
Теперь запускаем саму программу. Если есть так называемый "белый шум" (необходимо выключить обнаружение входного сигнала) - значит все заработало, если нет - убедитесь, что входной канал установлен в Television (Правая кнопка мыши -> Основные настройки)! Попробуйте попереключать каналы клавишами "вверх" и "вниз". Если у вас обычная антена, то скорее всего на 3-м канале у вас будет первый канал на 5-м канале второй...
Если у вас кабельное телевидение, то сигнал будет поступать как в SECAM, так и в PAL. Каналы, которые транслируются в PAL, будут черно-белыми и с шумом вместо звука. Чтобы tvtime правильно показывал такой канал, необходимо запомнить его порядковый номер и открыть файл ~/.tvtime/stationlist.xml
nano ~./tvtime/stationslist.xml
Каналы хранятся в следующем xml-тэге с атрибутами:
<station name="N" active="1" position="N" band="UHF" channel="UM" finetune="0" norm="SECAM" audio="auto" />
где N - порядковый номер канала в сетке, а M так же некоторый номер, который в отличии от N менять нельзя.
Находим запись в xml-файле, соответствующую нашему каналу, и меняем атрибут norm="SECAM" на norm="PAL", а audio="auto" на audio="dk"
<station name="N" active="1" position="N" band="UHF" channel="UM" finetune="0" norm="PAL" audio="dk" />
И так далее...
Если же у вас нету таких извращений с разными стандартами то создать stationlist можно с помощью комманды
tvtime-scanner
После установки данного мультимедияплеера просмотр телевидения сводится к выполнению комманды
mplayer tv://{номер канала} -tv driver=v4l2:normid=5:device=/dev/video0:chanlist=russia:immediatemode=0
если вывод звука производится через saa7134_alsa
mplayer tv://{номер канала} -tv tv=driver=v4l2:normid=5:device=/dev/video0:chanlist=russia:alsa=1:adevice=hw.{номер устройства алса}:amode=1:audiorate=32000:forceaudio=1:immediatemode=0:chanlist=russia
Еще более простой способ использования мплеера для просмотра ТВ заключается в прописании данных настроек в конфиг
Пример
cat .mplayer/config # Write your default config options here! tv=driver=v4l2:normid=5:device=/dev/video0:chanlist=russia:alsa=1:adevice=hw.1,0:amode=1:audiorate=32000:forceaudio=1:immediatemode=0:chanlist=russia
После этого использование мплеера как тв-программы сведется к банальному
mplayer tv://{номер канала}