8.8.09

Freevo – мультимедиа центр для Linux

Мультимедийная направленность современного компьютера уже ни у кого не вызывает сомнений. С его помощью можно просмотреть фильм, фотографии, прослушать музыку. Но пользователю этого уже мало, он не хочет задумываться что и где. Ему нужна простая и понятная в использовании оболочка. За пример далеко ходить не нужно – Windows Media Center. Но в Linux также есть подобные решения, которые обладают аналогичными возможностями.

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

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

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

Кроме исходных текстов проект предлагает LiveCD дистрибутив FreevoLive (freevo.sourceforge.net/download/live.php) позволяющий оценить разработку без установки на жесткий диск. Скомпилированный пакет с 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

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

В Ubuntu установка не сложнее, хотя на сайте Freevo дана информация только по 7.04 и 7.10, указанный репозитарий подходит и для 8.04. Заносим в /etc/apt/sources.list
deb http://ubuntu.geole.info/ gutsy universe multiverse
deb-src http://ubuntu.geole.info/ gutsy universe multiverseИ вводим в терминале:

$ sudo apt-get update
$ sudo apt-get install geole-keyring

$ apt-get install freevo

В последних релизах 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. Он должен быть приблизительно такой структуры:









Краткое описание каталога







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

/mnt/mp3/party/rock

Файл изображений должен быть в формате 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. Кроме клавиатуры и мыши, для управления можно использовать и джойстик. Управлять Freevo можно и через сеть используя встроенный web-сервер, который позволяет не только просматривать локальные данные, а и производить запись веб-трансляций по расписанию и вручную. Кроме того, с помощью веб-браузера можно просмотреть файлы помощи.

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

plugin.activate(’www’)

WWW_PORT = 8080

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

WWW_USERS = { ‘user’: ‘password’ }

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


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



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



www.tux.in.ua


1 комментарий:

  1. Любопытно! С айфона немного тяжело читается, но оно того стоит! Спасибо

    ОтветитьУдалить

Написать комментарий