Введение
Кому нужен медиа-центр, который не умеет работать с другими приложениями и устройствами? Принцип конвергенции уже давно знаком нам по связи, обмену информацией и компьютерным сетям. Идеи конвергенции заметны по мобильным телефонам и КПК с поддержкой Bluetooth, которые могут легко и просто синхронизировать и передавать файлы. Почему же тогда ваш телевизор не может воспроизводить аудио- и видео-файлы с домашнего компьютера?
Та же Windows MCE обзавелась специальными клиентскими модулями extender, которые подключаются к центральному компьютеру MCE и воспроизводят видео и звук. Подобное разделение обязанностей (можно назвать его и специализацией) должен обеспечивать любой достойный медиа-центр.
MythTV несколько отходит от традиционных, строго определённых отношений, которые использует MCE. MythTV разделяет функциональность на две категории с разными режимами работы, а именно: на клиентов (frontend) и серверы (backend). Для реализации MythTV важно понимать принципы их функционирования. В нашей статье мы подробно рассмотрим сетевую архитектуру MythTV, один из ключевых аспектов этого медиа-центра, который отличает систему от других решений.
Технические подробности
Как уже было сказано, сеть MythTV состоит из двух важных частей: клиентских (backend) и серверных (frontend) узлов. Для самой простой конфигурации достаточно одного сервера, который будет обслуживать одного клиента, обычно работающего на том же компьютере. Однако гибкость сетевой архитектуры позволяет создавать более сложные конфигурации, с множеством серверов и клиентов, работающих на нескольких компьютерах, внешних медиа-модулях или даже на переделанных игровых приставках. В теории сетевая топология MythTV может масштабироваться до бесконечного количества клиентов, которые одновременно могут работать с серверами. На практике, как мы думаем, всё упрётся в некоторые ограничения, поэтому разумнее говорить о множестве клиентов, которые могут работать, скажем, с десятком серверов.
Схожая конфигурация показана на следующей иллюстрации.
Сетевая архитектура MythTV, гибкая и масштабируемая.
Сеть MythTV, показанная выше, поддерживает в роли клиентов и серверов различные компьютеры, от скромных домашних HTPC до серверов потокового видео корпоративного уровня. Например, MythTV можно развернуть в университете для записи и вещания нескольких каналов через несколько тюнеров, а также для одновременной доставки видео к любому клиенту.
MythTV позволяет построить мощную и функциональную мультимедийную сеть. Любая трудность, возникающая во время установки или использования, легко нивелируется практически безграничной свободой и потенциалом готовой системы (или набора систем), на которых развёрнуто окружение MythTV. Windows MCE может работать в роли медиа-сервера для других компьютеров, но для каждого компьютера требуется отдельная лицензия MCE. MythTV работает совершенно свободно на многих системах, включая Linux, BSD и Mac OS X. На самом деле, даже под Windows есть клиент MythTV.
Характеристики сервера (backend)
Сервер выполняет несколько задач, причём все они прозрачны любому пользователю. Обычно эти задачи включают расписание записи и установку приоритетов, управление несколькими тюнерами/картами захвата, маркировку рекламы в записываемых (или уже записанных) потоках, перекодирование форматов видео и взаимодействие с базой данных MythTV.
Сервер MythTV выполняет несколько задач, включая работу с базой данных, программой передач, запись потоков видео.
Для MythTV существуют два класса серверов, соответствующих идеологии master (ведущий) и slave (ведомый). В системе может быть только один master-сервер, который управляет slave-серверами, каждый из которых может содержать одну или больше карт захвата. Master-сервер находится в самой вершине иерархии серверов и координирует всю деятельность slave-серверов.
Возможно, одной из важных ролей slave-серверов будет перекодирование или редактирование записанных потоков. MythTV может автоматически определять и вырезать рекламу из роликов. Перекодирование заключается в преобразовании из одного формата (скорее всего, из формата NuppleVideo по умолчанию) в другой популярный формат, например, MPEG2 или MPEG4.
Параметры сервера (backend)
При конфигурации сервера задаются некоторые ключевые работы MythTV, от выбора master-серверов и slave-серверов до ввода адресов, портов, каталогов для хранения и разных опций, таких, например, как выключение и пробуждение каждого конкретного программного сервера. Каждый сервер имеет собственное расписание задач, в котором можно задать время выполнения (расписание задач хранится локально на каждом сервере, при этом они регулярно опрашиваются, чтобы удостовериться, что все задачи выполняются в указанное время).
Основные серверные операции связаны с картами захвата и хранилищами данных. Поэтому каждый сервер должен иметь, как минимум, одну карту захвата и хранилище для записи видео, локальное или сетевое. Если нужно, можно создавать центральные хранилища, которые могут использовать несколько slave-серверов. Управление такими хранилищами осуществляется master-сервером.
На сервере также настраиваются форматы для каждого региона (по умолчанию: NTSC в Северной Америке, PAL в Европе), таблица частот вещаемых каналов и часовой пояс для списка передач XMLTV (обеспечивается службой Zap2It Labs DataDirect). Есть и временные регулировки, от времени бездействия до максимальных промежутков ожидания, от времени запуска сервера до старта записи передачи по расписанию и т.д.
С помощью скриптов, которые запускаются при старте, сразу же после выключения сервера или в любое другое время можно создать сеть автономных, самоорганизующихся slave-серверов. Таким образом, каждый физический сервер с другими работающими процессами, не связанными с MythTV, может завершить работу MythTV и освободить/перенаправить ресурсы на другие нужды. Перед выключением сервера можно корректно отключать сетевые каталоги Samba, прекращать потоковое вещание и выполнять другие задачи. Если настроить сервер на функцию пробуждения, то можно использовать один из других серверов (лучше всего master-сервер) для постоянного контроля состояния серверов MythTV и пробуждения нужных из них, чтобы, например, записать запланированную передачу.
Характеристики клиента (frontend)
Главная задача клиента MythTV состоит в визуальном воспроизведении информации для пользователя.
Клиент получает информацию от сервера, либо воспроизводит любую форму хранящейся мультимедийной информации. Клиент MythTV попросту отказывается от задач, связанных с захватом видео, обработкой и управлением хранилищами, поскольку они весьма “тяжёлые”. Так что клиента MythTV можно установить практически на любой компьютер, способный принимать и воспроизводить данные, пусть даже мощности слишком слабы для захвата или хранения информации. В результате мы освобождаем клиентские ПК от многих аппаратных требований, что позволяет создать ультра-портативные решения, скажем, на форм-факторах VIA mini-ITX и nano-ITX.
Как мы указывали выше, практически любая ОС (в том числе и Windows) может быть превращена в клиента MythTV без каких-либо дополнительных лицензий или ограничений по пользователям. Здесь очень важна масштабируемость. В любое время может работать неограниченное число клиентов, под любыми операционными системами.
Клиент предоставляет пользовательский интерфейс MythTV, через который можно получить все необходимые функции для конечных пользователей. Можно использовать любые инструменты навигации, от простой клавиатуры и мыши до пульта ДУ с ИК- или радиосвязью. Клиент также может выводить электронную программу передач, если она есть на любом из серверов.
Более того, клиенты поддерживают многие плагины MythTV (мы поговорим о них в следующей статье цикла). Плагины осуществляют разные функции, от почтового клиента, хранилища кулинарных рецептов и интерфейса FM-радио для воспроизведения потокового аудио/видео до менеджера архивов и удобной панели конфигурации каналов. Есть плагины, поддерживающие многие медиа-серверы в вашей сети, клиент BitTorrent и даже пользовательский интерфейс для записи CD и DVD.
Есть и экспериментальная, а потому и менее стабильная реализация клиентов, разделяющая их по ролям. Она вводит концепцию клиента-демона (MythTV frontend daemon, MFD). MFD работает как независимый процесс и взаимодействует с плагинами MythTV (то есть они сами работают как независимые процессы). Основная концепция состоит в том, чтобы позволить службе перекодирования (daemon) на сервере напрямую взаимодействовать с любым клиентом и раздавать потоки аудио по стандартному протоколу. Подобная поддержка приводит к весьма интересным возможностям, таким, например, как воспроизведение музыки форматов iTunes или использование web-браузера для обращения к MFD-серверу для управления проигрыванием звука.
Параметры клиента (frontend)
Каждый клиент отдельно настраивается. На master-сервере можно указать параметры, которые будут общими для всех клиентов. На каждом клиенте можно настроить собственную систему меню с темами и определённые плагины.
Конфигурация клиента простая и проблем не вызывает. Первая группа опций относится к master-серверу, с которого клиент будет получать электронную программу передач, имена или IP-адреса серверов с портами и т.д. Другие опции касаются воспроизведения, например, аппаратной обработки MPEG2, деинтерлейсинга видео и различных фильтров видео, улучшающих качество воспроизведения.
Заключение
Возможности клиентов MythTV намного превышают те, которые мы смогли описать в этой статье. Сегодня существует огромное количество плагинов, расширяющих функциональность клиентов MythTV. Возьмите, например, плагин MythPhone для взаимодействия между HTPC и телефоном с поддержкой SIP; миниатюрный web-браузер; интерфейсы для хранения, записи и воспроизведения аудио и видео; панели эмуляторов игр; вывод новостей и погоды; менеджер Netflix и модуль плей-листов музыки. И это только официальные плагины! Существует ряд неофициальных плагинов, дающих ещё больший спектр функций. О плагинах мы как раз и поговорим в следующей статье, посвящённой MythTV.