Медиацентр из Raspberry Pi

Медиацентр Raspberry Pi

За несколько лет существования Raspberry Pi было написано большое количество инструкций, как превратить его в домашний мультимедиацентр. Вот только классический мультимедийный центр из него настолько плохой, что проигрывает даже китайским HDMI-свисткам. Точнее, так кажется, пока вы не начинаете мыслить, как линуксоид.

Первая идея большинства людей, которые покупают Raspberry Pi, чтобы сделать из него медиацентр, примерно следующая: подключаем к «малинке» жесткий диск или флешку с фильмами и музыкой, подключаем пульт с гироскопом, устанавливаем мультимедийный комбайн Kodi и наслаждаемся фильмами, YouTube, ТВ и радио.

Это абсолютно логичное решение, которое вы будете проклинать уже через два часа. Kodi — прекрасная оболочка для мультимедийной приставки, но не лучшим образом оптимизированная для Raspberry Pi. Иной раз ее приходится перезапускать, курсор мыши во время просмотра видео дико тормозит, а некоторые функции не работают.

Плюс ко всему вы, конечно же, столкнетесь с неработоспособностью половины опубликованных в местном репозитории плагинов. Хотите посмотреть YouTube — фиг вам, плагин работает один раз через десять, послушать радио можно, но придется еще найти работающий плагин. ТВ? Даже не пытайтесь.

2018 год, стримы, облака, Netflix, а вы сидите и смотрите видосики с жесткого диска с тормозящим курсором. А если попробуете открыть YouTube в браузере, то увидите такое слайд-шоу, что можно на конференциях выступать.

Мыслим в обратную сторону

Raspberry Pi кажется настолько непригодным к использованию в качестве ТВ-приставки, что я мог бы порекомендовать купить вместо него настоящую ТВ-приставку (типа Nvidia Shield) или даже китайский HDMI-свисток. Но я не буду этого делать, потому что у Raspberry Pi есть два преимущества:

  1. Это мини-ПК на базе Linux, с которым можно сделать все что угодно (в отличие от залоченных приставок и приставок на базе Android).
  2. У Raspberry Pi большое комьюнити и множество разработчиков.

Не стоит пытаться превратить Raspberry Pi в классическую приставку, управляемую с пульта. Его нужно превратить в сервер, которым вы сможете рулить с ноутбука или смартфона. Захотели посмотреть YouTube — взяли телефон, запустили аппликуху, выбрали видео и нажали плей. Хотие музыку — у вас на телефоне есть виджет. Торренты? Скачиваете файлик на ноутбук и с помощью удаленного торрент-клиента закидываете на Raspi.

Что нужно для создания медиацентра из Raspberry Pi

Итак, нам потребуются следующие вещи:

  1. Raspberry Pi 3.
  2. SD-карта минимум на 8 Гбайт, минимум 10-го класса.
  3. Внешний жесткий диск для хранения музыки и фильмов.
  4. Клавиатура и мышь (нужны только при начальной настройке и во время неполадок).
  5. USB-зарядник на 2,5 А и microUSB-кабель.

Raspberry Pi без проблем дружит с Bluetooth-клавиатурами и мышами, но работать они будут, естественно, только если загрузка ОС прошла успешно. В качестве мыши очень удобно использовать пульт с гироскопом (на Aliexpress такие стоят 3–5 долларов). Он эмулирует движения мыши с помощью наклонов.

USB-зарядник подойдет любой, даже меньше чем на 2,5 А. Проблема только в том, что, если Raspi заметит нехватку энергии, он сбросит частоту процессора, а вы увидите значок молнии в правом верхнем углу экрана. В это же время может произойти останов жесткого диска и обесточивание периферии. Стоит озаботиться покупкой хорошего зарядника и microUSB-кабеля, нередко проблема недостатка питания именно в нем.

РЕКОМЕНДУЕМ:
Дешевый хаб для из Raspberry Pi

Не буду в подробностях расписывать процесс установки ОС на Raspberry (об этом и так рассказывают на каждом углу). Скажу лишь, что я рекомендую использовать официальный дистрибутив Raspbian (для гарантии того, что все работает как надо) и что сам процесс установки, по сути, сводится к скачиванию образа ОС и его заливке на SD-карту. В Linux это делается в две команды:

Здесь /dev/sdX — это SD-карта, реальное имя можно узнать с помощью команды lsblk или dmesg сразу после подключения карты памяти.

Вставляем карточку в Raspberry Pi, дожидаемся загрузки рабочего стола, подключаемся к сети Wi-Fi. Запускаем конфигуратор raspi-config из консоли:

И включаем SSH-сервер: Interfacing options -> SSH -> Yes.

С этого момента клавиатура и мышь нам больше не нужны. Все, что нужно, мы сможем сделать, подключившись к Raspi с помощью SSH.

