Медиасервер Jellyfin на сервере: частые ошибки и решения
Jellyfin поставили, а он огорчает: видео подвисает и буферизуется, интерфейс не открывается по HTTPS, свежие файлы не появляются в библиотеке, а поток обрывается на середине фильма. Эти ошибки медиасервера Jellyfin на сервере почти всегда сводятся к транскодингу, прокси или ресурсам. Разберём их по схеме «симптом — причина — решение», чтобы медиатека работала плавно.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →С чего начинать диагностику
Первый источник правды — логи Jellyfin и его панель. Логи показывают, что происходит при воспроизведении, в том числе включается ли транскодинг:
journalctl -u jellyfin -f
Отдельно загляните в раздел панели с активными сеансами воспроизведения — там видно, идёт ли поток напрямую (direct play) или через транскодинг, и в каком разрешении. Это ключевой признак: большинство проблем с плавностью связаны именно с транскодингом. Параллельно смотрите нагрузку сервера во время просмотра:
top -b -n1 | head -n5
df -h
Если во время воспроизведения процессор упирается в потолок — виноват транскодинг. Если проблема в доступе, а не в плавности, — смотрите прокси и порты. Держа перед глазами логи, тип воспроизведения и нагрузку, вы сразу поймёте, в какую сторону копать. Дальше — разбор частых симптомов.
Видео буферизуется и подвисает
Самая частая жалоба: фильм постоянно останавливается на подгрузку, особенно в высоком разрешении. В большинстве случаев причина — транскодинг, упирающийся в процессор. Когда устройство не поддерживает формат файла напрямую, сервер перекодирует поток на лету, и если ядер не хватает, он не успевает готовить видео вовремя.
Первым делом определите по панели, идёт ли транскодинг. Если да, есть два пути. Первый — устранить причину перекодирования: хранить медиа в форматах, которые клиенты воспроизводят напрямую, и не занижать битрейт без необходимости. Прямое воспроизведение почти не грузит процессор. Проверить поддержку можно, сравнив кодек файла и возможности устройства:
ffprobe -v error -show_entries stream=codec_name /srv/media/movies/film.mkv
Второй путь — дать серверу больше мощности. Программное перекодирование 1080p занимает несколько ядер, 4K — тем более, а несколько одновременных потоков суммируются. Если транскодинг вам действительно нужен, слабый VPS его не потянет физически, и это честный повод взять сервер с большим числом ядер. Никакая настройка не заставит четыре ядра перекодировать то, для чего нужно восемь.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSJellyfin недоступен по HTTPS
Симптом: локально или по IP с портом 8096 сервер открывается, а по домену через HTTPS — нет, или интерфейс грузится криво, не работают живые обновления. Причина обычно в конфигурации реверс-прокси. Jellyfin активно использует веб-сокеты для интерфейса, и если прокси их не пробрасывает, панель ведёт себя странно.
Убедитесь, что в конфиге прокси проброшены заголовки апгрейда соединения:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
Без Upgrade и Connection веб-сокеты не работают, и интерфейс подвисает. Вторая причина недоступности — сертификат не выпустился, потому что домен не указывает на сервер; проверьте dig +short media.example.com. Третья — забыли перезагрузить прокси после правки конфига. После исправления проверьте доступ:
nginx -t && systemctl reload nginx
curl -I https://media.example.com
Ещё одна тонкость: в настройках сети самого Jellyfin нужно указать известный публичный домен и базовый URL, если вы используете его, иначе некоторые ссылки в интерфейсе будут формироваться неправильно.
Новые файлы не появляются в библиотеке
Раздражающая ситуация: добавили фильмы в папку, а в интерфейсе их нет. Причин несколько. Первая — библиотека просто не пересканирована. Jellyfin сканирует по расписанию и при ручном запуске, но не мгновенно реагирует на каждый новый файл. Запустите сканирование библиотеки вручную из панели или дождитесь планового.
Вторая и очень частая причина — права доступа. Сервис Jellyfin работает под своим пользователем, и если у него нет прав на чтение каталога с медиа, файлы он не увидит. Проверьте и при необходимости выдайте доступ:
ls -la /srv/media/movies
chown -R jellyfin:jellyfin /srv/media
Третья причина — неверное именование файлов, из-за которого Jellyfin не может сопоставить их с метаданными и не добавляет корректно. Раскладывайте контент по понятной схеме: фильмы с годом в названии, сериалы с номерами сезонов и эпизодов. Тогда сканер надёжно распознаёт содержимое. Если файлы видны, но без обложек и описаний, — проблема именно в именовании или в недоступности источников метаданных.
Поток обрывается или не запускается удалённо
Симптом: локально всё работает, а при просмотре через интернет поток обрывается или вовсе не стартует. Первая причина — таймауты и буферы реверс-прокси. Длинные медиапотоки требуют, чтобы прокси не обрывал долгие соединения; при обрывах увеличьте таймауты проксирования для медиа-локаций.
Вторая причина — пропускная способность канала. Стриминг видео высокого разрешения требует стабильного канала и с вашей стороны, и со стороны сервера. Если канал сервера или ваш домашний интернет не тянут битрейт, поток будет рваться независимо от настроек. Проверьте, какой битрейт у файла и справляется ли соединение:
ffprobe -v error -show_entries format=bit_rate /srv/media/movies/film.mkv
Третья причина, связанная с удалённым доступом, — ограничение битрейта для внешних соединений в настройках Jellyfin, которое запускает транскодинг с понижением качества, а значит, и нагрузку на процессор. Здесь всё сходится к тому же узкому месту: либо канал, либо мощность под перекодирование. Для комфортного удалённого просмотра важны и хороший канал сервера, и достаточные ресурсы — особенно если зрителей несколько.
Профилактика и выбор сервера
Большинство проблем Jellyfin предотвращается двумя мерами: минимизацией транскодинга и правильной настройкой прокси. Храните медиа в широко поддерживаемых форматах, чтобы устройства играли их напрямую и не грузили процессор. Настраивайте реверс-прокси с проброшенными веб-сокетами, увеличенными таймаутами и валидным сертификатом. Выдавайте пользователю Jellyfin права на медиа-каталоги и раскладывайте файлы по понятной схеме именования.
Но честный вывод такой: значительная часть жалоб на Jellyfin — это упор в ресурсы. Транскодинг видео тяжёл, стриминг требует канала, а медиатека — диска. Если вы регулярно перекодируете потоки или обслуживаете нескольких зрителей одновременно, слабый сервер физически не справится, сколько ни настраивай. В этом случае надёжнее взять VPS с запасом ядер, быстрым и вместительным диском и хорошим каналом. У MAATRIX такие серверы доступны в локациях RU, US и UK с оплатой из России картой или криптой, и подобрать площадку ближе к зрителям — тоже способ уменьшить обрывы и задержки.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему видео в Jellyfin постоянно буферизуется?
Чаще всего из-за транскодинга, упирающегося в процессор; храните медиа в форматах для прямого воспроизведения или берите сервер с большим числом ядер.
Почему интерфейс Jellyfin криво работает по HTTPS?
Реверс-прокси не пробрасывает веб-сокеты; добавьте заголовки Upgrade и Connection и перезагрузите прокси.
Почему новые файлы не появляются в библиотеке?
Не пересканирована библиотека, у пользователя jellyfin нет прав на каталог или неверное именование файлов; проверьте права и запустите сканирование.
Почему поток обрывается при удалённом просмотре?
Причина в таймаутах прокси, пропускной способности канала или ограничении битрейта, запускающем транскодинг; проверьте канал и ресурсы сервера.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.