International conference of developers
and users of free / open source software

Использование клиент-серверной архитектуры MythTV на базе версии 0.25

Алексей Бутько, Минск, Belarus

LVEE 2012

MythTV turns computer into a network streaming digital video recorder, a digital multimedia home entertainment system, or home theater personal computer. It has two main logical elements: the backend, which contains the TV capture cards, and stores the recorded video, and the frontend, which is connected to user’s TV screen and lets him watch LiveTV and recorded shows.
The simplest configuration puts both frontend and backend in the same physical box, while advanced setup might separate backend and frontend hardware.

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

MythTV в первом приближении состоит из двух логических компонентов:

  • backend – работает с картами захвата, хранит и записывает видео.
  • frontend – пользовательский интерфейс, получающий данные от backend’а и выводящий изображение непосредственно на экран телевизора.

Обычно под построение HTPC выделяется один физический системный блок, вследствие чего backend и frontend делят его между собой. Однако все функции такого мощного инструмента как MythTV раскрываются как раз в сетевом (клиент-серверном) исполнении. Первое, и главное преимущество – это возможность использования нескольких frontend’ов по всему дому или даже за его пределами. Также появляется возможность управления конкретным frontend’ом с мобильного устройства по сети. Такой метод управления с расширением использования технологий WiFi приобретает всё большую популярность и вскоре обещает вытеснить традиционные инфракрасные пульты. Не так давно возможность использовать MythTV (иметь полнофункциональный frontend) появилась на платформах Android и iPhone, что делает медиа-контент еще более доступным.

Возможности MythTV и впрямь широки: система умеет работать с большинством карт захвата (аналоговых и цифровых), имеется поддержка IPTV (хотя по мнению автора ещё недостаточно зрелая), мощный планировщик может вести запись телепрограмм по расписанию, имеется возможность удаления рекламы.

Еще больше возможностей содержат плагины. Из офицальных можно перечислить:

  • MythBrowser – минибраузер, не полнофйункциональный, но может оказаться полезным.
  • MythArchive – средство создания DVD из имеющихся ТВ-записей и любых других видеофайлов.
  • MythGallery – инструмент для просмотра изображений, фотографий etc.
  • MythGame – интерфейс для различных эмуляторов игровых консолей
  • MythVideo – в текущей версии не являестя плагином, а входит в состав frontend’а. Позволяет обозревать и просматривать домашнюю коллекцию фильмов. Примечателен тем, что выискивает подробную информацию о конкретной картине в онлайн-сервисах.
  • MythMusic – прослушивание музыки, составление playlist по различным критериям. До последней версии интерфейс обладал низким функционалом и слабой эргономикой
  • MythNews – отслеживание лент RSS и отображение новостей на экране.
  • MythWeather – онлайновый прогноз погоды с весьма обширным функционалом. Работает с различными источниками данных, может отображать живую карту метеообстановки.
  • MythWeb – плагин для удалённого web-конфигурирования backend’а. В условиях вынесения последнего на отдельный сервер может оказаться крайне полезным.

Последние полтора года активно шла работа над версией 0.25, и, наконец, в апреле состоялся релиз. В процессе подготовки новой версии внесено более 5200 коммитов. Из ключевых улучшений можно отметить:

  • Долгожданная поддержка аппаратного ускорения декодирования видео с использованием VAAPI и поддержка архитектуры акселерации DirectX Video Acceleration 2;
  • Поддержка высококачественных аудио кодеков E-AC3, TrueHD и DTS-HD;
  • Улучшены средства для управления метаданными для записываемых видеоматериалов. Удалена поддержка утилиты для работы с метаданными jamu, вместо которой теперь используется компонент MythMetadataLookup;
  • Представлен полнофункциональный сервисный API для обеспечения взаимодействия внешних приложений c MythTV, как с бэкендом, так и с фронтэндом. Новый API можно использовать в том числе для организации потоковой доставки контента поверх HTTP (HTTP Live Streaming). Ранее используемый API MythXML объявлен устаревшим;
  • Полностью переписан модуль MythMusic, используемый для обеспечения проигрывания музыки и управления музыкальной коллекцией. Переработана архитектура видеоплеера MythVideo. Функции MythMusic и MythVideo теперь непосредственно интегрированы в MythTV, а не распространяются в виде плагинов;
  • Коллекция визуальных тем MythThemes более не рассматривается как внешний репозиторий, все визуальные темы, включая темы от сторонних разработчиков, могут быть загружены непосредственно через интерфейс выбора тем, интегрированный во фронтэнд;
  • Процессом проигрывания контента при помощи MythNetvision, например, при просмотре роликов из YouTube, можно управлять через дистанционный пульт управления. В MythNetvision по возможности используется встроенный базовый мультимедиа плеер MythTV;
  • Поддержка 3D-эффектов при выводе горизнтального и вертикального меню;
    Начальная поддержка анимации в MythUI;
  • Прекращена поддержка механизма акселерации XvMC и удалена поддержка libmpeg2 для проигрывания видео;
  • Переписана система ведения логов;
  • Прекращена поддержка Python 2.5, в качестве минимальной версии рекомендуется Python 2.6. Также для работы требуется Taglib 1.6+ и Qt 4.6+. Из списка зависимостей исключены libvisual, libsdl, libcdaudio, libcdda_paranoia и wget.

Резюмируя, можно сказать, что MythTV развился в серьёзный и универсальный инструмент для построения разветвлённой домашней медиасистемы. Пожалуй, единственное, что мешает массовому его использованию и отпугивает пользователей – черезмерная сложность в установке и настройке. Рекомендации по его конфигурированию имеют объем отдельной книги.

Лицензия Creative Commons
Текст тезисов доступен под лицензией Creative Commons Attribution-ShareAlike 3.0.