от Дафчо Табаков (dafo)(30-05-2004)

рейтинг (74)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Съдържание
  • Настройка на ядрото
  • Телевизия
  • Телетекст
  • Радио
  • Екстри
  • Полезни връзки

  • Мнозина от вас сигурно имат ТВ тунер на компютъра си и инсталиран Linux.С помощта на малко софтуер и още по-малко хардуер можете да си направите чудесна мултимедийна система за забавление.
    Тук ще опиша как да подкараме телевизия, телетекст, радио, и някои други ценни преимущества на ТВ тунерите.
    Освен тунера и Linux дистрибуция ни е необходимо правилно компилирано ядро с модули за тунера.Моят тунер е Aver Media TV Studio 203 и има чипсет Brooktree 878 (Conexant), телетекст, радио, както и A2 Stereо поддръжка.

    В конфигурацията на ядрото (2.4.25) на 2 места са необходими промени:


    1. В секцията I2C support
    # I2C support
     CONFIG_I2C=m
     CONFIG_I2C_ALGOBIT=m
     CONFIG_I2C_PHILIPSPAR=m
     CONFIG_I2C_CHARDEV=m
     CONFIG_I2C_PROC=m

    2. Модули за съответният тунер
    #
     # Multimedia devices
     # 
     CONFIG_VIDEO_DEV=m
     
     #
     # Video For Linux
     #
     CONFIG_VIDEO_PROC_FS=y
     #
     # Video Adapters
     #
     CONFIG_VIDEO_BT848=m

    3. Добре е да се включи и RTC поддръжка
    CONFIG_RTC=m

    След това си компилирате ядрото по обичайната процедура.

  • Забележка
  • Можете да ползвате стандартното ядро на дистрибуцията ви, от личен опит знам, че за Slackware 9.1 няма проблеми.

    Редактирайте /etc/modules.conf като прибавите следният ред :

    /etc/modules.conf
    alias char-major-81 

    Заредете модулите с :

    Примерен код на bash
    insmod videodev
     insmod i2c-core
     insmod i2c-algo-bit
     modprobe bttv

    За да разберете дали са заредени правилно модулите изпълнете lsmod :

    Примерен код на bash
    /sbin/lsmod
     Module Size Used by Tainted: P
     tuner 10880 1 (autoclean)       
     tvaudio  14268   1 (autoclean)       
     bttv 96320   1 (autoclean) [lirc_gpio]       
     i2c-algo-bit 7656   1 (autoclean) [bttv]       
     videodev  6208   4 (autoclean) [bttv]       
     i2c-core  13636   0 (autoclean) [tuner tvaudio bttv i2c-algo-bit]

    Ако ползвате hotplug при рестарт автоматично ще ви засече хардуера и ще зареди необходимите модули.

    Може да се наложи да промените атрибутите на някои файлове:

    Примерен код на bash
    chmod 666 /dev/video0 /dev/radio0 /dev/vbi0

    За повече подробности относно bttv прочетете The BTTV Mini-HOWTO.


    Софтуер за гледане на телевизия



    Има много програми xawtv, zapping, tvtime, kwintv и др.
    Лично аз използвам tvtime. Тя има следните предимства - прави deinterlace подобно на DScaler за Windows.Картината е много добра, гладка, има OSD, показва час а и tvtime работи съвместно с LIRC. За съжаление се изисква процесорна мощ за някои от плъгините-често CPU натоварването достига 70% ( според GKrellM) на Celeron 1,7 GHz
    Програмата може да свали от http://tvtime.sourceforge.net
    Компилира се по обичайния начин :

    Примерен код на bash
    ./configure
     make
     make install # (като root)
     
     Ако ползвате последната версия на tvtime може да направите и chmod u+s на изпълнимия файл tvime

    Следващата стъпка е да се сканират честотите на кабелната телевизия или ефира:

    tvime -n PAL -f russia -S

    Опциите са: -S е да се запазят настройките, -n PAL (норма за телевизия) и -f russia (честотна таблица)
    След това се запуска програмата само с:

    tvtime

  • Забележка :
  • Понеже последната версия на tvtime не ми харесва (особено начина на работа със стерео програми), при тази нова версия има OSD меню и оттам също се сканират канали, настройват се честоти, системи за цветна телевизия PAL, SECAM и т.н. Аз съм описал по-горе как се прави за версия 0.9.8.2 .

    Резултатът от усилията изглежда така :

    tvtime in action

    За допълнителни настройки, оптимизации може да прочетете справочните страници :

    Примерен код на bash
    man tvtime
     man tvtime-command
     man tvtime.xml
     man stationlist.xml

    Настройките се пазят в директорията ~/.tvtime

    Ако дотук всичко работи спрете работа и полейте резултата с бира, боза и/или мляко по избор.


    Телетекст



    За телетекст се нуждаем от програмата alevt, версията за момента от доста време е 1.6.1
    Програмата може да се свали от http://www.goron.de/~froese.

    Инсталирането става по обичайния начин, но преди това трябва да се закърпи изходния код с кръпка за показване надписите на кирилица. Такава кръпка има в поддиректорията contrib на source кода, но кръпката е предназначена за руското KOI8-R и вместо „Ъ“ излиза „ы“. Аз съм променил малко тази кръпка и се вижда „ь“ вместо „ы“. Кръпката може да свалите от http://dtab.hit.bg/stuff/alevt-1.6.1.rus.diff или http://dtab.hit.bg/stuff/alevt-1.6.1.rus.diff.tar.bz2

    Прилага се така:

    Примерен код на bash
    cp /път_до_кръпката/alevt-1.6.1.rus.diff \
     /път_до_изходния_код/alevt-1.6.1
     cd /път_до_изходния_код/alevt-1.6.1
     patch -p1 <./alevt-1.6.1.rus.diff

    След това продължаваме :

    make
     make install #(като root)

    Стартирането на alevt (след като сме пуснали ТВ-софтуера на канал, на който има телетекст) става по следния начин:

    alevt -charset koi8-r

    Навигацията става с мишката като се щрака върху номера на страницата, на която искаме да идем или като напишем с цифри съответната страница. При стартирането на alevt излиза първоначален екран, от който може да се разучи как да се работи с програмата:



    ...а страниците изглеждат по този начин :



    След като имаме и телетекст може да научим какво ще е времето, в колко часа започва някой филм, да си видим хороскопа и много други неща. Ако нещо не е достатъчно ясно може да се допитате до справочната страница на alevt
    man alevt


    Радио



    За радиото, също като телевизията има много решения - gnomeradio, rdj, радио плъгин за xmms, QT приложения за радио и много други. Моят избор е радио плъгин (GKrellM radio Plugin) за GNU Krell Monitors. GKrellM е приложение с много възможности за следене на хардуер - температури, обороти; мрежи, процесите на локална и отдалечена машина, натоварване на процесора, входяща поща и т.н.
    Този плъгин има възможност за интегриране с LIRC и радиото се управлява чрез дистанционно управление. Преди да се използва плъгина ще трябва да има инсталиран gkrellm, които е достъпен от http://web.wt.net/~billw/gkrellm/gkrellm.html. На страницата има пакети за различни Linux дистрибуции, изходният код, както и достатъчно документация.
    Самият плъгин се намира на http://gkrellm.luon.net/gkrellm-radio.phtml и компилацията не е особена. За ползващите LIRC се постъпва по следния начин:

    WITH_LIRC=1 make

    Стандартната процедура (без LIRC) е:
    make

    Полученият файл radio.so е необходимо да се копира в директорията с плъгини на gkrellm - за системната е $PREFIX/lib/gkrellm2/plugins, като $PREFIX е /usr, /usr/local или друга, в зависимост къде е инсталиран gkrellm. Може да копира файла и в потребителската директория : ~/.gkrellm2/plugins. Рестартира се gkrellm (ако е включен) и от менютата се отива на Configuration->Plugins. Слага се отметка на Radio Plugin.




    Остава настройката на радиопрограмите от Configuration->Plugins->Radio Plugin. Процедурата е лека и безболезнена, стига да знаете честотите на радиостанциите.Примерна настройка е:

    radio config
    Допълнителни оптимизации по желание се правят от Options (ограденото с червено), които са интуитивни.
    На панела на gkrellm има бутон за включване на радиото (1), както и възможност за смяна на запаметените станции (2).




    ...за десерт



    След като всичко е инсталирано,конфигурирано и полято остава да разгледаме една от най-примамливите възможности на тунерите - записването в реално време

    За тази работа може да използваме mplayer, lame както и ALSA .
    Няма да се спускам в подробности как се инсталират горепосочените програми, на техните интернет страници има достатъчно документация.
    За запис на видео от тунера е необходимо преди самия запис да сме настроили дадения канал с програмата за телевизия, която ползваме или с mplayer. Трябва също да сме настроили със звуков миксер нивото на запис на звуковата карта. С alsamixer последното изглежда така:

    и така

    След това затваряме софтуера за ТВ ако е отворен и в терминал пишем:

    Примерен код на bash
    mencodertv:// -tv driver=v4l:width=640:height=480 \
     -ovc xvid -xvidencopts bitrate=1300 \
     -oac mp3lame -lameopts cbr:br=192 \
     -vf pp=lb -o име_на_файл.avi
    Записът се прекъсва с Ctrl+C.
    При този пример ще се запише avi файл, в който видеото (с формат 640x480) е компресирано с xvid (bitrate e 1300 kbits/s), а звука е в MP3 компресия (bitrate 192 kB/s), като е включен филтър за деинтерлейс linear blend (прави картината мазна, а не образите при движение да се размазват на черти).
    Подробности има в документацията и справочната страница на mplayer.
    Недостатък на този метод е, че не виждаме какво точно записваме, ориентираме се по звука на предаването.

    Записът на радио също е лесен. Избираме станция по желание, не спираме радиото, а директно в терминал се пише:

    arecord -f cd |lame -b 192 -h -c - име_на_файл.mp3
    Отново записа се прекъсва с Ctrl+C.
    Записва се MP3 файл 44100 kHz, 16 бита стерео, bitrate 192 kB/s.
    Arecord е част от пакета alsa-utis, а lame e доста добър mp3 енкодер.
    Разбира се съществуват и други варианти за запис - например вместо в mp3 да се записва в ogg формат и т.н. , но това всеки може да прецени за себе си.

  • Забележка:
  • Посоченият метод за запис важи не само за радио, а за всякакъв аудио сигнал влизащ във входовете на звуковата карта - микрофон, от други външни източници - уредби, cd-players, касетофони и т.н. Това, което трябва да се направи предварително е чрез програма миксер като например alsamixer, kmix и др. е да се нагласи нивото на входящия сигнал и от кой вход да се записва ( като споменатото по-горе за line-in и capture)

    Вместо послепис


    Посочените програми могат да се инсталират и като готови пакети, разпространявани за вашата дистрибуция. Описаното по-горе е изпробвано и работи безпроблемно от 1.5 години на Slackware Linux.
    Статията се намира и на следните адреси:
    http://dtab.hit.bg/multimedia_linux.html и http://www.geocities.com/daftcho/multimedia_linux.html
    Голяма част от проблемите могат да се решат като се четат справочните страници с командата man, от man pages също изникват и чудесни идеи.
    За тези, които не са се занимавали с проекта LIRC (Linux Infrared Remote Control), който неведнъж бе споменат, на www.linux-bg.org има чудесни статии за начинаещи - намират се тук , тук и тук.


    Връзки



    Alevt - http://www.goron.de/~froese/
    Advanced Linux Sound Architecture - http://www.alsa-project.org/
    GNU Krell Monitor - http://web.wt.net/~billw/gkrellm/gkrellm.html
    GOOGLE - http://gooole.com
    LAME - http://lame.sourceforge.net/
    Linux kernel - http://www.kernel.org/
    Linux Infrared Remote Control - http://www.lirc.org/
    Mplayer http://www.mplayerhq.hu
    The Linux Documentation Project - http://www.tldp.org/
    Tvtime - http://tvtime.sourceforge.net/
    Линукс за българи - http://www.linux-bg.org/


    << Директориите в Linux | Инсталиране и настройка на “прозрачна защитна стена” >>