LINUX-BG   Адрес : http://www.linux-bg.org
Мултимедийна станция с Linux
От: Дафчо Табаков (dafo)
Публикувана на: 30-05-2004
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=360656447
Съдържание
  • Настройка на ядрото
  • Телевизия
  • Телетекст
  • Радио
  • Екстри
  • Полезни връзки

  • Мнозина от вас сигурно имат ТВ тунер на компютъра си и инсталиран 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 | Инсталиране и настройка на “прозрачна защитна стена” >>

    Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

    All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
    Linux is copyright by Linus Torvalds.
    © Линукс за българи ЕООД 2007
    © Slavei Karadjov 1999 - 2006

    All rights reserved.

    Изпълнението отне: 0 wallclock secs ( 0.17 usr + 0.02 sys = 0.19 CPU)