Rambler's Top100

 

Яндекс цитирования

 

ПКиО им. Linux

Мультимедийный центр на базе Linux.

Для использования компьютера в качестве мультимедиацентра компания Microsoft создала отдельную операционную систему — Windows XP Media Center Edition. Между тем пользователи Linux могут сделать практически то же самое на базе любого дистрибутива.

Многие люди считают, что Linux - не мультимедийная платформа. Это огромное заблуждение. На самом деле компьютер под управлением этой операционной системы вполне может стать домашней мультимедиасистемой, использующей для просмотра фотографий, фильмов и прослушивания музыки.  Все было бы отлично, если бы не ряд проблем. Во-первых, жена не дружит с компьютером, и банально включить фильм, если меня нет дома, ей довольно трудно. Во-вторых, даже ес-ли я дома, компьютер может быть занят, а супруге хочется посмотреть видео или послушать музыку. В-третьих, при просмотре фильма для перемотки приходится вставать с дивана и идти к компьютеру.

Сначала, купив инфракрасный приемник, я смог решить последнюю проблему. Затем у меня закралась мысль: «А нельзя ли сделать красивые меню с выбором нужного фильма?» Сначала думал заняться написанием программы для этого сам, так как давно уже хотел подробно изучить библиотеку SDL. Но, как гласит пословица, «все уже написано до нас», выяснилось, что существует множество программ, которые уже сейчас предоставляют эту возможность. Выбор остановился на проекте Freevo, в число возможностей которого входит просмотр или запись любых теле- и радиопередач и ознакомление с программой телетрансляций на неделю. При этом программа самостоятельно обновляется из Интернета, в то время как вы работаете.  Помимо этого она позволяет выводить изображение на экран телевизора, смотреть фильмы и слушать музыку практически любых форматов и даже читать новости из Сети. Заинтересовались?  Тогда давайте перейдем непосредственно к сути рассказа.  Многие функции я начал использовать не сразу. Но с течением времени и по мере апгрейда компьютера смог насладиться всеми возможностями Linux в качестве мультимедийного центра. На текущий момент я располагаю видеоплатой на чипе GeForce FX 5200. Благодаря ТВ-выходу она позволяет выводить изображение на экран телевизора. Имеются также ТВ/FM-тюнер на чипе brooktree878 и ИК-порт Tekram Irmate 210. Единственный недостаток Freevo - сложность настройки для новичков. Все дело в том, что документация рассчитана на пользователя, который достаточно неплохо разбирается в системе.

| Установка необходимых программ |

Разработчики Freevo позаботились о пользователях боль-шинства дистрибутивов, так что она распространяется как в RPM-пакетах, так и в портах Gentoo Linux, репозитории Debian и SuSE Linux. Мы же рассмотрим установку на приме-ре Fedora Core. Для корректной инсталляции программы на-стоятельно рекомендуем использовать утилиты yum, так как по зависимостям Freevo требует достаточно большого количе-ства пакетов. Добавим в базу данных yum репозитории с нуж-ными нам пакетами. Сделать это можно в файле /etc/yum.conf:

[freevo]

name = Freevo RPM Repository for Fedora Core

baseurl = http://freevo.sf.net/fedora

gpgkey = http://freevo.sourceforge.net/fedora/tcwan_freevo_key.asc [dag]

 name = Dag RPM Repository for Fedora Core

 baseurl = http://apt.sw.be/fedora/$releasever/en/$basearch/dag [freshrpms]

 name = Fedora Linux $releasever - $basearch - freshrpms

baseurl = http://ayo.freshrpms.net/fedora/linux/$releasever/ $basearch/freshrpms [updates]

name = Fedora Linux $releasever - $basearch - updates

baseurl = http://ayo.freshrpms.net/fedora/linux/$releasever/

$basearch/updates

Теперь осталось установить Freevo со всеми зависимостями:

yum install freevo

Для поддержки дистанционного управления установим библиотеки lirc и pylirc:

yum install lirc pylirc xmltv

Также рекомендуется поставить один из мультимедиаплееров — MPlayer или XINE, для того чтобы иметь возможность просмотра видеофайлов и DVD, ну а xmltv понадобится для создания и работы с программой телепередач.

| Настройка |

| Основные настройки |

Все основные настройки хранятся в файле /etc/freevo/freevo.  conf, пользовательская же конфигурация программы располагается в вашем домашнем каталоге, в поддиректории ~/.freevo/local_conf.py. Конфигурационные файлы написаны на языке python и отлично документированы. Скопируем из директории /usr/share/freevo файл local_conf.py в ваш домаш-ний каталог ~/.freevo и отредактируем его с учетом ваших пожеланий. Всего в конфигурации содержится пять основных блоков. Рассмотрим их.

Добавим в эту секцию строчку, которая сообщит Freevo путь к устройству CD-Rom:

ROM_DRIVES = [(‘/mnt/cdrom’,’/dev/cdrom’,’CD’)]

| Настройка плагинов |

Здесь можно удалить ненужные плагины. Например, если у вас нет TВ-тюнера, можно убрать плагин для просмотра телепередач из главного меню программы:

