Pull to refresh

Медиацентр из MacMini и Rapsberry PI

Reading time 6 min
Views 141K
Или самый простой и удобный медиацентр, понятный всем домочадцам



картнка для привлечения внимания

Привет, Хабр! С каждым днем собрать дома медиацентр становится все проще. Вариантов много – от HTPC из старого железа до безымянных устройств размером с флэшку. На хабре было много обзоров самодельных бесшумных HTPC, android-боксов и нет-топов для реализации домашних медиасерверов. Я испытал много разных вариантов, прежде чем найти самый подходящий для себя и, самое главное, для домочадцев.

Задача-минимум:
1. Собрать и структурировать всю медиатеку воедино
2. Сделать ее максимально доступной к просмотру на двух телевизорах в разных комнатах
3. Иметь возможность просмотра или загрузки (для оффлайн просмотра) фильмов из медиатеки на мобильных устройствах
4. Удаленный запуск торрентов с мобильных устройств
5. Бесшумная работа устройств.

Путем проб и ошибок, я пришел к использованию XBMC на стареньком Mac-mini + Rapsberry Pi.
Пробы, ошибки, и удобная конфигурация под катом.

Почему возникло желание заняться домашним медиасервером, думаю объяснять не надо. В первую очередь это просто удобно. А перетыкать флэшку между ноутбуком и телевизором (не SmartTv) по несколько раз в день не было больше сил.

Проба 1

В попытке обойтись малой кровью, была собрана «железяка»



Чудо-машина была собрана из старого асуса, который прослужил верой и правдой около 5 лет. Но время сделало свое дело, и у ноутбука рассыпалась рамка экрана, выломались петли и почти перестал работать жесткий диск. После нехитрых манипуляций, экран переехал на верхнюю часть крышки, а сама машина заработала на XUbuntu, которая грузилась с флэшки, а управлялась только мышью.
Оставлять работать его 24/7 было страшно, учитывая его любовь к перегреву. Да и работал он безобразно медленно.
Помучавшись пару дней, эта конструкция вернулась на ту полку шкафа, где жила последние несколько лет.

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

Но: Неудобно, медленно, небезопасно, а главное шумно.

Проба 2 и 3.

Чуть позже из Англии приехала посылка с Sumvision Cyclon Nano.


Устройство, побратим тем, что уже не раз были в обзорах на Хабре.

Маленькая коробочка с ОС Android на борту. Управляется пультом, который шел в комплекте.
Коробочка работала не быстро, но для устройства за 40 фунтов — терпимо. Управлять с помощью air-mouse было непривычно. Но, совершенно очевидный плюс, ее(коробочку) было не слышно.

Поиграв какое-то время с настройками, получилось научить ее медиаоболочку воспроизводить видео с внешнего диска, что оказалось не так удобно как хотелось бы. В связи с этим, было решено установить только что вышедший (на тот момент) XBMC для Android. И, пока скачивался XBMC, я испытал первое серьезное разочарование… в пульте сели батарейки. Серьезно, новые батарейки, которые я поставил часов 25-26 назад. К счастью были найдены еще несколько батареек, и XBMC получилось запустить. Тут меня поджидало второе разочарование. Видео воспроизводилось с заеданиями. Причем, с такими, что смотреть было не возможно. Все попытки изменить настройки и как-то победить проблему закончились неудачей.

Позже пытался поднять DLNA на этой коробочке и стримить видео на Xbox, но это сопровождалось постоянными зависаниями. Да и просмотр DLNA потока через Xbox, не самое удобное решение. Долго, сложно и неудобное управление.
До настройки торрент-качалки дело так и не дошло. Cyclon отправился на ту же полку, что и старый Асус.

Резюме:
Лично для меня, постоянное использование показалось не реальным. Посмотреть видео на YouTube или зайти в интернет – хорошо, если не с родным пультом. Но HD-видео он не тянет. DLNA держит плохо. Некоторые незначительные функции может выполнять. Не греется и тихо работает.

Проба 4. Удачная

Я начал поиски подходящего нет-топа. После неудачи с Циклоном, покупать «абы что» не хотелось, а хорошие стоили уже серьезных денег. Тут, признаюсь честно, мне повезло — один очень хороший человек, видя мои мучения, отдал мне на опыты свой старый Mac-Mini(2009 года выпуска).

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

Работает он тихо и быстро. Почти не греется. К телевизору подключается по HDMI через Mini DisplayPort. Стоит отметить, что звук компьютер через HDMI не передает и это не лечится. Пришлось подключать дополнительный провод на звук.


Про конфигурацию расскажу немного подробнее т.к. это именно тот вариант, который устроил и меня и мою супругу.

Загрузка:
Хотя компьютер работает у меня 24/7, иногда случаются перебои с электричеством и его приходиться включать руками. При запуске загружается MacOS и грузит MySQL, uTorrent, DropBox и XBMC. IP в локальной сети прописан статический.
Через минуту после нажатия кнопки, мы видим на экране оболочку медиацентра.

Торренты:
Запущенный фоном uTorrent проверяет специальную папку в DropBox и если там появляется торрент-файл, он сразу начинает его качать. Таким образом, была решена проблема удаленного запуска торрентов с фильмами. Стоит отметить, что такой фокус не сработал ни с Google Drive ни с Яндекс.Диском. Проблема в том, что приложения для мака от Google и Яндекс не синхронизируются автоматически. А дропбокс делает это, причем сразу. Хотя, допускаю, что проблема в моих кривых руках.
Сериалы качаются автоматически из RSS-лент и распределяются по папкам благодаря системе фильтров встроенных в uTorrent.

Медиатека
Файлы хранятся в 2-х папках на внешнем жестком диске: Фильмы, Сериалы. Расшариваются в сеть они через SMB. Обновлением медиатеки занимается XBMC плагин WatchDog. При любом изменении (добавление, удаление, перенос, переименование файлов) в папках подключенных к XBMC, плагин запускает сканирование контента и очистку.

Стриминг
XBMC может раздавать медиа по UPnP. Так, любое устройство в домашней Wi-Fi сети видит UPnP сервер и может с помощью специального ПО воспроизводить его. Для iPad я решил использовать программу ArcMC. Ее очевидное преимущество в том, что она может скачивать и сохранять на устройство фильмы прямо из UPnP потока.



Таким образом, нам перед поездками не надо мучатся с проводами и перекидыванием через itunes фильмов. Есть правда у этой программы и минусы. Она может выключаться в процессе воспроизведения. В среднем это происходит 1 раз за 4-5 часов просмотра. Надеюсь, баг будет побежден в следующем обновлении.

Второй телевизор
В процессе долгих поисков устройства для второго телевизора, изучения «свистков на анройде» было принято решение не вставать на грабли, а взять Raspberry Pi mod. B.
К нему сразу была докуплена SDCard 8 GB class 10, корпус и маленький Wi-Fi приемник.



Питается RPI от USB порта телевизора, картинка и звук через HDMI. Коробочка уютно разместилась за телевизором.



В роли ОС для RPI была выбрана OpenElec – урезанная версия XBMC. Что в ней хорошо — она быстрая и поддерживает HDMI CEC. Т.е. управлять системой можно сразу с пульта телевизора. С него и были произведены все настройки устройства.
Что бы OpenElec не тормозил, сразу отключаем бесполезный встроенный RSS-Feed в настройках. Еще можно немного разогнать RPi, с стандартных 700 до 800 МГц(можно и больше) в config.txt:

arm_freq=800

Чтобы работало быстро мне хватило. Если нагрузить оболочку плагинами, она снова будет притормаживать, тогда можно включить Dirty Regions. В обычных дистрибутивах XBMC эта опция включена по умолчанию, но в OpenElec она выключена. Для этого в advancedesttings.xml добавляем

<gui>
    <algorithmdirtyregions>3</algorithmdirtyregions>
    <nofliptimeout>0</nofliptimeout>
</gui>

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

В MySQL:
CREATE USER 'xbmc' IDENTIFIED BY 'xbmc';
GRANT ALL ON *.* TO 'xbmc';

Не забываем включить автозапуск MySQL. И не забываем в /etc/my.cnf изменить IP машины на которой запущена база данных (по умолчанию там стоит 127.0.0.1):
bind-address = 192.168.***.***

В XBMC:
Дополняем на всех машинах advancedesttings.xml
<videodatabase>
<type>mysql</type>
<host>192.168.***.***</host>
<port>3306</port>
<user>xbmc</user>
<pass>xbmc</pass>
</videodatabase>
<musicdatabase>
<type>mysql</type>
<host>192.168.***.***</host>
<port>3306</port>
<user>xbmc</user>
<pass>xbmc</pass>
</musicdatabase>

Теперь можно начинать сканирование медиатеки. Стоит отметить, что для этого даже на серверном компьютере надо прописывать сетевой адрес, что бы синхронизация работала. Пример — smb://192.168.***.***/Фильмы/. После того как сканирование закончиться, чтобы не забивать эти пути снова, можно просто перенести на вторую машину файл sources.xml.
Мак и RPi подружились чудно. Вначале, при просмотре больших фильмов на RPi бывали зависания. Вылечилось заменой роутера.

Управление
Вариант с RPi управляется пультом телевизора, но с маком нужно другое решение. К сожалению, компании Apple, как и во многих других случаях, очень принципиальна, в плане использования некоторых технологий. И HDMI CEC ее компьютеры не поддерживают совсем. Изначально планировался маленький яблочный пульт, но когда была установлена на все телефоны и планшеты программа xbmcRemote, потребность в физическом пульте отпала.



Пульт от XBMC удобен и до безобразия прост в использовании. Подключается к системе он по IP машины в локальной сети и запоминает все устройства.

Недавно, кстати, на Хабраюзер dmitryredkin публиковал хорошую статью про управление HTPC

Итог

Что-то можно было сделать проще, что-то быстрее и надежней. Но подводя итог, могу сказать, что поставленной самим собой задачи я добился. Супруга научилась пользоваться всей системой за один вечер. Все просто и удобно до безобразия. Пользуемся такой системой уже полгода, и за это время проблем не было.

Спасибо НЛО за инвайт!
Tags:
Hubs:
+52
Comments 75
Comments Comments 75

Articles