Если когда-то вы хотели настроить свой медиасервер для хранения фильмов, сериалов или музыки, то вам понадобится Jellyfin. С помощью него можно организовывать и просматривать фильмы и сериалы, а также слушать музыку. При чем Jellyfin запоминает какие фильмы вы просмотрели и серию, сериала, на которой вы остановились.
Програма работает на отдельном сервере и позволяет транслировать контент на разные устройства в локальной сети, например, на SmartTV или смартфон, с помощью Android приложения. В статье рассмотрим выполняется установка и настройка Jellyfin с помощью Docker Compose, как создать библиотеку для медиа-файлов, настроить загрузку субтитров и другие базовые вещи.
Содержание статьи
- Что такое Jellyfin?
- Какое аппаратное обеспечение требуется?
- Где брать фильмы?
- Установка Jellyfin с Docker Compose
- Первоначальная настройка Jellyfin
- Выводы
Что такое Jellyfin?
Jellyfin — это медиасервер с открытым исходным кодом, написанный на C#, который можно установить на домашнем сервере и транслировать с него фильмы, сериалы или даже музыку на другие устройства. Это форк медиасервера Emby, который был создан после того, как Emby стал проприетарным.
Программа поддерживает учетные записи для нескольких пользователей, имеет приложение для Android, которое позволяет получать доступ к медиафайлам как с телефона, так и со Smart TV. И это довольно удобно.
Какое аппаратное обеспечение требуется?
Сам по себе этот медиасервер не очень требователен к ресурсам. Если вы не собираетесь транскодировать медиафайлы в различные форматы, то программа будет работать на большинстве старых ПК или ноутбуков и даже на Raspberry Pi. Вот минимальные требования к аппаратному обеспечению, указанные на официальном сайте:
- Оперативная память: 4 ГБ.
- Процессор: Intel Core i5-2300, AMD FX-8100 или новее.
- Накопитель: рекомендован SSD для файлов программы и метаданных.
- Интернет-соединение: требуется для комфортного удаленного доступа.
Для транскодирования файлов желательно иметь видеокарту Nvidia или Intel и более мощный процессор:
- Оперативная память: 8 ГБ.
- Процессор: Intel Core i5-11400, Intel Pentium Gold G7400, Intel N100, Apple M или новее.
- Видеокарта: Intel Arc A, NVIDIA GTX16/RTX20 или новее.
Транскодирование необходимо, когда ваше устройство не поддерживает формат медиафайла. Тогда Jellyfin может конвертировать файл в нужный формат. Но если вы будете использовать современные форматы файлов и современные устройства для воспроизведения медиа, то транскодирование не понадобится. В этой статье мы не будем рассматривать настройки транскодирования.
Где брать фильмы?
Самый простой относительно легальный способ получения фильмов для Jellyfin — это фильмы, которые продаются на DVD-дисках. Раньше таких фильмов было очень много, да и сейчас они никуда не делись. Даже современные сериалы можно найти на дисках на eBay и других площадках. Конечно, это можно делать лишь для персонального использования, и эти данные нельзя копировать и распространять.
До недавнего времени фильмы без DRM можно было купить на GOG.com. Также есть много фильмов и телепередач, доступных публично на Archive.org, которые можно загрузить вручную или с помощью Parabolic. Но обращайте внимание на законодательство страны, в которой вы находитесь.
Установка Jellyfin с Docker Compose
В этой статье я покажу, как установить Jellyfin на отдельный компьютер в сети. В данном случае это будет компьютер с IP-адресом 192.168.122.202. Поэтому перед тем, как развернуть приложение, подключитесь к серверу через SSH. Замените IP-адрес и имя пользователя в команде на свои:
ssh serhii@192.168.122.202
Самый простой способ установить Jellyfin — использовать Docker-контейнер от LinuxServer. Это не официальный образ, но он содержит все необходимое и требует минимум конфигурации. Таким образом вы получаете полностью функциональное и настроенное приложение, и вам останется лишь настроить библиотеку фильмов. Для этого используйте такой docker-compose.yaml:
vi docker-compose.yaml
---
services:
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Kyiv
volumes:
- ./data/config:/config
- ./data/movies:/data/movies
- ./data/series:/data/series
ports:
- 8096:8096
- 8920:8920
- 7359:7359/udp
- 1900:1900/udp
restart: unless-stopped
Обратите внимание на строки PUID и PGID: в них нужно указать ID вашего пользователя и ID его группы. Часто, если это первый пользователь в системе, его ID будет 1000. Проверить ID можно с помощью команды:
id
Это необходимо для того, чтобы программа имела доступ к файлам фильмов, которые вы будете создавать. Также перед запуском контейнера создайте каталоги, которые будут монтироваться в контейнер. В этом примере у нас есть три каталога: config для сохранения конфигурации, movies и series для библиотеки фильмов и сериалов соответственно:
mkdir -p ./data/{config,movies,series}
Теперь можно запустить Jellyfin. Для этого выполните:
docker compose up
Если всё работает, процесс можно остановить и запустить его в фоновом режиме:
docker compose up -d
После этого Docker сам будет управлять процессом и запускать его автоматически после перезагрузки компьютера. Теперь можно переходить к настройке. Для этого нужно открыть веб-интерфейс программы в браузере, который будет доступен на порту 8096.
Первоначальная настройка Jellyfin
В нашем случае веб-интерфейс можно открыть по адресу http://192.168.122.202:8096. У вас адрес может отличаться, так как это должен быть адрес вашего сервера, на котором вы развернули приложение.
Шаг 1. Имя сервера и локаль
На первом шаге нужно ввести имя сервера, а также выбрать язык. Здесь доступно много локализаций, в том числе русская и украинская. Но я оставляю английскую:
Шаг 2. Создание пользователя
На втором шаге необходимо создать первого пользователя, который будет управлять всем в программе. Дополнительных пользователей можно будет создать позже:
Шаг 3. Библиотека фильмов
Далее нужно добавить папки, в которых будут храниться ваши медиафайлы. Начнем с фильмов. Нажмите кнопку со значком плюса и надписью Add Media Library:
Затем выберите тип контента Movies:
Затем нажмите значок плюса в разделе Folders и выберите папку /data/movies, которую мы смонтировали в контейнер с файловой системы сервера:
После этого нажмите кнопку OK, чтобы добавить библиотеку, и она появится в списке:
Шаг 4. Библиотека серий
Прямо здесь можно добавить ещё одну библиотеку для сериалов. Для этого снова нажмите кнопку с плюсом:
А затем выберите тип медиа Shows:
В разделе Folders добавьте папку /data/series и нажмите OK:
Jellyfin также поддерживает аудиофайлы и книги. Теперь у вас есть две библиотеки. Разные библиотеки нужны для разных типов медиа, потому что они имеют разную структуру папок и разную функциональность в программе. Мы рассмотрим это позже.
Шаг 5. Локализация метаданных
Jellyfin автоматически загрузит метаданные для всех файлов фильмов, которые найдет в каталогах библиотеки. На этом шаге можно настроить язык и региональные стандарты для метаданных. Я оставляю English и United States:
Шаг 6. Удаленный доступ
И на последнем шаге необходимо оставить отметку Allow remote connections to this server активной, чтобы к серверу можно было подключиться удаленно:
И всё: настройка завершена, достаточно нажать кнопку Finish:
Шаг 7. Авторизация
Теперь можно авторизоваться, используя имя пользователя, созданное на втором шаге, и перед вами откроется информационная панель программы:
Здесь пока пусто, потому что мы не добавили медиафайлов. Самое время это сделать.
Шаг 8. Отключение транскодирования
Есливы запустили Jellyfin на устройстве с небольшим количеством оперативной памяти и не очень мощным процессором, транскодирование лучше отключить. Для этого откройте Settings:
Затем откройте Dashboard:
Здесь перейдите в раздел Users и в контекстном меню пользователя выберите Edit User:
После этого нужно снять галочки с Allow audio playback that requires transcoding и Allow video playback that requires transcoding:
После этого, если вы попытаетесь, будучи авторизованным под этим пользователем, открыть медиа, которое требует транскодирования, вы получите ошибку.
Шаг 9. Добавление фильмов
Jellyfin не имеет функции загрузки фильмов через веб-интерфейс, поэтому для того, чтобы это заработало, вам нужно поместить фильмы в папку на сервере. Я не буду рассказывать в этой статье, как настроить обмен файлами. Это может быть Samba, FTP, NFS или даже копирование через SSH с помощью scp. Но важна структура. Нельзя размещать файлы прямо в корневом каталоге библиотеки. Для каждого фильма/видео нужно создать отдельную папку, а уже в эту папку положить файлы. Например, для фильма Kung Fury это будет выглядеть вот так:
После того как вы добавили файлы фильмов, зайдите в Dashboard и нажмите кнопку Scan All Libraries, чтобы обновить файлы в библиотеке:
После этого фильм появится на главной странице, и для него загрузятся все доступные метаданные:
Сама страница фильма выглядит вот так:
А начать воспроизведение фильма в браузере можно с помощью кнопки воспроизведения.
Шаг 10. Добавление сериалов
Для сериалов структура размещения файлов похожа, но каждый сезон должен быть в своём подкаталоге. Например, первый сезон — в Season 01, второй — в Season 02 и так далее:
Кроме того, есть требования к названиям серий. Желательно, чтобы имя каждого файла также содержало название, номер сезона и серии. Например: "Название сериала (год) S01E01 Название серии". После добавления файлов не забудьте пересканировать медиабиблиотеку.
Шаг 11. Сохранение истории действий
Функциональность Jellyfin можно значительно расширить с помощью плагинов. Для того, чтобы установить плагин, откройте Dashboard, затем раздел Plugins и перейдите на вкладку Available:
Здесь можно просмотреть доступные плагины или воспользоваться поиском. Давайте установим плагин Playback Reporting, который будет сохранять информацию о том, что и когда вы смотрели. Перейдите на страницу плагина и нажмите Install:
После установки плагинов иногда нужно перезапустить Jellyfin. Для этого перейдите в Dashboard и нажмите Restart:
После этого плагин будет установлен, а в настройках появится раздел Playback Reporting, где можно будет посмотреть, какой пользователь что смотрел и на каком устройстве:
Шаг 12. Автоматическая загрузка субтитров
По умолчанию Jellyfin не умеет загружать субтитры. Но это можно исправить. Для этого вам понадобится плагин Open Subtitles и аккаунт на одноименном сервисе. Плагин можно установить в настройках, как показано выше:
Далее зарегистрируйтесь на сайте https://opensubtitles.org/. У сервиса есть платная подписка, но на бесплатном тарифе можно скачивать 20 файлов субтитров в день. После регистрации перейдите в плагины, найдите Open Subtitles, нажмите Settings на странице плагина и там введите свой логин и пароль от OpenSubtitles:
После этого вы сможете загружать субтитры на странице фильма. Но сначала вам нужно узнать частоту кадров. Для этого нажмите кнопку с тремя точками возле фильма и выберите Media Info.
Здесь есть поле Framerate. В данном случае это 25.
Необходимо, чтобы частота кадров фильма совпадала с частотой кадров субтитров, иначе они рассинхронизируются. Если у фильма нестандартная частота кадров, вы можете исправить это с помощью ffmpeg перед загрузкой фильма на сервер или уже в терминале сервера. Можно использовать следующую команду, чтобы установить частоту кадров 25, если она отличается от 25:
ffmpeg -i ./source_file.mp4 -filter:v fps=25 ./result_file.mp4
Если вы замените файл в библиотеке, вам нужно будет пересканировать саму медиатеку. Далее в том же меню выберите Edit Subtitles.
В новом окне выберите язык и нажмите кнопку поиска:
После этого выберите файл субтитров с соответствующей частотой кадров и нажмите кнопку со значком загрузки. Если первый файл не подошел, возможно, придется попробовать несколько. После того как файл будет загружен, вы можете выбрать его в плеере, и тогда субтитры начнут отображаться:
Настройка Android-приложения
Всё это было бы не так интересно, если бы нельзя было стримить фильмы с Jellyfin на смартфон или телевизор. У Jellyfin есть официальное приложение, которое можно установить на ваше устройство и просматривать видео с его помощью. Само приложение можно найти на Google Play или на F-Droid
После установки приложения необходимо указать URL вашего сервера. В нашем случае будет использоваться тот же URL, что и в браузере, только порт указывать не нужно.
Далее необходимо авторизоваться, используя данные пользователя, которого вы создали ранее:
После этого можно открывать фильмы и начинать их просмотр. Например, можно продолжить просмотр с того же места, где вы остановились на другом устройстве:
Выводы
В этой статье мы рассмотрели, как выполняется простая установка и настройка Jellyfin на домашнем сервере. Если вы хотите больше удобства во время просмотра фильмов, но не хотите пользоваться Netflix, то это неплохое решение.











































