Serviio. Просто Serviio

Максим Перехрест

Прогресс не стоит на месте. С каждым годом «умнеют» не только наши любимые компьютеры, но и другие устройства. Сейчас уже никого не удивишь, например, «умным» телевизором. Чего они только уже не умеют, даже по Сети гуляют не хуже какого-нибудь ноутбука.Получаем ситуацию: есть телевизор и компьютер, подключённые к сети, на дисках компьютера хранится куча фото-видео-музыки. Вопрос: как бы нам вывести всю эту мультимедию на телевизор? Говоря проще, нам нужен медиасервер (а ещё точнее — DLNA-медиасервер).

Таких программ создано не так чтобы очень много, но и не очень мало, и встаёт вопрос выбора. Есть программы небольшие, но их настройка не очень проста, и возможности минимальны (хотя, возможно, и достаточны) — minidlna (или ReadyMedia) и mediatomb. Но возиться не хотелось, да и эти программы сейчас не развиваются.

Есть Kodi, который может, наверное, всё, но кажется слишком навороченным (внешне чем-то даже напоминает Windows Media Center). Впрочем, я, может быть, предвзято к нему отношусь? Почему? Потому что нашёл, как мне кажется, золотую середину, программу, которая называется Serviio. Программу, которая во-первых, легко настраивается, но после установки — незаметна, во-вторых, имеет достаточно (для меня!) возможностей, не глючит и не падает (за почти два года я не помню ни одного сбоя по вине именно Serviio. Программа также поддерживает Windows и некоторые другие системы.

Забавно то, что два года назад именно из-за необходимости настроить serviio я начал присматриваться к такому дистрибутиву, как Manjaro. Дело в том, что для этой программы требуются ffmpeg и openjdk8. Два года назад установить их в debian- и ubuntu- дистрибутивы было не очень просто — требовалось подключение дополнительных репозиториев, а заниматься этим не очень хотелось. Именно тогда я обратил внимание на Manjaro и Rosa Linux, в которых эти пакеты можно было установить без проблем.

Перечень возможностей Serviio можно найти здесь. Основными возможностями программы можно пользоваться совершенно бесплатно, но автор не будет возражать, если вы приобретёте версию pro всего за $25. Сравнить свободную версию и версию pro можно здесь. Первые две недели после установки программа работает в режиме Pro. Впрочем, у меня желания покупать профессиональную версию не возникло.

Установка

Установить программу можно двумя способами:

С помощью AUR. Подходит, естественно, для дистрибутивов, поддерживающих AUR. Всё, что нужно — найти и установить serviio: например, набрать

yaourt -S serviio

и довести установку до конца. Теперь можно запустить сервер, набрав

/bin/serviio.sh

Но запускать программу вручную, а потом настраивать автозапуск — на мой взгляд, не лучшая идея. Можно запустить serviio как сервис, тем более, что всё необходимое для этого уже готово, достаточно набрать только:

sudo systemctl enable serviio

sudo systemctl start serviio

Всё.  Можно переходить к настройке. Мне в этом способе не нравится только одно — serviio будет запускаться от рута, что не очень хорошо, поэтому я использую второй способ.

Вручную. Подойдёт для любого дистрибутива Linux.

  1. Устанавливаем ffmpeg и openjdk8. В Manjaro при установке системы со стандартного установочного образа они уже установлены. В противном случае устанавливаем:

    sudo pacman -S ffmpeg jre8-openjdk

  2. Скачиваем программу на сайте.
  3. Распаковываем архив в папку. Важно: вы должны иметь полный доступ к этой папке. После этого вы можете запустить программу. Например, если вы распаковали архив в папку ~/serviio, то запустите файл ~/serviio/bin/serviio.sh.
  4. Теперь запустим serviio как сервис. Этот способ должен подойти к дистрибутивам, использующим systemd. Для остальных, например, Gentoo — добро пожаловать на Serviio wiki. Собственно, этот способ тоже взят оттуда, только чуть упрощён. Предположим, что serviio распакован в папку /home/data/serviio. Делаем следующее:

sudo useradd -r -m -s /bin/false serviio

sudo chown -R serviio:serviio /home/data/serviio

sudo kate /lib/systemd/system/serviio.service

Вместо kate можно использовать любой другой текстовый редактор. Редактируем файл:

[Unit]
Description=Serviio Media Server
After=syslog.target local-fs.target network.target

[Service]
Type=simple
User=serviio
Group=serviio
ExecStart=/home/data/serviio/bin/serviio.sh
ExecStop=/home/data/serviio/bin/serviio.sh -stop
KillMode=none
Restart=on-abort

[Install]
WantedBy=multi-user.target

Сохраняем, выходим. Запускаем сервис:

sudo systemctl daemon-reload

sudo systemctl enable serviio

sudo systemctl start serviio

Всё. Проверить правильность установки программы можно, набрав:

ps ax | grep serviio

Если всё нормально, то увидим что-то вроде:

1826 ?        Ssl    2:44 java -Xmx512M -Xms20M -XX:+UseG1GC -XX:GCTimeRatio=1 -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dorg.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade -Dderby.system.home=/home/data/serviio/library -Dserviio.home=/home/data/serviio -Dffmpeg.location=ffmpeg -Ddcraw.location=dcraw -classpath /home/data/serviio/lib/*:/home/data/serviio/config org.serviio.MediaServer

Можно поэкспериментировать дальше: включить телевизор и нажать на пульте кнопку выбора источника сигнала (Source, TV/AV, …). Если всё нормально, среди значков источников сигнала вы увидите значок Serviio.

Если у вас в компьютере включён межсетевой экран, то необходимо открыть порты 8895/tcp и 1900/udp для входящих соединений. У меня установлен gufw, настроить можно так:

  1. Запустить gufw.
  2. Добавить два правила.

Настройка

Настройка программы производится через обычный браузер. Если вы установили программу через AUR, то соответствующий пункт появится в меню вашей системы. Кроме того, вы можете запустить файл serviio-console.sh, который находится там же, где и файл serviio.sh. Ещё один вариант — в браузере перейти по адресу http://localhost:23423/console. Если вы установили serviio на сервере, то настроить программу можете, зайдя на сервер:

http://адрес_сервера:23423/console

Результат будет примерно таким:

Кроме меню нас здесь интересует количество проиндексированных файлов (пока ноль) и кнопка переключения языка. Нажимаем на неё и переключаем язык.

Следующий пункт в меню — Состояние:

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

sudo systemctl stop serviio

Важно! Изменения в настройках программы требуют нажатия клавиши «Сохранить».

Медиатека:

Здесь можно добавить локальные папки. Нужно просто нажать кнопку «Добавить».

Укажите вид медиафайлов, папку, где находятся ваши файлы (Serviio умеет искать в подкаталогах), нажмите ОК и «Сохранить»… и всё. Вы увидите, что программа начала сканировать ваши файлы. Маленькая тонкость: вы должны иметь права доступа к этим файлам (если доступ запрещён — Serviio не сможет просканировать файлы).

Здесь же вы можете добавить онлайн-источники медиа, но я пробовал добавлять только интернет-радиостанции. Добавлять интернет-видео я не пробовал — просто не было надобности, поэтому по всем вопросам — в serviio-wiki.

Доставка:

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

Метаданные:

Здесь определяется, нужно ли создавать миниатюры для локальных видео и нужно ли получать метаданные для видеофайлов из Интернета (можно выбрать одну из перечисленных баз видео). Меня вполне устраивают миниатюры, которые создаёт Serviio, я отключил получение метаданных: чтобы полученные данные были корректными, нужно, чтобы ваш фильм был в базе и имя файла было бы правильным (а ведь видеофайлам часто дают имена типа 1.avi 🙂 ). Так что для моих файлов порой находились такие миниатюры, что я не знал, плакать или смеяться, поэтому я всё это отключил.

Навигация:

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

Удалённый доступ:

Если вам нужен доступ к вашим файлам через Интернет, то вам сюда. Если вы хотите использовать MediaBrowser (требуется версия pro!), то установите пароль пользователя.

И наконец, кнопка MediaBrowser открывает вам… MediaBrowser. На самом деле, это всего лишь ссылка. Если вы купили версию Pro, то можете получить доступ к вашим файлам почти с любого устройства, на котором можно запустить веб-браузер. Вам нужно будет только ввести пароль, указанный на вкладке «Удалённый доступ», вы получите Youtube-подобный плеер.

Для доступа к медиа-браузеру с другого компьютера вашей сети используйте адрес

http://адрес_сервера:23424/mediabrowser

Впрочем, получить доступ к серверу с любого компьютера вашей сети можно и при бесплатной версии Serviio. Если к сети подключен компьютер с установленной Windows 7, 8 или 10, то достаточно открыть «Мой компьютер», и вы поймёте, что Windows уже увидела ваш сервер. Если же на компьютере установлен Linux, то можно использовать, например, VLC. Запустим его, в меню «Вид» выберем «Плейлист»:

В списке слева выберем «Протокол UPnP», справа через несколько секунд увидим пункт «Serviio». Сделаем по нему двойной щелчок, подождём ещё несколько секунд, и появится возможность открыть меню «Serviio». Остаётся только найти и выбрать нужный медиафайл.

На самом деле,  вся установка и настройка Serviio, хоть и выглядит немного страшно, занимает максимум минут десять, затем будет нужно только добавлять в соответствующие папки новые файлы или удалять старые. Единственная, обнаруженная мной проблема — Serviio может «не увидеть» ваш файл, если в его имени слишком много точек (в чем суть проблемы я так и не понял. Некоторые файлы с большим количеством точек в имени сканируются, некоторые — нет, может быть, проблема в другом?). В таком случае я просто заменяю точки в имени файла на дефис (-) или подчёркивание (_), оставляю только точку перед расширением.

Итак, мы имеем медиасервер, может быть, не самый навороченный, но его возможностей лично мне хватает с избытком. Живёт себе спокойненько в памяти, не мешает, не падает, а просто работает. Если бы не эта странная ситуация с НЕКОТОРЫМИ именами файлов, я бы сказал, что я просто не вижу недостатков.

PS. Дело, кажется, не в количестве точек в имени файла. Я обратил внимание, что если загружать видеофайлы в библиотеку через торрент, то Serviio видит их сразу, а если их просто скопировать — этого может не произойти. Возможно, программа периодически проверяет изменения в библиотеке. Сейчас, если Serviio сразу не видит новый файл, я либо пересканирую библиотеку, либо чуть изменяю имя файла (можно добавить или, наоборот, удалить пробел из имени) — если добавленный файл не предназначен для «длительного хранения», это может быть проще и удобнее.

Оставьте комментарий