raspberry pi медиацентр
Рабочий стол Raspberry Pi

Фильмы и YouTube на Raspberry Pi

Главная задача мультимедийной приставки — проигрывать видео. Для Raspberry Pi доступны различные плееры, но почти все они имеют проблемы с воспроизведением видео с высоким разрешением. Проще говоря, они не умеют декодировать видео с помощью аппаратного ускорителя и делают это на центральном процессоре, который любит тормозить.

Но есть исключение — omxplayer. Он был создан разработчиками Kodi, чтобы убедиться в способности Raspberry Pi к декодированию видео перед началом портирования самого мультимедийного комбайна. Omxplayer без всяких проблем переваривает HD и Full HD видео, но управляется исключительно из консоли. Другими словами, чтобы запустить воспроизведение, вам придется сделать так:

Чтобы выбрать аудиовыход (HDMI или выход на самом Raspi), используйте опцию -o:

Для управления воспроизведением используй клавиши: пробел — пауза, +/- — громкость, стрелки — перемотка.

Считаете это удобным? Я тоже нет, поэтому предлагаю использовать omxplayer в связке с приложением Raspicast для Android. Это клиент для Raspberry Pi и omxplayer, позволяющий удаленно включать любые видео, хранящиеся на жестком диске, и даже видео с YouTube.

Установите приложение на свой смартфон, укажите IP-адрес Raspberry Pi, а также имя и пароль для подключения к SSH. Далее вы можете либо использовать встроенный в приложение файловый браузер для выбора видео, либо отправить любое видео с YouTube: запускаете YouTube на телефоне, выбираете видео, нажимаете кнопку «Поделиться» и выбираете в списке Cast (Raspicast).

