Медиасервер на базе Raspberry Pi

  • Автор
Особенностью Raspberry Pi является минимальное энергопотребление – около 1 Ватта. Запустить Pi
можно от 4-х батареек формата АА. При этом Pi имеет достаточно мощный графический чип, которого, якобы, хватает для воспроизведения HD-контента. Это, вместе с минимальной ценой, и натолкнуло меня на мысль, что на базе Pi можно сделать медиасервер – круглосуточную качалку для торрентов и их воспроизведения на телевизоре или проекторе.

Порывшись
в залежах компьютерного хлама, я нашел
старый винт на 80 Гб с интерфейсом IDE,
переходник для подключения винта по
USB, с внешним блоком
питания, а также зарядное устройство
от безвременно почившей в бозе электронной
книги Wexler 7001, USB-мышь
и кабель LAN. Пришлось
докупить: карту памяти SDHC
на 16 Гб, с которой будет загружаться
система, внешнюю USB-клавиатуру,
т.к. у моей основной клавиатуры разъем
PS/2, и USB-хаб
с внешним питанием, от которого, впрочем,
реально толку не было из-за чисто
английских странностей пациента.
Raspberry
Pi был приобретен в
Wimaxstore по цене 2280 рублей,
что, безусловно, очень дорого по сравнению
с его исходной ценой. Но из-за бугра я
раньше ничего не заказывал, и связываться
с этим делом не хотелось, а цена сама по
себе не запредельная.
В
качестве операционной системы на офсайте
предлагаются 3 варианта: Raspbian Wheezy
– сборка Debian для
ARM-процессора, ArchlinuxARM,
и некий Qtonpi – как я понял,
спецсборка с графическим окружением
на библиотеках Qt. ОС должна
грузиться с карты памяти, и именно исходя
из этого был выбран вариант на базе
Debian – так как Арч быстро
замучает карту своими бесконечными
обновлениями, а для сервера важнее
стабильность софта, чем его свежесть.
ОС
закатывается на карту памяти командой
dd, делается это легко и
непринужденно. В результате на карте
образуются 2 раздела, один содержит
ядро, несколько текстовых конфигов и
проприетарные модули для графического
чипа, на другом живет стандартная
файловая система Unix.

После
чего карта была воткнута в плату, к плате
подоткнута клавиатура, мышь, кабель
HDMI к LCD-панели
и сетевой кабель в роутер. Кабель питания
в зарядку от электронной книги, и вперед.
По
умолчанию Pi грузится в
текстовую консоль, и в первой текстовой
консоли запускается псевдографическая
утилита конфигурирования, где можно
настроить автозапуск графического
окружения при загрузке, старт ssh-сервера,
и ещё кое-какие подробности.
В
сборке Raspbian используется
LXDE, с pcmanfm
в качестве файл-менеджера. Предустановленный
софт – Python, Scratch,
Idle в качестве среды
программирования, Leafpad, Midori. Никакого
графического видеоплеера по умолчанию
нет. VLC на этом железе
висит и тормозит, mplayer при
раскрытии на полный экран вешается, и
фильмы со звуком mp3 не
проигрывает, хотя libmp3lame0
установлена.

Ещё
для Pi существует сборка
XBMC, однако эта поделка
при монтировании диска с большим
количеством фильмов начинает их
индексировать и благополучно виснет,
:) Звук mp3 она проигрывает, но вот
изображение, кодированное стандартным
кодеком xvid осилить не может :)
Оказалось,
в Pi установлен по умолчанию
какой-то omxplayer, который
умеет играть видео на полный экран прямо
из текстовой консоли, со звуком mp3.
Однако плеер очень непонятный, похоже,
еще недоделанный. Стартовать его надо
из консоли, или эмулятора терминала,
указывая, куда выводить звук — в HDMI или
аудио-разъем minijack. Также он не понимает
формат mkv, играет только avi и mp4.

Он
действительно воспроизводит HD-видео в
формате 1080p в контейнере mp4 с диска,
подмонтированного по сети без тормозов.
Управление
play/pause — пробел, громкость – «+» и «-».
Для запуска фильма подключать к Pi
клавиатуру или мышь необязательно,
достаточно лишь воткнуть кабель HDMI и
LAN, после чего законнектиться к Pi по ssh,
подмонтировать сетевой диск с фильмами
и запустить воспроизведение командой
omxplayer
-o hdmi название_фильма
если
смотрим на телевизоре с выводом звука
по HDMI. Если колонки подключены к minijack'у
на борту Pi, используется опция -o local

Pi
можно подключать не только к телевизору,
но и к проектору. Чтобы проектор нормально
опознался, он должен быть включен до
загрузки Pi. Неудобство заключается в
том, что соединение HDMI-кабеля надо
производить при полном обесточивании
обоих устройств, так что закачку
приходится прерывать, все выключать и
включать заново.