plugin.remove('tv')

| Настройка видео, аудио и изображения |

В первую очередь добавим папки с фильмами, музыкой и фотографиями:

VIDEO_ITEMS = [ ('Фильмы','/mnt/media/film')

AUDIO_ITEMS = [ ('Музыка','/mnt/muzik)]

IMAGE_ITEMS = [('Фотографии','/mnt/media/foto')]

| Настройки внешнего вида |

В поставке c Freevo содержится несколько различных тем: Blurr, Info и Noia. Для выбора какой-то конкретной темы в файле конфигурации необходимо набрать следующую строку:

SKIN_XML_FILE = 'blurr'

Все темы хранятся в формате XML, а потому могут быть до-статочно легко изменены.

| Настройки веб-сервера и сервера записи |

Для удаленного управления Freevo можно использовать веб-интерфейс. Для этого понадобится включить нужный модуль и настроить параметры доступа:

plugin.activate('www')

WWW_PORT = 10808

WWW_USERS = { «test» : «password»}

Чтобы вести запись передач по расписанию, можно заставить работать демон Freevo в фоновом режиме. Для этого нужно написать только его адрес и порт:

Расширение возможностей

Настройка джойстика для. PlayStation

Многие не знают, что к компьютеру можно подсоединитьджойстик практически от любой приставки, а модули для их поддержки есть в составе ядра Linux. Почти все джойстики подключаются через параллельный порт. Схему распайки проводов можно найти в файле документации к ядру: /documentation/input/joystick_parport.txt. Здесь описаны схемы распайки для самых популярных джойстиков: Sony PlayStation, Sega Megadrive, Super Nintendo, Dendy. Лично мне достался джойстик от Sony PlayStation китайской сборки всего за 60 рублей. Уже после десяти минут работы паяльником я получил полноценный инструмент управления.

Следующий шаг — сборка необходимых модулей.

 Для этого в файле конфигурации ядра добавим строку:

CONFIG_INPUT_JOYDEV = m

CONFIG_INPUT_JOYSTICK = y

CONFIG_JOYSTICK_GAMECON = m

После этого соберем ядро:

make modules modules_install

Если все прошло успешно,пропишем новое ядро в загрузчик, перезапустим систему, после чего подгрузим нужные нам для функционирования устройства модули:

modprobe joydev

modprobe gamecon gc = 0,7

После этого все программы - эмуляторы приставок будут видеть ваш джойстик.

| Настройка TВ-выхода |

Как я уже писал, в моей системе установлена видеоплата на базе чипа NVIDIA, оборудованная телевизионным выходом. Для того чтобы он заработал, необходимо установить фирменные драй-веры NVIDIA, которые по лицензионным соображениям в по-ставку дистрибутива не входят. После того как они будут установ-лены, потребуется произвести некоторую базовую настройку. Предположим, мы хотим, чтобы на телевизоре и мониторе ком-пьютера отображались совершенно разные картинки: например, на мониторе браузер с лентой новостей, а на телевизоре — фильм.

Для этого добавим в файл /etc/X11/xorg.conf новые разделы:

Section «ServerLayout»

Identifier «m0sia configured»

Screen 0 «Screen0»

Screen 1 «Screen1»

InputDevice «Mouse0» «CorePointer»

InputDevice «Keyboard0» «CoreKeyboard»

EndSection

Section «Monitor» # Настраиваем телевизор

Identifier «TV»

HorizSync 60

VertRefresh 30-150

VendorName «Thomson»

ModelName «Thomson TV»

EndSection

Section «Device» #Второе устройство для TВ-выхода

Identifier «Nvidia1»

Driver «nvidia»

Screen 1

BusID «PCI:1:0:0»

BoardName «Asus GeForce FX 5200»

Option «RenderAccel»

Option «ConnectedMonitor» «TV»

Option «TVOverScan» «0.692»

Option «TVStandart» «NTSC-M»

Option «TVOutFormat» «COMPOSITE»

Option «NoLogo» «True»

EndSection

Section «Screen» #Параметры изображения

Identifier «Screen1»

Device «Nvidia1»

Monitor «TV»

DefaultDepth 16

Subsection «Display»

Depth 24

Modes «640x480»

EndSubSection

EndSection

Теперь осталось только перегрузить X-сервер. После этого на экране телевизора должен появиться серый фон. Теперь для запуска Freevo на телевизоре напишем:

DISPLAY = :0.1 freevo

| Настройка lirc |

Для работы lirc нужно установить модули ядра и загрузить их:

modprobe lirc_sir

После этого вы должны научить lirc распознавать ваш пульт. Для этого запустим lirc в режиме обучения:

irrecord -d /dev/lirc0 /etc/lircd.conf

После этого будем следовать указаниям программы, и она запишет конфигурацию вашего пульта в файл /etc/lircd.conf. При желании для изменения назначения клавиш ее можно исправить.  Теперь нужно научить обращаться с пультом непосредственно Freevo. Для этого существует файл /etc/freevo/lircrc. Он имеет следующий формат:

begin

prog = freevo

button = <название клавиши в /etc/lircd.conf>

config = <действие>

end

Например, для клавиши с названием «Down» будет выполнено действие «Down»:

begin

prog = freevo

button = Down

config = Down

end

Действиями, которыми можно управлять с пульта, являются: «Up», «Down», «Left», «Right», «Play», «Stop», «Pause», «Exit», «Select», «FFWD», «Rew», «VOL+», «VOL-», «Enter» и «Subtitle».  Думаю, объяснять, что делает та или иная функция, не надо, все ясно из ее названия. Остается только лишь добавить в файл local_conf.py строчку, указывающую его расположение:

LIRCRC = '/etc/freevo/lircrc'

| Настройка TВ-тюнера и показа программ телепередач |

Для просмотра и записи телепередач с помощью Freevo мы должны загрузить соответствующие вашему тюнеру модули video4linux, входящие в состав ядра. Я не буду останавливаться на этом подробно, так как это выходит за рамки статьи. Чтобы просмотр телепередач мог осуществляться, должен быть вклю-чен плагин tv, для этого добавим в local_conf.py строку:

plugin.activate('tv')

Freevo предполагает показ программы телепередач, которая хранится в формате XMLTV. Для генерации данного списка нужно использовать программу tv_grab из установленного па-кета xmltv, но разработчики по какой-то причине не включили Россию в список стран, для которых tv_grab может создать данный файл. Выхода из этой ситуации существует всего два: либо написать файл в требуемом формате самостоятельно, либо, что удобнее, использовать утилиту onlytv, написанную нашим соотечественником Евгением Морозовым. Скачаем последнюю версию утилиты, разархивируем ее и перейдем в каталог onlytv.  Для получения нужного списка телепередач запустим программу конфигурации:

export PYTHONPATH = PathToPython

./GuiConfiguration.py

После это скачаем необходимые нам программы:

./tv_grab_ru.py > /tmp/TV.xml

Теперь добавим нужные передачи в local_conf.py:

TV_CHANNELS =

[('1tv.ru','ОРТ',»),('rutv.ru','РТР',»),('ntv.ru','НТВ',»),('ctctv.  ru','СТС',»)]

Запустить сервер для записи передач можно следующей командой:

freevo recordserver start

Теперь у нас есть возможность выбора - какую передачу и когда записывать. Укажем, с какой видеоплатой будет работать Freevo:

TV_DRIVER = 'v4l2'

TV_DEVICE = '/dev/v4l/video0'

TV_INPUT = 0

TV_SETTINGS = '%s television %s %s' % (CONF.tv, CONF.chanlist, TV_DEVICE)

Все готово, теперь можно смотреть и записывать телепередачи.

Дополнительная информация

Проблемы и методы их решения.

Все сложности, с которыми я столкнулся, в основном сводятся к проблемам с русским языком. Пока не закончится полный перевод большинства приложений на Unicode, мы и дальше будем сталкиваться со множеством трудностей с кодировками.

Проблема 1.

 Отсутствие русских шрифтов

Когда я запустил Freevo первый раз, то вместо русских слов увидел квадратики.

Решение нашлось очень быстро. Достаточно заменить все установленные по умол-чанию шрифты в папке /usr/share/freevo/fonts/ на шрифты, содержащие нужную нам кодировку. Для тех ктоиспользует локаль UTF-8, подойдут шрифты из Windows.

Проблема 2.

Кодировка ID3-тегов. Все мои MP3-композиции содержали ID3-теги в кодировке Windows-1251. Естественно, что названия песен при этом в Freevo не отображались. Решает эту проблему программа-перекодировщик с графическим интерфейсом Unicode Rewriter. Ее можно найти по адресу: http://sourceforge.net/projects/unicoderewrite. Чтобы Beep Media Player или XMMS вновь стали проигрывать файлы с перекодированными тегами, необходимо запретить данным плеерам использовать ID3v2-теги.

Проблема 3.

Пункты меню по-русски

При добавлении новых пунктов меню опять возникла проблема с кодировками. Как выпомните, я добавил в local_conf.py строку:

VIDEO_ITEMS = [ (‘Фильмы’, '/mnt/save/film')]

Вместо ожидаемого «Фильмы» в меню я увидел квадраты. После небольшого расследования выяснилось, что ошибка кроется в модуле pygame, который использует Freevo. В этом модуле разработчики вместо семейства функции TTF_RenderUTF8 в некоторых местах используют TTF_RenderText. Сам патч, а также уже исправленный пакет pygame вы можете скачатьс сайта ichip.ru.

 

Достойный аналог Freevo программа MythTV размещена на - www.mythtv.org

Настройка ТВ/FM-тюнеров под Linux — www.linuxlabs.biz/articles/tvcard.html

Проект LIRC — www.lirc.org

Дмитрий Моисеев

 

[Home] [Софт Windows] [Софт Linux] [Софт для ДУ] [Железо] [Обмен опытом] [Сделай сам] [Это интересно] [Форум] [Обратная связь] [Рекламодателям]