MAATRIX / Блог / Emby на Ubuntu 24.04: пошаговая установка

Emby на Ubuntu 24.04: пошаговая установка

MAATRIX

Домашняя коллекция фильмов и сериалов быстро превращается в свалку файлов на разных дисках без нормального каталога и удобного плеера. Emby решает эту проблему: превращает папку с видео в полноценный стриминговый сервис с обложками, субтитрами, профилями для каждого домочадца и приложениями под телевизор, телефон и браузер. Ниже — установка Emby Server на Ubuntu 24.04 с нуля: пакет, firewall, библиотеки, аппаратное ускорение и удалённый доступ, с честными нюансами по каждому шагу.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Чем Emby отличается от Plex и Jellyfin

Все три медиасервера решают одну задачу — раздают коллекцию по сети с красивым интерфейсом и метаданными, — но устроены по-разному.

Jellyfin — полностью open source форк старого Emby, без облачной привязки и без платных функций вообще: аппаратный транскодинг тоже доступен из коробки. Plex делает ставку на удобство: авторизация и обнаружение сервера идут через облачный аккаунт, а часть возможностей, включая аппаратный транскодинг, закрыта подпиской Plex Pass.

Emby — промежуточный вариант. Сервер, локальные аккаунты, воспроизведение и метаданные работают без интернета и без обязательной регистрации. Но у Emby тоже есть платная подписка Emby Premiere, за которой спрятано аппаратное ускорение и часть мобильных функций — по модели монетизации Emby ближе к Plex, а по независимости от облака ближе к Jellyfin.

На практике выбор часто решает экосистема клиентов: у Emby давно обкатанные приложения под Android TV, Apple TV, Kodi и smart-платформы и стабильный DLNA. Если пробовали Jellyfin и не хватило полировки интерфейса под конкретное устройство — Emby стоит попробовать; если принципиально не хотите платить и аппаратный транскодинг не нужен — Jellyfin проще. Логика выбора подробнее разобрана в статье Jellyfin или Plex: что выбрать для сервера.

Какой сервер нужен под Emby

Сама раздача каталога и метаданных — лёгкая задача: 2 ядра и 2 ГБ RAM хватает даже на библиотеку в несколько тысяч файлов, узкое место здесь скорее диск и сеть, чем процессор.

Ключевой ресурс — дисковое место под саму медиатеку, и его стоит закладывать с запасом: коллекция почти всегда растёт быстрее, чем кажется на старте. Ориентировочно фильм в 1080p занимает от 3 до 8 ГБ в зависимости от битрейта и длительности, сезон сериала — от 10 до 30 ГБ; 4K-контент кратно тяжелее. Точные цифры зависят от источников и кодека, поэтому берите их как ориентир для планирования, а не как норматив.

Второй по важности параметр — процессор, если планируете транскодинг: перекодирование видео на лету под устройство или узкий канал. Программное перекодирование одного 1080p-потока способно занять несколько ядер, а несколько одновременных зрителей быстро упрутся в CPU — здесь и пригождается аппаратное ускорение, о котором ниже.

Практический ориентир для выбора конфигурации:

СценарийCPURAMДиск
Личный просмотр, прямое воспроизведение2 ядра2 ГБот 500 ГБ
Семья, 2-3 одновременных потока4 ядра4 ГБ1-2 ТБ
Много зрителей + транскодинг без аппаратного ускорения6-8 ядер8 ГБ2 ТБ и больше
Транскодинг с аппаратным ускорением (нужен Premiere)2-4 ядра + встроенное видео с QuickSync4-8 ГБпо объёму библиотеки

Если сервер будет ещё и хранилищем для скачивания новых файлов через торрент-клиент или rclone, закладывайте дополнительный запас по диску и сети — подробности в статье про аренду VPS для медиахостинга.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Подготовка Ubuntu 24.04

Начните с обновления системы и установки базовых зависимостей:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget gnupg apt-transport-https ca-certificates

Если на сервере уже стоит firewall ufw, откройте порты, которые понадобятся Emby: 8096 — основной веб-интерфейс по HTTP, 8920 — HTTPS (если включите SSL в самом Emby), а также UDP 1900 и 7359 для автообнаружения сервера клиентами в локальной сети.

sudo ufw allow 8096/tcp
sudo ufw allow 8920/tcp
sudo ufw allow 1900/udp
sudo ufw allow 7359/udp
sudo ufw status

Если firewall ещё не настроен вовсе, сначала пройдите базовую настройку — как это сделать с нуля, описано в статье настройка firewall на Ubuntu 24.04.

Заранее решите, где будет физически лежать медиатека. Если это отдельный диск или сетевое хранилище, смонтируйте его и убедитесь, что путь примонтирован постоянно через /etc/fstab — иначе после перезагрузки Emby не найдёт файлы, а библиотека покажется пустой.

Установка Emby Server

Официальный способ поставить Emby на Debian/Ubuntu — .deb-пакет с GitHub-релизов проекта. Вместо конкретного номера версии, который неизбежно устареет, скачаем актуальный релиз через GitHub API — так вы всегда получаете свежий пакет:

cd /tmp
DEB_URL=$(curl -s https://api.github.com/repos/MediaBrowser/Emby.Releases/releases/latest \
  | grep "browser_download_url" \
  | grep "_amd64.deb" \
  | grep "emby-server-deb" \
  | cut -d '"' -f 4)
echo "$DEB_URL"
wget -O emby-server.deb "$DEB_URL"

Проверьте, что DEB_URL не пустая и ведёт на .deb-файл — GitHub иногда меняет формат имени ассетов. Если скрипт ничего не нашёл, зайдите на страницу релизов вручную и скопируйте ссылку на пакет emby-server-deb_*_amd64.deb.

Установите пакет через apt — так автоматически подтянутся зависимости:

sudo apt install -y ./emby-server.deb

Пакет создаёт системного пользователя emby, каталоги для конфигурации в /var/lib/emby и /etc/emby-server, а также systemd-юнит. Включите автозапуск и стартуйте сервис:

sudo systemctl enable --now emby-server
sudo systemctl status emby-server

Если статус не active (running), посмотрите логи:

sudo journalctl -u emby-server -n 50 --no-pager

Частая причина сбоя на этом этапе — занятый порт 8096 другим процессом или недостаточно прав на каталог с конфигурацией после ручных манипуляций с правами.

Первый запуск и настройка библиотек

Откройте в браузере http://IP-адрес-сервера:8096 — запустится мастер первоначальной настройки. Он последовательно попросит:

  • выбрать язык интерфейса;
  • создать первого пользователя-администратора (логин и пароль хранятся локально на сервере, не в облаке);
  • указать папки с медиатекой и их тип — фильмы, сериалы, музыка, домашние видео и так далее;
  • при желании подключить аккаунт Emby Connect для удалённого доступа и мобильных приложений (шаг можно пропустить и настроить позже).

Для каждой библиотеки Emby попросит указать путь на файловой системе сервера. Если медиатека лежит на смонтированном диске, путь должен указывать именно туда — например /mnt/movies. Убедитесь, что пользователь emby, от имени которого работает сервис, имеет права на чтение (и на запись, если хотите, чтобы Emby создавал файлы метаданных рядом с видео):

sudo chown -R emby:emby /mnt/movies /mnt/tv

После добавления библиотек Emby запускает первое сканирование — это может занять от нескольких минут до пары часов в зависимости от размера коллекции, скорости диска и того, включён ли поиск метаданных в интернете для каждого файла. Прогресс сканирования виден в разделе Dashboard → Scheduled Tasks.

Структура файлов и папок сильно влияет на качество автоматического распознавания. Для фильмов ожидается что-то вроде Movies/Inception (2010)/Inception.2010.1080p.mkv, для сериалов — Shows/Breaking Bad/Season 01/Breaking Bad - S01E01.mkv. Если Emby не находит метаданные или путает эпизоды, в первую очередь проверьте именно именование файлов.

Транскодинг и аппаратное ускорение

Прямое воспроизведение (direct play) — когда клиент понимает исходный формат без перекодирования — самый лёгкий для сервера режим, и им стоит пользоваться, где только можно. Транскодинг нужен, когда устройство не поддерживает кодек или разрешение файла, либо канал до клиента слишком узкий для битрейта оригинала.

Программный транскодинг средствами CPU работает из коробки и без подписки, но заметно грузит процессор — на слабом сервере поток в 4K может не успевать перекодироваться в реальном времени.

Аппаратное ускорение через встроенное видеоядро Intel (Quick Sync, VAAPI на Linux) снимает основную нагрузку с CPU. Честный момент: в Emby, как и в Plex, полноценный аппаратный транскодинг доступен только с подпиской Emby Premiere — бесплатная версия его ограничивает. Прежде чем брать сервер с расчётом на аппаратное ускорение, проверьте актуальные условия лицензии на сайте Emby — политика периодически меняется.

Если подписка есть и сервер физический (или облачный с проброшенным GPU/iGPU), для включения ускорения на Ubuntu понадобится драйвер VAAPI и доступ пользователя emby к устройству /dev/dri:

sudo apt install -y intel-media-va-driver-non-free vainfo
sudo usermod -aG render,video emby
vainfo

Команда vainfo должна вывести список поддерживаемых профилей кодирования/декодирования — если она падает с ошибкой доступа к устройству, проверьте, что /dev/dri вообще существует (для этого серверу нужно физическое или проброшенное видеоядро — на большинстве базовых VPS его просто нет). После установки драйвера включите аппаратное ускорение в Dashboard → Playback → Transcoding и выберите Intel Quick Sync в качестве метода.

Удалённый доступ, HTTPS и проброс портов

Локально в своей сети Emby работает сразу после установки — достаточно порта 8096. Для доступа снаружи (с работы, в поездке) есть два принципиально разных пути.

Первый — Emby Connect, встроенный сервис для удалённого доступа через облако Emby. Он упрощает подключение с мобильных приложений и решает проблему динамического IP, но заводит зависимость от внешнего сервиса и учётной записи.

Второй — прямой доступ по вашему IP или домену без посредников. На VPS или выделенном сервере с публичным IP это делается пробросом порта 8096 (и 8920 для HTTPS) на firewall и, желательно, обратным прокси с TLS-сертификатом перед Emby, а не голым портом наружу:

server {
    listen 443 ssl http2;
    server_name media.example.com;

    ssl_certificate     /etc/letsencrypt/live/media.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/media.example.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8096;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}

Строка proxy_buffering off важна для видео — без неё nginx может буферизовать поток и добавлять задержку при перемотке. Если ещё не настраивали связку nginx и Let's Encrypt на сервере, шаги подробно описаны в статье Let's Encrypt SSL на VPS.

Для сервера дома за роутером без публичного IP проброс портов делается на самом роутере (обычно раздел Port Forwarding / Виртуальные серверы), и здесь возникает та же проблема динамического IP — решается либо DDNS-сервисом, либо арендой сервера с постоянным публичным адресом, если хочется стабильности без домашней инфраструктуры.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.

Арендовать сервер

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.

Частые вопросы

Emby бесплатный?

Сервер и базовое воспроизведение — да, без ограничений по времени. Часть функций (в первую очередь аппаратный транскодинг и некоторые мобильные возможности) требует подписки Emby Premiere.

Можно перенести библиотеку с домашнего NAS на VPS?

Да, но учтите объём заливки: перенос многотерабайтной коллекции по обычному каналу займёт часы или дни. Для VPS с ограниченным трафиком заранее прикиньте, укладывается ли перенос в тариф, либо переносите порциями.

Чем открытый порт 8096 наружу опасен без прокси?

Сам по себе Emby регулярно получает обновления безопасности, но голый HTTP без TLS означает, что логин и трафик идут в открытом виде. Практический минимум — обратный прокси с HTTPS перед сервисом, как в разделе про удалённый доступ выше.

Emby тормозит при просмотре с телефона в дороге, а дома всё гладко.

Скорее всего, включается транскодинг из-за узкого канала или неподдерживаемого на телефоне кодека — проверьте в Dashboard → Activity, какой режим воспроизведения используется в моменте, и при нехватке CPU для транскодинга это первый кандидат на апгрейд конфигурации.

Нужен ли выделенный сервер или хватит VPS?

Для личной библиотеки и пары зрителей обычного VPS достаточно с запасом. Выделенный сервер имеет смысл, если библиотека большая, зрителей много одновременно или транскодинг идёт постоянно — сравнение конфигураций разобрано в статье про сервер для медиахостинга.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →