Мултимедийна станция с Linux

0
89

Мнозина от вас сигурно имат ТВ тунер на компютъра си и инсталиран 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 :

Код:


/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

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

Код:


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

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

Код:


tvtime -n PAL -f russia -S

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

Код:


tvime

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

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

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

Код:


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. Процедурата е лека и безболезнена, стига да знаете честотите на радиостанциите.Примерна настройка е:

Допълнителни оптимизации по желание се правят от 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 файл, в който видеото (с формат 640×480) е компресирано с 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.
Статията се намира и на следните адреси:
[ur;]http://dtab.hit.bg/multimedia_linux.html[/url] и 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/

Автор: Дафчо Табаков, www.linux-bg.org
Екипа на kaldata.com благодари на www.linux-bg.org за предоставената статия

СПОДЕЛИ
Предишна новинаBlaze Media Pro 5.11
Следваща новинаEasy CD-DA Extractor 7.0.7.1
Калин Карабойчев е управител на Kaldata.com - най-големият български IT портал. Повече от 15 години се занимава активно с разработка и популяризация на услуги в българския интернет.

ДОБАВИ КОМЕНТАР

Коментирай това преди всички други

Извести ме за
avatar
wpDiscuz