Поскольку
кабель HDMI был короткий, а перетаскивать
Pi на проекторный столик ради проверки
5 минутного ролика не хотелось – в него
дофига кабелей воткнуто, я подкатил
столик к Pi и спроецировал изображение
на белую дверь спальни. Открыв на двери
pcmanfm и терминал, я сообразил, что надо
взять наушники в спальне. Пришлось
войти в файловую систему Debian непосредственно
через дверь :-D


Если
с воспроизведением фильмов у Pi все не
слишком безоблачно, то вот с второй
возложенной на него задачей — закачкой
торрентов, он справляется на раз, хотя
настройка оказалась не слишком
интуитивной.
Сервер :)
Необходимо
установить пакет transmission-daemon, а затем
командой

sudo
service transmission-daemon stop
остановить
демон, и сделать необходимые настройки
в файле /etc/transmission-daemon/settings.json

“rpc-whitelist”: “127.0.0.1',
изменить на “rpc-whitelist”: “*.*.*.*”,
“rpc-password”: “password”,
изменить на “rpc-password”: “сюда пишем
пароль“,
“rpc-username”: “username”,
изменить на “rpc-username”: “имя с которым
будем входить“,
“download-dir”:
“/var/lib/transmission-daemon/downloads”, изменить на
“download-dir”: “/путь/куда/будут/сливаться/файлы”
Необходимо также учитывать,
что демон работает под своей учетной
записью и к группе, в которую входит
пользователь, не относится. Поэтому
надо дать разрешение на запись в папку
для скачиваемых файлов для пользователя
debian-transmission.

sudo chmod g+rw /путь/куда/будут/сливаться/файлы
sudo chgrp -R debian-transmission /путь/куда/будут/сливаться/файлы
Я не стал заморачиваться и дал на папку
права 777.
Чтобы
подключаемый по USB винт монтировался
каждый раз в одну и ту же папку, его надо
прописать в /etc/fstab примерно вот так:
UUID=cab05f44-22ba-417c-b77f-716b89149d26
/media/sda1 ext4 rw,users,relatime 0 0

UUID
диска можно подсмотреть командой

sudo
blkid

После
всех настроек стартуем демон командой

sudo
service transmission-daemon start

Чтобы
с удобством кормить нашего домашнего
демона свежими торрентами, можно
коннектиться к нему через web-интерфейс
из любого браузера по адресу:
http://IP_адрес_Pi_в_домашней_сети:9091/
Особенно
приятно делать это лежа в постели, или
сидя в туалете, с нетбука, смартфона,
или другого портативного устройства –
при этом естественным образом осознаешь,
что будущее наступило. :)
В
Рунту-Gnome я поставил для управления
демоном прогу transgui, чего и всем рекомендую.
В ней два основных плюса:
Можно
задать параметры соединения, чтобы не
вводить каждый раз логин и пароль
Интерфейс
у нее похож не на стандартный transmission,
а на deluge, что гораздо удобнее — в нижней
части окна на 4-х вкладках отображается
полная информация по выделенной закачке,
и не надо лазить в свойства, как в
стандартном transmission. Это как раз то, чего
мне так не хватало в transmission-gtk.
Как я
упоминал, у Pi есть некоторые чисто
английские странности. У него всего 2
USB-порта, поэтому я пробовал подключать
к нему USB-концентратор с внешним питанием,
а уже в него втыкать клавиатуру, мышь,
флешки и внешние винты. Так вот,
концентратор он видит нормально,
клавиатура и мышь через концентратор
работают, а ни винты ни флешки не
определяются. Притом, что один из
опробованных винтов — 3,5'' IDE Seagate –
запитывался через собственный блок
питания.
Если
же втыкать винт или флешку не в
концентратор, а во второй, остающийся
свободным USB-порт, винт некоторое время
виден в системе, но недоступен, а потом
он отваливается.

Das ist
fantastish.
Но,
тем не менее, игрушка оказалась недорогая
и весьма полезная.

Комментарии:

OPERATOR2
Очень интересная статья, спасибо :-) узнал для себя много новой информации, часть из написанного попробую на своей Пи. Я тоже пытался просмотреть на РасПи хоть какое-нибудь видео на VLC - 1 кадр в полминуты, и это видео было не HD. Значит стоит изучать консольный omxplayer... Ну надеюсь что кто-нибудь допилит функционал другого плейера с gui, а то мне как заклятому виндоузятнику в консоли пока что неуютно :-)
Я натыкался в инете на питоновый frontend к omxplayer'у так что работы ведутся, но он еще не допилен. А консоль удобнее, чем кажется:-) Помните о ее двух главных фокусах - стрелка вверх - предыдущие команды, Tab - автодополнение, чтобы имена файлов не набирать :-)
ubiquamus3
Может и поздновато пишу, но я, в качестве мультимедийного софта использую OpenELEC. Управление происходит посредством пульта телевизора, у меня телевизор поддерживает функцию VeryLink, управление происходит через HDMI. Фильмы, музыка, фото без проблем, правда я пока фильмы больше 2 гигов не смотрел. Есть сетевые функции, погода, радио и т.д. и т.п. Контент для воспроизведения беру с компа, расшарил папку, подумываю на счет nas-сервера

Для написания комментариев необходимо зарегистрироваться