11 лет назад 10 февраля 2008 в 13:20 54

Смотри – пингвин!

Автор: Сергей Яремчук

С помощью пк можно самыми разными способами посмотреть фильм, фотографии, прослушать музыку. но пользователю этого уже мало, он не хочет задумываться, что и где. ему нужна простая и понятная в использовании оболочка, такая как windows media center. гурманы же хотят такую в linux, да еще и бесплатно.

Для Linux сегодня известно несколько разработок, направленных на создание мультимедийного центра. Это в первую очередь свободные Freevo (freevo.sourceforge.net) и MythTV (www.mythtv.org). Есть и коммерческие решения вроде SageTV Media Center (www.SageTV.com). Хотя в силу особенностей Linux-пользователя, принципиально не желающего платить за что-либо, коммерческие решения пользуются меньшим спросом.

На момент выхода первой версии в мае 2002 года Freevo, который мы сегодня и рассмотрим, представлял собой довольно примитивный продукт – после загрузки отображался лишь синий экран с очень простой системой меню. Сейчас это уже полноценная платформа для организации домашнего медиацентра с целой армией добровольцев, помогающих проекту. Базовые возможности таковы: просмотр видео и графических файлов, проигрывание аудио, расположенных как на диске компьютера, так и доступных через Сеть, просмотр телевизионных и спутниковых программ, чтение RSS и другие. Но за счет подключения дополнительных плагинов (которых уже не один десяток) возможности MythTV можно расширить. С их помощью можно, например, не только изменять внешний вид системы, но и перекодировать аудио и видео, записывать CD и DVD, работать с электронной почтой, получать данные о погоде и многое другое. Причем если в ранних версиях пользователь самостоятельно доустанавливал нужные ему плагины, то сейчас большинство из них уже идет в комплекте.

Кроме Linux Freevo работает и в Мас OS X, и в Windows, при этом используются и некоторые другие свободные разработки. Сигнал выводится на монитор, но при наличии у графической карты TV-выхода – и на телевизор. Управление традиционно – при помощи мыши и клавиатуры, в том числе и беспроводных, а также джойстика, пульта дистанционного управления (LIRC), мобильного телефона через Bluetooth.

УСТАНОВКА

Кроме исходных текстов проект предлагает LiveCD-дистрибутив FreevoLive (freevolive.tuxfamily.org) позволяющий оценить разработку без установки на жесткий диск. Скомпилированный пакет с Freevo можно найти в портах Gentoo Linux, в репозитариях пакетов Mandriva Linux, openSUSE/SUSE, Fedora Core и других дистрибутивов. Есть Freevo и в Сизифе дистрибутива ALTLinux. На сайте выложены подробные инструкции по большинству дистрибутивов. Поэтому сначала следует попробовать установить его с помощью менеджера пакетов своего дистрибутива. Кстати, так как при создании использовался Python, то Freevo при установке не требует компиляции, и количество зависимостей сведено к минимуму, так что инсталляция при помощи исходных текстов проста. Требуется лишь скачать несколько архивов: kaa-base, kaa-imlib2, kaa-metadata и собственно Freevo, распаковать каждый, зайти внутрь каталога и ввести команду “python setup.py install”. Традиционно Freevo для своей работы требует наличия сторонних библиотек, но скрипт сам подсказывает, что ему не хватает и какие из программ рекомендуется обновить:

# sudo python setup.py install

checking for xml.utils.qp_xml… not found

please download it from http://pyxml.sourceforge.net/ and install it

Просто качаем недостающий пакет и после его установки повторяем попытку. Кроме этого для своей работы Freevo требует присутствие других приложений, не указанных в зависимостях, среди них видеопроигрыватель MPlayer.

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

# urpmi.addmedia contrib ftp://ftp.nluug.nl/pub/os/Linux/distr/Mandrakelinux/official/2008.0/i586/media/contrib/release with media_info/hdlist.cz

Как вариант для добавления нового репозитария можно использовать пункт “Управление программами” в Центре управления Mandriva Linux.

И устанавливаем:

# urpmi freevo

В последних релизах модули и темы включены в состав пакета, поэтому дополнительно скачивать и устанавливать их не нужно. Получить список плагинов можно, введя команду “freevo -l plugins”. Хотя по адресу freevo.sourceforge.net/addons можно найти некоторые дополнения, не вошедшие в основной релиз.

НАСТРОЙКА FREEVO

Итак, Freevo установлен, но при попытке его запуска получаем сообщение “Error: freevo.conf not found”, то есть Freevo не может найти свой конфигурационный файл. Для первичной настройки вводим команду “freevo setup”, скрипт проверит доступность некоторых приложений. Если какое-то не будет обнаружено, то в окне напротив его названия появится надпись “not found (deactivated)”. Ничего страшного в этом нет, доустанавливаем недостающее при помощи менеджера пакетов (если оно действительно необходимо) и повторно запускаем “freevo setup”. В результате работы этой команды в домашнем каталоге появится файл ~/.freevo/freevo.conf. Но его еще не достаточно для работы Freevo.

КОНФИГУРАЦИОННЫЕ ФАЙЛЫ FREEVO

Все настройки Freevo может хранить в трех конфигурационных файлах: freevo.conf, freevo_config.py и local_conf.py, – которые могут располагаться в одном из следующих каталогов: ~/.freevo, /etc/freevo, /usr/local/etc/freevo или /usr/share/freevo. Файл freevo.conf как раз и генерируется при помощи “freevo setup”. В нем записаны основные параметры системы, разрешение экрана и пути к исполняемым файлам программ. Второй файл freevo_config.py содержит настройки по умолчанию самого Freevo. Трогать его не рекомендуется, да и если поместить его в домашний каталог пользователя, Freevo работать откажется. Вместо него следует использовать файл ~/.freevo/local_conf.py, находящийся в домашнем каталоге пользователя, и в нем уже переопределить необходимые параметры. Получить этот файл можно, переименовав freevo_config.py, или взять шаблон local_conf.py.example:

$ cp /usr/share/freevo/local_conf.py.example ~/.freevo/local_conf.py

Вот теперь можно приступать к редактированию.

Файл local_conf.py содержит несколько секций, большинство параметров закомментированы (то есть используются установки по умолчанию), и некоторые из них можно пока не трогать.

Для настройки Freevo все же желательно (но необязательно) иметь некоторые знания Unix-систем – документация рассчитана на подготовленного пользователя, к тому же владеющего языком Шекспира. Да и самое главное, язык Python, используемый в Freevo, очень чувствителен к различного рода отступам в начале строки (так отмечаются блоки). Поэтому ни в коем случае не следует ставить в начале строки перед параметрами пробел или табуляцию: “SyntaxError: invalid syntax” обеспечен. Хотя внешне все будет выглядеть правильно.

СЕКЦИЯ GENERAL

Логически файл разбит на несколько секций, каждая отвечает за свой участок работы. Обо всех настройках рассказать просто невозможно – их очень много. Так, первая секция содержит общие установки. Например, строка DEFAULT_VOLUME = 40 указывает на уровень громкости, выставляемый по умолчанию. Изменив значение параметра START_FULLSCREEN_X = 0 на 1, даем указание Freevo, чтобы он стартовал сразу же в полноэкранном режиме. Рекомендую использовать этот параметр, только когда Freevo полностью настроен и консоль не ругается на невозможность загрузки каких-либо модулей или утилит. Параметр ROM_DRIVES = None позволит обнаруживать при запуске все CD- или DVD-устройства, прописанные в /etc/fstab. Если такая возможность не нужна, следует использовать пустые скобки []. Если приводов несколько, потребуется прописать путь к требуемому устройству вручную:

ROM_DRIVES = [ (‘/media/cdrom’, ‘/dev/cdrom’, ‘CD-ROM’) ]

Чтобы не мешал шум при просмотре фильма, ограничим скорость CD-ROM до 8:

ROM_SPEED =8

И разрешим выключать компьютер через меню Freevo:

ENABLE_SHUTDOWN_SYS = 1

SHUTDOWN_CONFIRM = 1

Секция AUTOSHUTDOWN CONFIGURATION содержит настройки для автоматического включения и выключения компьютера по времени и таймеру. В списке AUTOSHUTDOWN_PROCESS_LIST содержится список процессов, которые нужно принудительно остановить перед выключением.

В секции Events переопределяются события (events), которые описаны в файле src/event.py. Например, чтобы во время просмотра фильма увеличить контрастность до 100 нажатием на клавишу 1, создадим следующее правило:

EVENTS[‘video’][‘1′] = Event(VIDEO_SEND_MPLAYER_CMD, arg=’contrast -100’)

Информацию о мелодии можно автоматически загружать с CDDB-сайтов интернета, чтобы активировать эту опцию, снимаем комментарий со строки USE_NETWORK = 1.

НАСТРОЙКА ПЛАГИНОВ

Freevo не был бы номер один, если бы к нему не было написано большое количество плагинов. В следующей секции файла как раз и настраивается запуск или принудительная остановка некоторых плагинов. (Как получить список установленных, сказано выше.) Все они автоматически запускаются из файла freevo_config.py. Например, строка для запуска TV выглядит так:

plugin.activate(‘tv’, level=10)

Но если сейчас попробовать запустить Freevo, без установленного ТВ-тюнера, в консоли появится вывод об ошибке инициализации устройства. Просто смотрим, что не нравится Freevo, и отключаем действительно ненужное в пользовательском файле. Или, как вариант, переопределяем параметры запуска плагина. Например, если нет ТВ-тюнера и джойстика, добавляем в файл следующие строки.

plugin.remove(‘tv’)

plugin.remove(‘joy’)

Модуль вывода погоды отключается такой строкой:

plugin. remove(‘weather’)

Потоки RSS, которые будут доступны в соответствующем пункте, настраиваются в секции Headlines. Выглядит запись так:

plugin.activate(‘headlines’, level=45)

HEADLINES_LOCATIONS = [

(‘Freevo news releases’, ‘http://sourceforge.net/export/rss2_projnews.php?group_id=46652’)

]

При необходимости таким же образом можно самому добавить новый источник.

НАСТРОЙКА КАТАЛОГОВ

По умолчанию в меню для просмотра фильмов, изображений и музыки отображается домашний каталог пользователя, корневой каталог и смонтированные сменные носители. Удобнее вручную указать на каталоги, в которых хранится требуемая информация, чтобы быстро к ним переходить, а не блуждать по всему дереву. Все это делается в секции “Freevo directory settings”. Параметры в этой секции позволяют также изменить порядок сортировки файлов при выводе во Freevo, включить автопроигрывание содержимого каталогов, вывод информационных тэгов и прочее. Например, так включается автопроигрывание музыкальных файлов и показ изображений:

DIRECTORY_AUTOPLAY_ITEMS = [ ‘audio’, ‘image’ ]

Чтобы автоматически создавался плейлист, снимаем комментарий с:

DIRECTORY_CREATE_PLAYLIST   = [ ‘audio’, ‘image’ ]

И добавим его в каталог:

DIRECTORY_ADD_PLAYLIST_FILES  = [ ‘audio’, ‘image’ ]

Для еще большего удобства можно самостоятельно создать в любом каталоге файл folder.fxd. Он должен быть приблизительно такой структуры:

<folder title=”Заголовок каталога” img-cover=”рисунок.png”>

<setvar name=”directory_autoplay_single_item” val=”0″/>

<info>

<content>Краткое описание каталога</content>

</info>

</folder>

</freevo>

Можно использовать и один общий fxd-файл, поместив его, например, в домашнем каталоге, а для указания рабочих директорий использовать примерно такую структуру:

<directory recursive=”1″>/mnt/mp3/party/rock</directory>

Файл изображений должен быть в формате JPEG или PNG и иметь размер 280×200 для фильмов, 200×200 для аудио и 200×160 для каталогов с рисунками. Теперь если указать этот каталог Freevo, в меню будет выведен заголовок и рядом соответствующий ему рисунок. Кроме того, Freevo позволяет защитить некоторые каталоги от просмотра. Для этого в такой каталог необходимо поместить файл .password, в котором указать пароль для доступа. Защита эта не спасет при локальном доступе, но при управлении с ПДУ ее достаточно. Пароль желательно использовать цифровой, чтобы его можно было ввести с пульта. А вот на рабочие каталоги указываем уже в следующей секции.

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

VIDEO_ITEMS = [ (‘Movie’, ‘/media/movies’),

(‘Klips’, ‘/media/klips’) ]

Кстати, в качестве параметров могут выступать как каталоги, так и fxd-файлы. К сожалению, в настройках по умолчанию Freevo плохо справляется с выводом локализованного текста, поэтому в меню и именах файлов желательно использовать только английские буквы. Частично решить проблему можно, заменив используемые по умолчанию TTF-шрифты, лежащие в каталоге /usr/share/freevo/fonts/ на используемые в Windows (в случае Unicode) либо другие, поддерживающие системную кодировку. Чтобы добавить каталог, в котором находятся дополнительные шрифты, используем:

OSD_EXTRA_FONT_PATH = [ ‘/usr/share/fonts/truetype’ ]

При помощи следующей директивы указываем на проигрыватель, который будет задействован при просмотре видео.

Для MPlayer:

VIDEO_PREFERED_PLAYER = ‘mplayer’

Или XINE:

VIDEO_PREFERED_PLAYER = ‘xine’

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

AUDIO_ITEMS = [ (‘Music’, ‘/media/music’), ‘fxd/webradio.fxd’ ]

Вторая строка указывает на файл, в котором прописаны интернет-станции потокового аудио, готовый шаблон идет в комплекте, при необходимости его можно подредактировать, добавив свои любимые станции:

IMAGE_ITEMS = [ (‘Foto’, ‘/media/foto’), (‘Pics’, ‘/media/pics’) ]

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

GAMES_ITEMS = [ (‘SUPER NINTENDO’, ‘/home/media/games/snes/roms’,

(‘SNES’, ‘/usr/bin/zsnes’, ‘-m -r 3 -k 100 -cs -u’, ”, None )) ]

ОСТАЛЬНЫЕ НАСТРОЙКИ

Как уже говорилось, Freevo поддерживает скины. В комплекте идет с десяток готовых тем, найти которые можно в каталоге /usr/share/freevo/skins/main. Чтобы изменить умолчальный скин, используем параметр:

SKIN_XML_FILE     = ‘blurr’

В качестве скинов используются XML-файлы (с расширением fxd), на основании которых никто не запрещает создать и свой вариант. Далее в файле идет описание вывода меню, установки xine, mplayer, просмотра TV и “локаль”:

LOCALE= ‘ru_RU.UTF-8’

Практически последним пунктом идут параметры управления Freevo.

УПРАВЛЕНИЕ FREEVO

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

Для запуска веб-сервера редактируем следующие строки в файле:

plugin.activate(‘www’)

WWW_PORT = 8080

И установим пользователя и пароль для доступа к серверу:

WWW_USERS = { ‘user’: ‘password’ }

Теперь набираем в веб-браузере http://localhost:8080/, регистрируемся с указанными данными и можно работать.

Таким же образом к компьютеру можно подключиться удаленно. Но особенно полезна возможность дистанционного управления Freevo. В этом случае можно просматривать фильм, управляя компьютером, не отрывая спины от дивана. Для этих целей подойдет пульт на инфракрасных лучах (посредством LIRC), а если установить отдельный модуль (bluetooth.tar), то и телефон с поддержкой Bluetooth.

Когда все настроено, вводим в консоли Freevo и наслаждаемся результатом.

Альтернатива: MythTV

Как сказано на сайте проекта, основное назначение MythTV – наделить ПК с установленным ТВ-тюнером функциональностью “живого телевидения”. Основной упор сделан именно на функции захвата видео, которые тесно завязаны с планировщиком. Используя единую оболочку, вы можете смотреть, записывать передачи по расписанию, пропускать рекламу, делать паузу, перематывать вперед/назад. Программа поддерживает возможность работы сразу с несколькими картами, что позволяет реализовать режим “картинка в картинке” при просмотре, а при захвате – записывать информацию сразу с нескольких источников. Используя пакет LIRC, основными функциями можно управлять дистанционно. Готовые записи после захвата можно смонтировать, вырезав ненужные фрагменты. Хотя если ТВ-тюнера нет, то MythTV также будет полезен. Используя подключаемые модули с его помощью можно просмотреть видеофайлы, хранящиеся на жестком диске, DVD, слушать музыку, категоризировать и преобразовывать MP3/Ogg/FLAC/CD-аудиофайлы, создавать плейлисты, просматривать изображения, серфить в интернете, читать RSS-новости, получать данные о погоде прямо в основном окне программы, разговаривать с помощью SIP. Из MythTV можно запускать игры как PC, так и через эмуляторы MAME, NES и SNES. Как и в последних версиях Freevo, в MythTV плагины доступны единым архивом, что упрощает их установку.

Спецдистрибутивы

Хотя мультимедийную станцию можно реализовать на базе любого дистрибутива GNU/Linux, для удобства созданы специализированные дистрибутивы, позволяющие создать такую станцию в минимальные сроки и с минимальными усилиями. Основным компонентом является либо Freevo, либо MythTV. Вот список только некоторых из них: Linpus Media Center (www.linpus.com), Freevo LiveCD (www.pegasos.org/downloads/torrents/freevo-live.torrent), Wolvix Media Edition (wolvix.org), GeeXboX (geexbox.org), KnoppMyth (mysettopbox.tv), построенный на Knoppix и работающий прямо с привода, MythDora (g-ding.tv), Mythbuntu (mythbuntu.org).

Чтобы сгенерировать команды для конкретного репозитария в Mandriva Linux, воспользуйтесь сервисом www.linuxfordummies.org/addmedia