在 CentOS 上 Jellyfin 无法播放 的原因通常可以归为以下几类,你可以按顺序排查:
Jellyfin 默认以 jellyfin 用户运行,如果媒体目录没有权限就会无法读取。
检查:
ls -l /你的媒体目录
解决:
chown -R jellyfin:jellyfin /你的媒体目录
chmod -R 755 /你的媒体目录
如果是用户目录(如 /home/user/video):
usermod -aG user jellyfin
CentOS 默认开启 SELinux。
临时测试:
setenforce 0
如果能播放,说明是 SELinux 问题。
永久解决:
semanage fcontext -a -t httpd_sys_content_t "/你的媒体目录(/.*)?"
restorecon -Rv /你的媒体目录
或允许 Jellyfin:
setsebool -P httpd_can_read_user_content 1
firewall-cmd --add-port=8096/tcp --permanent
firewall-cmd --reload
如果客户端不支持原格式,Jellyfin 会尝试转码。
安装基础依赖:
yum install -y ffmpeg fontconfig
安装 RPM Fusion(推荐):
yum install -y epel-release
yum install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm
yum install -y ffmpeg
在 Jellyfin 后台:
控制台 → 播放 → 启用转码
例如:
解决:
查看具体错误:
journalctl -u jellyfin -f
或:
cat /var/log/jellyfin/jellyfin.log
| 现象 | 原因 |
|---|---|
| 能扫描但不能播 | 权限 / SELinux |
| 一直转圈 | 转码失败 |
| 黑屏 | 编码不支持 |
| 客户端报错 | 端口 / 防火墙 |
如果你愿意,可以把:
发出来,我可以帮你精确定位。