Видео можно либо запустить немедленно, либо добавить в плей-лист (для этого надо выбрать Queue (Raspicast) в меню «Поделиться». К сожалению, стримы YouTube не поддерживаются, зато поддерживаются плей-листы, их можно отправлять в Raspicast целиком, а он добавит их в очередь.

Уже запущенным omxplayer можно управлять через SSH. Для этого понадобится скрипт dbuscontrol. У него достаточно интуитивное управление:

raspberry pi медиацентр
Raspicast умеет играть видео с жесткого диска и с YouTube

YouTube: вариант второй, глючный

На самом деле Raspberry Pi таки умеет воспроизводить видео в браузере на приемлемой скорости. Но есть один нюанс: для этого необходимо активировать драйвер OpenGL, который работает, мягко говоря, не совсем стабильно. К примеру, вы можете получить графические артефакты на экране, неустойчивую работу системы или вообще отказ загрузки. Если это не пугает, тогда выполните следующие действия.

  1. Добавьте в файл /boot/config.txt такие строки (192 — количество отведенной для видеоадаптера памяти):
  1. Обновите фирмварь и перезагрузитесь:
  2. Скачайте скрипт chromium-mod.sh и запустите:

Он изменит флаги запуска Chromium таким образом, чтобы он использовал аппаратное ускорение.

Теперь запустите Chromium, активируйте плагин h264ify (он уже установлен) и попробуйте включить видео на YouTube. Если, как и прежде, наблюдаются тормоза, стоит проверить, что аппаратное ускорение действительно было активировано. Для этого открой chrome://gpu.

Кстати, в Quake 3 теперь тоже можно играть.

raspberry pi медиацентр
Даже если видео заработает, загрузку браузера вы все равно будете ждать несколько минут

Музыка на Raspberry Pi

Раз уж мы решили использовать Raspberry Pi в качестве единого медиацентра, то логично установить на него аудиоплеер с удаленным управлением. На эту роль лучше всего подходит MPD (Music Player Daemon).

Мы запустим его на Raspberry Pi так, чтобы он постоянно висел в фоне и был готов играть музыку. А на ноутбук, домашний комп и смартфон установим MPD-клиент, с помощью которого и будем выбирать и запускать музыку.

Устанавливаем:

Скопируем дефолтовый конфиг:

Изменим несколько строк:

В данном примере я использовал /media/pi/Elements/download в качестве каталога с музыкой. Это каталог download на диске WD Elements, подключенном по USB. Если вы используете флешку или жесткий диск, он также будет подключен куда-то к /media/pi, но, естественно, под другим именем.

Чтобы не иметь заморочек с правами доступа, нам нужно запускать MPD как пользовательский процесс. Для этого необходимо отключить системный сервис MPD и создать пользовательский. Первая задача выполняется так:

Чтобы решить вторую, создадим каталог для пользовательских сервисов SystemD:

В нем создаем файл mpd.service следующего содержания:

Сохраняем, активируем и запускаем:

Теперь MPD будет автоматически запускаться от имени пользователя после загрузки.

Клиентов для MPD существует множество для самых разных платформ, включая Linux, Windows, macOS, Android и iOS. Лично я предпочитаю использовать консольный ncmpc на ноутбуке с Linux и MPD Control на Android.

Да, чуть не забыл — MPD не умеет подхватывать файлы сразу. Чтобы он их увидел, необходимо обновить базу композиций. Это можно сделать с помощью соответствующей кнопки или хоткея в клиенте.

raspberry pi медиацентр
Ncmpc: консольный клиент MPD

Торренты на Raspberry Pi

Наш Raspberry Pi теперь умеет играть видео и аудио с жесткого диска, но где брать это самое аудио и видео? Конечно же, в торрент-сетях! Нет, я не про пиратство, я про чиптюны и образовательное видео.

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

Лучше всего на эту роль подойдет transmission-daemon. Так что устанавливаем:

Как и в случае с MPD, сразу отключаем системный сервис:

Копируем дефолтовые конфиги:

Открываем файл ~/pi/.config/transmission-daemon/settings.json и меняем следующие строки:

В первых трех строках мы отключаем аутентификацию (в домашней сети она не нужна) и указываем подсети, из которых можно будет подключиться к Transmission. Замените 192.168.31.* на свою домашнюю сеть. Последние две строки — каталог загрузки.

Рекомендую также установить дневные лимиты на скорость загрузки/отдачи данных. Это нужно, чтобы Transmission загружал канал только по ночам, а днем не мешал другим юзерам сети.

Следующие настройки включают ограничение в 100 Кбайт/с c 6 утра до 11 вечера (время задается в минутах):

Опять же, как и в случае с MPD, нам нужен пользовательский сервис для запуска Transmission. Создадим файл ~/.config/systemd/user/transmissiond.service с такими строками:

Активируем и запустим сервис:

Для управления Transmission можно взять один из официальных клиентов или любой другой на твой вкус. Я использую transmission-remote-gtk на ноутбуке и Transmission Remote на смартфоне.

медиацентр raspberry pi
Управляем торрент-клиентом со смартфона

Ретроигры на Raspberry Pi

Эмуляция старых приставок — одна из тех вещей, с которыми новые Raspberry Pi справляются лучше всего. Есть люди, которые покупают Raspi, ставят на него дистрибутив RetroPie, подключают джойстики и используют исключительно в качестве игровой приставки.

Вы можете пойти тем же путем, но имейте в виду, что RetroPie — специализированный дистрибутив, который загружается либо в интерфейс RetroArch для запуска игр, либо в Kodi для просмотра фильмов и прослушивания музыки.

РЕКОМЕНДУЕМ:
Файловый сервер с блокировкой рекламы из Raspberry Pi и Pi Hole

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

Итак, для начала клонируем репозиторий RetroPie:

Запустим инсталлятор:

Нас интересует всего один пункт: Manage Packages -> Core -> retroarch. Выбираем и устанавливаем.

медиацентр raspberry pi
Устанавливаем RetroArch

Запускаем RetroArch:

Для начала настроим джойстик. Идем в Settings -> Input -> Input User 1 Binds. Как и в любом эмуляторе, выбираем нужную кнопку и нажимаем ее на джойстике. По умолчанию RetroArch эмулирует универсальный джойстик RetroPad, расположение кнопок на котором такое же, как на джойстике SNES.

Также сразу включаем комбинацию для быстрого выхода в меню: Menu Toggle Gamepad Combo -> выбираем Start + Select или любую другую комбинацию на свой вкус.

Далее необходимо установить движки эмуляции. Переходим на главный экран, затем Load Core -> Download core… Нас интересуют следующие движки:

  • fceumm — NES;
  • genesis_plus_gx — Sega Mega Drive 2;
  • snes9x2010 — Super Nintendo;
  • pcsx_rearmed — Sony PlayStation 1.

И последнее. Переходим в Settings -> Directory -> File Browser и выбираем каталог с ROM’ами.

Это все. Теперь, если, например, вы хотите поиграть в «Сегу», переходите в Load Core -> genesis_plus_gx, далее Load Content и выбирайте игру.

Ах да. RetroArch поддерживает ачивки для множества игр. Регистрируйтесь на retroachivements, затем идите в меню Settings -> Achivements и вбивайте свои логин-пароль. RetroArch сам активирует систему ачивок, когда обнаружит загрузку поддерживаемого ROM’а.

Медиацентр из Raspberry Pi
Интерфейс RetroArch

Выводы

Raspberry Pi не мультимедийный центр и никогда и не должен был быть им. Это просто маленький компьютер, который умеет немного фильмов, музыки и ретроигр. Но именно этим он и хорош, ведь вы можете сам придумывать ему применение. Не нравится Kodi, как мне, — используйте SSH и голый omxplayer. Установите MPD и включайте музыку хоть с другого конца города.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий