Emby на сервере: частые ошибки и решения
Emby — удобная альтернатива Plex и Jellyfin для домашней коллекции фильмов и сериалов, но на сервере она спотыкается о те же грабли: снаружи «сервер недоступен», поток замирает на буферизации, а после переезда в Docker половина фильмов вдруг пропадает из библиотеки. Ошибки Emby на сервере повторяются от установки к установке и решаются одинаково — по схеме «симптом → причина → команда». Разберём самые частые.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →С чего начинать диагностику
Прежде чем что-то чинить, посмотрите, что сервер вообще говорит о себе. Если Emby установлен как systemd-сервис из deb/rpm-пакета:
systemctl status emby-server
journalctl -u emby-server -f
Если Emby работает в Docker:
docker ps --filter name=emby
docker logs -f emby --tail 100
Отдельно загляните в файловый лог — он подробнее системного журнала и часто содержит точную причину сбоя транскодинга или сканирования:
tail -n 100 /var/lib/emby/logs/embyserver.txt
В самом дашборде Emby (Панель управления → Активность и Сейчас играет) видно, идёт ли транскодирование, для какого клиента и почему — это первый источник правды при жалобах на буферизацию. Параллельно посмотрите нагрузку в момент воспроизведения:
top -b -n1 | head -n5
Если ЦП забит под завязку именно при просмотре — проблема в транскодинге. Если сервер просто не открывается снаружи — идите в раздел про удалённый доступ. Логи, дашборд и нагрузка вместе почти всегда сразу указывают на категорию проблемы.
Не открывается удалённый доступ к серверу
Классика для VPS: локально Emby отвечает на localhost:8096, а с телефона или смарт-ТВ из интернета — тишина. Домашний роутер обычно сам пробрасывает нужный порт через UPnP, но у сервера с публичным IP такой магии нет: порт нужно открыть руками, причём в двух местах — в системном фаерволе и в облачном фаерволе провайдера.
Emby по умолчанию слушает 8096 (HTTP) и 8920 (HTTPS). Откройте порты и проверьте, что процесс действительно их слушает:
ufw allow 8096/tcp
ufw allow 8920/tcp
ss -tlnp | grep -E '8096|8920'
Если провайдер даёт отдельный облачный фаервол (группу безопасности) поверх системного — правило нужно продублировать и там, иначе локально всё открыто, а снаружи порт всё равно закрыт. Дальше зайдите в Панель управления → Сеть и убедитесь, что публичный порт указан верно и не подменяется реверс-прокси без пробрасывания WebSocket — Emby активно использует WebSocket для синхронизации плеера, и прокси без его поддержки ломает удалённые сеансы, даже когда HTTP-запросы вроде бы проходят. Если перед сервером стоит nginx, добавьте заголовки Upgrade и Connection "upgrade" в конфиг локации.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверВидео тормозит и буферизуется при просмотре
Если удалённый доступ работает, но поток постоянно встаёт на подгрузку — почти всегда виноват транскодинг, упирающийся в процессор. Emby перекодирует видео на лету, когда клиент не поддерживает исходный формат, урезан лимит битрейта в настройках клиента, или у файла контейнер, с которым клиент не дружит напрямую (direct play).
Проверьте в Панель управления → Сейчас играет, идёт ли транскодирование и по какой причине — Emby честно пишет её рядом с сеансом (например, «неподдерживаемый видеокодек» или «требуется субтитр как overlay»). Кодек файла можно свериться и вручную:
ffprobe -v error -show_entries stream=codec_name,codec_type /srv/media/movies/film.mkv
Дальше два пути. Первый — убрать саму причину: хранить медиа в широко поддерживаемых форматах (H.264/AAC в MP4 или MKV обычно проигрываются напрямую большинством клиентов), не занижать без нужды лимит битрейта в настройках приложения. Второй — дать серверу мощность под программный транскодинг, если перекодирование неизбежно (старые файлы в экзотических кодеках, несколько одновременных зрителей). Учтите отдельно: аппаратное ускорение через Intel Quick Sync, NVENC или VideoToolbox в Emby на части сборок доступно только в составе подписки Emby Premiere — уточните это в Панель управления → Воспроизведение перед тем как рассчитывать разгрузить процессор аппаратно. Без аппаратного ускорения программный транскодинг 1080p занимает несколько ядер, а несколько зрителей суммируют нагрузку линейно — тут no настройка не заменит запас ядер.
В Docker: библиотека не видна или файлы битые после перезапуска
Отдельный источник боли — контейнеризация. Если Emby в Docker после пересоздания контейнера вдруг «теряет» часть медиатеки или показывает битые файлы — почти всегда дело в путях монтирования. Emby хранит в базе именно тот путь, что видит *внутри контейнера*, и если при пересоздании вы поменяли точку монтирования снаружи, сервер продолжает искать файлы по старому внутреннему пути.
Держите пути стабильными и одинаковыми при каждом запуске:
docker run -d --name emby \
-p 8096:8096 -p 8920:8920 \
-e PUID=1000 -e PGID=1000 -e TZ=Europe/Moscow \
-v /srv/emby/config:/config \
-v /srv/media/movies:/media/movies \
-v /srv/media/tvshows:/media/tvshows \
--restart unless-stopped \
emby/embyserver
Второй частый симптом — контейнер запущен, но библиотека пустая или файлы серые с иконкой «недоступно». Обычно это права: процесс внутри контейнера работает от PUID/PGID, и если эти ID не совпадают с владельцем файлов на хосте, Emby физически не может их прочитать:
ls -la /srv/media/movies
chown -R 1000:1000 /srv/media
Если контейнер вообще не поднимается, проверьте, не занят ли порт другим сервисом — это одна из самых частых причин падения при старте, разобрана отдельно в статье про непробрасываемые порты в Docker.
Файлы добавлены, но не появляются в библиотеке или без обложек
Симптом знаком всем медиасерверам: закинули файлы на диск, а в приложении их нет либо они есть, но без постеров, описаний и рейтингов. Первая причина — как раз права доступа, разобранные выше: сервис не видит каталог физически. Вторая — библиотека ещё не пересканирована. Emby следит за изменениями в реальном времени (real-time monitoring), но эта функция ненадёжна на сетевых шарах (NFS, SMB, удалённые точки монтирования) — там изменения нужно подхватывать вручную или по расписанию:
Панель управления → Библиотеки → Сканировать все библиотеки
Третья причина, когда файлы видны, но метаданных нет, — неверное именование. Emby сопоставляет файлы с онлайн-базами по названию и структуре папок, поэтому фильмы называйте с годом в скобках (Фильм (2023).mkv), а сериалы раскладывайте по схеме Название/Season 01/Название - S01E01.mkv. При аккуратной структуре агент метаданных находит совпадение почти всегда; при хаотичных именах — либо не находит ничего, либо путает контент между собой. Если правильное совпадение всё равно не находится (редкий тайтл, региональное название), можно вручную указать ID провайдера метаданных через контекстное меню элемента библиотеки — это надёжнее, чем переименовывать файлы в попытках угадать формат.
Сервер падает или не запускается после обновления
Реже, но болезненнее: после обновления пакета или образа Emby сервис не стартует или падает через несколько секунд после запуска. Первым делом смотрите журнал — там обычно прямо указана строка с ошибкой:
journalctl -u emby-server -n 50 --no-pager
Частая причина — повреждённая база библиотеки после неудачного завершения предыдущего процесса (обрыв питания, docker stop без ожидания, OOM-killer). Emby хранит рабочие данные в /var/lib/emby (для пакетной установки) или в смонтированном /config (для Docker); переименуйте кэш и дайте серверу пересобрать его заново:
systemctl stop emby-server
mv /var/lib/emby/cache /var/lib/emby/cache.bak
systemctl start emby-server
Если проблема появилась сразу после апдейта версии — откатите пакет или зафиксируйте конкретный тег образа в Docker вместо latest, это убережёт от повторного попадания на нестабильный релиз при следующем docker pull. И держите резервную копию каталога /config или /var/lib/emby отдельно от диска с медиатекой — сама база восстанавливается из бэкапа за минуты, а вот пересборка метаданных для тысяч файлов с нуля может занять часы.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США, Франция и РФ. Оплата картой РФ и по СБП.
Арендовать серверНужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.
Частые вопросы
Почему Emby не открывается снаружи, хотя локально работает?
На VPS автоматический проброс портов через UPnP не действует. Откройте 8096/8920 в системном фаерволе и в облачном фаерволе провайдера, проверьте ss -tlnp, и если перед сервером стоит реверс-прокси — убедитесь, что он пробрасывает WebSocket-заголовки.
Почему видео буферизуется даже на быстром интернете?
Обычно дело не в канале, а в транскодинге, упирающемся в процессор. Проверьте в «Сейчас играет», идёт ли перекодирование и по какой причине, и по возможности храните медиа в форматах для прямого воспроизведения.
Доступно ли аппаратное ускорение транскодинга бесплатно?
Зависит от сборки и лицензии: часть возможностей Quick Sync/NVENC/VideoToolbox в Emby идёт в составе платной подписки Premiere — проверьте это в разделе «Воспроизведение» дашборда, прежде чем рассчитывать на разгрузку CPU.
Почему в Docker после пересоздания контейнера пропадает часть библиотеки?
Скорее всего, изменились пути монтирования тома — Emby хранит внутренний путь контейнера в базе. Держите точки монтирования постоянными между перезапусками.
Почему новые файлы не появляются в библиотеке?
Либо нет прав на чтение каталога у пользователя сервиса (или PUID/PGID в Docker), либо папка на сетевой шаре, где реал-тайм мониторинг ненадёжен — запустите сканирование библиотеки вручную.
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →