Не так давно я задался проблемой выбора домашнего медиа сервера, который собирался устанавливать на Ubuntu Server 18. Обязательное условие: поддержка проигрывания фильмов на телевизорах через DLNA.
Сначала я установил и протестировал MiniDLNA.
Медиа сервер MiniDLNA на Ubuntu 18
MiniDLNA прекрасно работает, однако он обеспечивает минимальный функционал. Оставил его в качестве альтернативы.
Потом был опробован бесплатный медиа сервер Emby.
Медиа сервер Emby на Ubuntu 18
Здесь функционал богаче, однако, минусов тоже полно. К примеру, на старом телевизоре Philips не заработал Emby DLNA сервер. Эфирное видео недоступно в бесплатной версии. И реклама Emby Premiere задолбала.
Интернет подсказал, что на базе Emby существует форк под названием Jellyfin. Этот медиа сервер должен быть чуточку свободнее и без назойливой рекламы. Проект развивается сообществом и полностью зависит от вклада добровольцев в его совершенствование. Попробуем?
Ссылки
Установка Jellyfin на Ubuntu 18
Заходим на официальный сайт.
Переходим в раздел Download now и находим инструкцию для установки медиа сервера на Ubuntu.
Инструкция похожа на кусок обфусцированного кода.
Работаем под sudo.
Устанавливаем вспомогательный пакет apt-transport-https:
apt install apt-transport-https
Устанавливаем репозиторий jellyfin:
cd /tmp
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Обновляем репозитории:
apt update
Устанавливаем пакет jellyfin:
apt install jellyfin
Медиа сервер jellyfin установлен. Управление службами:
sudo systemctl {action} jellyfin.service
sudo service jellyfin {action}
Проверим состояние службы:
service jellyfin status
После установки веб-интерфейс для настройки доступен по адресу http://localhost:8096. Служба HTTPS по умолчанию выключена, если включить, то она работает на порту 8920 — или https://localhost:8920. Аналогично серверу Emby.
Проверяю работающий порт 8096:
netstat -tanu | grep 8096
Порт работает, дальнейшую настройку можно производить в браузере:
http://localhost:8096
Начальная настройка Jellyfin
Язык помощника по установке определился автоматически, в отличие от Emby. Это радует. Выбираем язык сервера. Следующее.
Теперь нужно настроить администратора. Указываем пользователя и пароль. Следующее.
Добавляем библиотеку. Здесь она называется медиатека. Этот шаг можно пропустить и добавить библиотеки позже. Нажимаем плюс.
Указываем тип контента, название папки, набрасываем путей для сканирования и дальше ещё куча настроек как у Emby. Ok.
Следующее.
Снова нас просят указать страну и язык, то же самое было у Emby. Теперь уже для метаданных. Указываем. Следующее.
Конфигурируем настройки удалённого доступа к серверу и автоматическое сопоставление портов по UPnP. Следующее.
Да ладно! Никаких лицензионных соглашений? Где-то слон сдох. Завершить.
Первые впечатления от Jellyfin
Выполняем вход под администратором, которого создали.
А дальше практически всё то же самое, что и у Emby. Те же базы для распознавания фильмов, точно таким же образом мультфильм "Гадкий я" определился как "Гадкий утёнок".
Немного работы и ручного распознавания фильмов, подключение фоновых рисунков. Странички становятся ещё информативнее и веселее.
Jellyfin по DLNA
Меня больше всего интересует вопрос работы Jellyfin по DLNA. Прошлый опыт с Emby был не очень удачен, на старом телевизоре Philips ничего не заработало. Поскольку Jellyfin, похоже, использует тот же самый плагин, то результат может быть таким же.
Здесь нужно выбрать пользователя по умолчанию, чьи библиотеки будут транслироваться по DLNA. Настройки DLNA такие же как у Emby.
Стоит обратить внимание на вкладку "Profiles".
Здесь можно выбрать профиль по умолчанию для DLNA сервера. Я выбрал LG Smart TV. Выбираем системный профиль, нажимаем OK. Далее настройки профиля можно переопределить.
Проверяю работу Emby DLNA на телевизоре LG
Сначала я расстроился из-за того, что превьюшки не показываются.
Однако, покопавшись в настройках Jellyfin, я понял, что проблема легко устраняется установкой плагина Fanart. Этот плагин добавляет дополнительные типы изображений, которые настраиваются в медиатеке.
Теперь превьюшки отображаются.
И фильм проигрывается.
Проверяю работу Emby DLNA на старом телевизоре Philips
О чудо! При первой загрузке телевизор не завис, как в Emby.
Внутри, однако, всё ещё наблюдается вывод папок в бесконечном цикле.
Если клювом не щёлкать и оперативно управлять пультом, то можно вывести список фильмов.
И даже посмотреть.
Заметки после пары дней использования
В медиа сервере Emby можно было выбрать пользователя для автоматического входа в локальной сети. Это было очень удобно. Но в Jellyfin такого функционала нет. Выход нашёл такой: создаю гостевого пользователя с красивой аватаркой и устанавливаю ему пустой пароль. При клике на него выполняется автоматический вход, детям удобно пользоваться.
Эфирное телевидение работает без премиального доступа, в отличие от Emby. Я загрузил 600 каналов и телегид. Через два дня кэш раздулся до 100 Гб. Пришлось убирать все каналы. Потом создам собственный файл со списком только нужных мне каналов.
Протестировал медиатеку с фотографиями, всё работает. Только на превьюшках папок фотографии автоматически не поворачиваются вертикально.
Музыку не тестировал.
Интервал сообщений проверки активности был установлен на 1800 секунд, при таком интервале телевизор LG терял сервер, поэтому я уменьшил интервал.
По умолчанию содержимое медиатеки обновляется раз в 12 часов. Однако, содержимое папки можно обновить вручную через web GUI.
Часто фильмы не распознаются или распознаются неправильно, пришлось научиться распознавать фильмы. Для этого используются идентификаторы двух ресурсов: IMDb и TheMovieDb. Например:
- https://www.imdb.com/title/tt1690953/
- https://www.themoviedb.org/movie/93456-despicable-me-2
В крайнем случае можно отредактировать фильм вручную.
Есть возможность трансляции фильма из браузера на телевизор:
На Philips TV большая часть фильмов не заработала с ошибкой: "Невозможно пр. содержимое", при этом удалось проиграть видеозаписи с телефона и рулить громкостью звука. Те же фильмы запускались из DLNA, видимо, формат отличается.
На LG кино пошло:
В ближайшее время планирую изучить функционал плагинов для Jellyfin и настроить несколько интересных эфирных каналов IP TV.