Raspberry Pi медиасервер Jellyfin: домашний Netflix своими руками

Пошаговая инструкция: как установить и настроить медиасервер Jellyfin на Raspberry Pi. Создайте приватный домашний кинотеатр для фильмов и сериалов своими руками. Аппаратное ускорение, настройка библиотек, тестирование.
Введение
Помните то чувство, когда хочется посмотреть фильм, но он разбросан по флешкам, жёстким дискам и облакам? Или когда гости просят показать семейные видео, а вы полчаса ищете, где что лежит? Я прошёл через это и решил навести порядок. Покупка готовых медиарешений вроде Synology или подписка на десяток стриминговых сервисов — не наш путь. Мы, мейкеры, любим делать всё сами. Сегодня я покажу, как из скромного Raspberry Pi создать мощный, приватный медиасервер Jellyfin — ваш личный Netflix, где вы сами решаете, что, когда и как смотреть.
Почему именно Jellyfin? Это бесплатный, open-source медиасервер с красивым интерфейсом, автоматической организацией библиотек, трансляцией на любые устройства (телевизоры, телефоны, планшеты) и даже офлайн-синхронизацией. В отличие от Plex, он не требует никакой платной подписки для базовых функций, а по сравнению с Kodi — это клиент-серверная архитектура, где ваш Pi работает как сервер, раздающий контент по сети.
Что понадобится
- Raspberry Pi 4 (2/4/8 ГБ ОЗУ) или Raspberry Pi 5. Pi 3 может справиться, но для комфортного транскодирования (пережатия видео на лету для слабых устройств) лучше Pi 4/5. Я буду использовать Pi 4 4GB.
- Карта microSD (от 16 ГБ, класс 10/UHS-I) для системы.
- Внешний накопитель: USB-HDD или SSD для вашей медиатеки. Флешки не рекомендую — они быстро деградируют от постоянного чтения.
- Блок питания (рекомендуемый, 3A для Pi 4, 5V 5A для Pi 5).
- Сетевой кабель (Ethernet) для стабильного соединения. Wi-Fi подойдёт, но для потокового 4K лучше провод.
- Корпус с охлаждением — сервер может работать под нагрузкой часами.
Шаг 1: Подготовка Raspberry Pi и установка ОС
Мы будем использовать официальную Raspberry Pi OS Lite (64-bit). Она стабильна, оптимизирована и не нагружает систему графическим интерфейсом.
- Скачиваем образ. Заходим на raspberrypi.com/software и скачиваем Raspberry Pi Imager для вашей ОС.
-
Записываем образ. Вставляем карту microSD в компьютер, запускаем Imager.
- Выбираем ОС: Raspberry Pi OS (other) -> Raspberry Pi OS Lite (64-bit).
- Выбираем накопитель: ваша карта microSD.
- Перед записью жмём Ctrl+Shift+X (или иконку шестерёнки) — это откроет настройки.
- Задаём настройки (ВАЖНО!):
ini Имя хоста: jellyfin.local (или на ваше усмотрение) Включаем SSH: Ставим галочку, лучше с аутентификацией по паролю для простоты Задаём логин и пароль: например, pi / ваш_надёжный_пароль Настраиваем беспроводное соединение: если используете Wi-Fi Устанавливаем локаль: ru_RU.UTF-8 Временная зона: Europe/Moscow - Жмём "Сохранить", затем "Записать". Ждём завершения.
-
Первая загрузка. Вставляем карту в Pi, подключаем Ethernet, питание. Ждём минуту-две.
Шаг 2: Первоначальная настройка и установка Jellyfin
Подключаемся к Pi по SSH. В терминале на своём компьютере:
ssh pi@jellyfin.local
(Если jellyfin.local не резолвится, используйте IP-адрес, который можно узнать в роутере).
Первым делом — обновляем систему:
sudo apt update && sudo apt full-upgrade -y
sudo apt autoremove -y
После обновления может потребоваться перезагрузка: sudo reboot.
Устанавливаем Jellyfin. Официальный репозиторий — наш выбор.
-
Импортируем GPG-ключ репозитория:
bash sudo apt install curl gnupg -y curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg -
Добавляем репозиторий в список источников пакетов:
bash echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian bookworm main" | sudo tee /etc/apt/sources.list.d/jellyfin.listПримечание:bookworm— кодовое имя текущей стабильной версии Raspberry Pi OS. Если вы используете другую ветку, уточните её имя. -
Обновляем список пакетов и устанавливаем Jellyfin и FFmpeg (движок для работы с видео):
bash sudo apt update sudo apt install jellyfin ffmpeg -yУстановка займёт несколько минут. -
Важный момент для Pi 5 и некоторых SBC: Если у вас Raspberry Pi 5, Orange Pi 5 или другой одноплатник с процессором ARM, который поддерживает аппаратное декодирование через V4L2, стоит проверить и, возможно, установить дополнительные драйверы. Для Pi 5 в книворме они уже идут в системе. Но проверить наличие
rpi-v4l2можно командойapt search rpi-v4l2.
Шаг 3: Настройка хранилища (подключаем медиатеку)
Выключаем Pi для подключения диска: sudo halt. Подключаем внешний HDD/SSD к USB-порту (желательно USB 3.0, если он есть). Включаем Pi обратно и снова подключаемся по SSH.
-
Находим наш диск:
bash sudo lsblk -fВы увидите список блочных устройств. Ваш диск будет похож наsdaилиsdb. Рядом будет указана файловая система (например,ntfs,exfat,ext4). Запомните его имя, например,sda1. -
Создаём точку монтирования и монтируем диск. Допустим, диск имеет файловую систему NTFS (часто так и есть у внешних дисков из Windows).
- Устанавливаем драйвер для NTFS, если его нет:
bash sudo apt install ntfs-3g -y - Создаём папку для монтирования:
bash sudo mkdir -p /media/media_hdd - Монтируем диск:
bash sudo mount -t ntfs-3g /dev/sda1 /media/media_hddЕсли файловая система ext4 или exfat, команда будетsudo mount /dev/sda1 /media/media_hdd.
- Устанавливаем драйвер для NTFS, если его нет:
-
Делаем монтирование автоматическим при загрузке. Нужно отредактировать файл
/etc/fstab. Сначала узнаём UUID диска (уникальный идентификатор надёжнее имениsda1):bash sudo blkidНайдите строку с вашим/dev/sda1. Скопируйте значениеUUID="xxxx-xxxx".Открываем fstab для редактирования:
bash sudo nano /etc/fstabДобавляем в конец файла строку (подставив свой UUID и тип файловой системы): ```iniМедиатека Jellyfin
UUID=ВАШ_UUID /media/media_hdd ntfs-3g defaults,nofail,uid=1000,gid=1000,umask=022 0 0
`` *nofail— система загрузится, даже если диск не подключён. *uid=1000,gid=1000— даёт права пользователюpi(его UID обычно 1000) на запись в диск. * Дляext4строка будет проще:UUID=ВАШ_UUID /media/media_hdd ext4 defaults,nofail 0 2`Сохраняем (Ctrl+O, Enter) и выходим (Ctrl+X).
Проверяем, что всё смонтируется правильно:
bash sudo mount -a ls /media/media_hddЕсли ошибок нет и вы видите содержимое диска — отлично.
Шаг 4: Первый запуск и базовая настройка Jellyfin
Jellyfin уже должен работать как служба. Проверим:
sudo systemctl status jellyfin
Должны увидеть active (running).
Теперь переходим к веб-интерфейсу. Открываем в браузере на любом устройстве в той же сети: http://jellyfin.local:8096 или http://[IP-адрес-Pi]:8096.
-
Мастер начальной настройки.
- Язык: Выбираем Русский.
- Имя пользователя и пароль: Задаём логин и надёжный пароль для админа. Не используйте
piилиadmin! - Добавление медиатеки: Пока пропускаем, сделаем это позже вручную.
- Язык метаданных: Выбираем Russian, English.
- Настройка удалённого доступа: Можно включить, если планируете смотреть контент извне домашней сети (это требует настройки переадресации портов на роутере и мер безопасности). Пока оставляем выключенным.
-
Входим в панель управления с созданными учётными данными.
Шаг 5: Детальная настройка Jellyfin
5.1. Настройка библиотек
Идём в Панель управления -> Библиотека.
- Нажимаем "Добавить медиатеку".
- Тип содержимого: Фильмы, Сериалы, Музыка и т.д.
- Отображаемое имя: "Фильмы (HD)".
- Папки: Жмём "+" и указываем путь к папке на нашем диске, например,
/media/media_hdd/Movies. Папки нужно создать заранее на диске и загрузить в них медиафайлы. - Важно структурировать! Jellyfin любит порядок.
- Для фильмов:
Название фильма (год)/Название фильма (год).mkv - Для сериалов:
Название сериала/Сезон 01/Название сериала - S01E01 - Название эпизода.mkv
- Для фильмов:
- Поставщики метаданных: Для фильмов — TheMovieDb, для сериалов — TheMovieDb и TVDb. Язык — Russian. Жмём "ОК".
Повторите для всех типов контента.
5.2. Включение аппаратного ускорения (ключевой момент для Pi!)
Без этого Pi может не справиться с транскодированием HD/4K.
Идём в Панель управления -> Настройки -> Транскодирование.
- Включить аппаратное кодирование: Ставим галочку.
- Модуль аппаратного кодирования: Выбираем
Video4Linux2 (V4L2)илиVA-API(в зависимости от системы). Для Raspberry Pi OS с ядром 6.x и новее V4L2 — правильный выбор. - Тип кодека V4L2: Обычно
h264_v4l2m2m. Для H.265/HEVC можно попробоватьhevc_v4l2m2m(поддержка зависит от модели Pi и драйверов). - Разрешить кодирование в H.264: Ставим галочку.
- Разрешить кодирование в HEVC: Ставим, если ваш Pi поддерживает (Pi 4/5).
- Максимальное количество одновременных транскодирований: Для Pi 4 ставьте 1-2, для Pi 5 можно 2-3. Больше — риск перегрузки.
- Не забываем нажать "Сохранить"!
Типичная ошибка: Выбор неправильного модуля (например, Intel QuickSync на ARM). Это приведёт к ошибкам или падению производительности.
5.3. Настройка пользователей
В Панель управления -> Пользователи можно создать учётные записи для домочадцев, установить возрастные рейтинги, ограничения по битрейту.
Шаг 6: Тестирование и проверка результата
-
Доступность: На любом устройстве в сети (телефоне, планшете, Smart TV) устанавливаем клиент Jellyfin (есть в официальных магазинах приложений) или просто заходим через браузер. Вводим адрес сервера (
http://jellyfin.local:8096) и логин/пароль. Библиотеки должны появиться. -
Воспроизведение: Запускаем фильм. В веб-интерфейсе во время воспроизведения нажмите на иконку шестерёнки -> "Статистика воспроизведения" или "Playback Info". Смотрите:
- Способ воспроизведения: Должно быть "Direct Play" (идеально, контент передаётся как есть) или "Direct Stream" (перепаковка контейнера). Если видите "Transcode" — идёт перекодирование.
- Причина транскодирования: Может быть "кодек не поддерживается устройством" или "битрейт превышает установленный лимит". Для транскодирования смотрим, используется ли аппаратное ускорение (HW).
-
Нагрузка на Pi: Подключаемся по SSH и смотрим нагрузку:
bash htopЗапустите трансляцию на 2-3 устройства одновременно. Следите за загрузкой CPU. При активном аппаратном ускорении она должна быть относительно низкой (30-70%), а не 100%. -
Проверка внешнего доступа (опционально, но осторожно!): Если включили удалённый доступ, попробуйте зайти через мобильный интернет (отключив Wi-Fi на телефоне). Настоятельно рекомендую настроить HTTPS и сильные пароли перед открытием доступа в интернет.
Заключение и дальнейшие шаги
Поздравляю! У вас теперь есть собственный, полностью контролируемый медиасервер. Вы не зависите от подписок, рекламы и капризов стриминговых гигантов. Контент — ваш, приватность — сохранена.
Что можно улучшить:
- Резервное копирование: Настройте
rsyncдля периодического копирования метаданных Jellyfin (папка/var/lib/jellyfin) на другой диск. - Автоматизация загрузки контента: Связка Sonarr (сериалы), Radarr (фильмы) и qBittorrent (с VPN!) превратит ваш сервер в полностью автоматизированную медиафабрику. Но это тема для отдельной статьи.
- Повышение надёжности: Для серьёзной медиатеки рассмотрите использование RAID-массива из нескольких дисков, подключенных через USB-хаб с питанием.
- Альтернативные платформы: Если ваш проект перерос возможности Raspberry Pi, присмотритесь к более мощным одноплатникам, например, Orange Pi 5 или использованию Armbian на них. А для задач, где не нужно мощное транскодирование, отлично подойдёт бюджетный Orange Pi Zero 3.
Jellyfin на Raspberry Pi — это идеальный старт в мире DIY-медиа. Он доказывает, что создать удобную, технологичную домашнюю экосистему под силу каждому, у кого есть немного времени и желания разобраться. Приятного просмотра!
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.
Headless Raspberry Pi: Настройка без монитора через SSH — Полное руководство
Raspberry Pi NAS: Собираем домашнее сетевое хранилище на OpenMediaVault
Pi-hole на Raspberry Pi: Как я избавил всю домашнюю сеть от рекламы раз и навсегда
Raspberry Pi как домашний сервер: что на нём можно запустить в 2024
Ретро-игровая консоль на Raspberry Pi: Полное руководство по установке и настройке RetroPie
Raspberry Pi 4 vs Pi 5: стоит ли обновляться для DIY-проектов?