侧边栏壁纸
  • 累计撰写 66 篇文章
  • 累计创建 47 个标签
  • 累计收到 111 条评论

目 录CONTENT

文章目录

jellyfin的详细安装及优化配置(IPV6、缓存、字体、插件推荐)

草莓牛奶
2024-04-14 / 0 评论 / 0 点赞 / 165 阅读 / 1,842 字 / 正在检测是否收录...
温馨提示:
「博客文章out of date 会及时更新,无特殊说明仍然有效,欢迎指正内容中的错误」

目前常用的jellyfin有三种不同的docker镜像nyanmisaka/jellyfinlinuxserver/jellyfinjellyfin/jellyfin,这里推荐安装nyanmisaka或者linuxserver的镜像

特性 / 镜像 nyanmisaka/jellyfin linuxserver/jellyfin jellyfin/jellyfin
维护者 Nyanmisaka (Jellyfin项目贡献者) LinuxServer.io(社区团队) 官方Jellyfin团队
特殊功能 针对特定硬件的优化,如Intel Arc GPU支持 稳定性、易用性、社区支持,优化层次 最新Jellyfin版本和功能
优化与兼容性 硬件加速和高级视频流处理功能 广泛的系统兼容性,一般性能优化 直接从源代码构建,标准优化
目标用户 需要高级硬件支持和视频流处理优化的用户 寻求稳定可靠设置的用户 想要最新功能和官方支持的用户
更新与维护 定期更新,注重特定硬件的支持和视频处理功能 定期更新,重视稳定性和社区需求 频繁更新,与官方版本同步
社区与支持 活跃于Jellyfin社区,贡献了多个重要功能 广泛的社区支持和文档 官方支持渠道,丰富的文档

一、jellyfin安装

关于以下以 linuxserver/jellyfin的镜像为例,展示jellyfin的详细安装及优化配置(IPV6、缓存、插件推荐),关于核显直通/硬件转码的相关内容详见PVE下(LXC)核显直通并开启Jellyfin硬件解码(n5105为例)

docker run -d \
  --name jellyfin \
  --network=host \
  -e PUID=0 \
  -e PGID=0 \
  -e TZ="Asia/Shanghai" \
  -e DOCKER_MODS="linuxserver/mods:jellyfin-opencl-intel" \
  --mount type=tmpfs,destination=/config/data/transcodes \
  --mount type=tmpfs,destination=/config/cache \
  --device /dev/dri:/dev/dri \
  -v /path/to/config:/config \
  -v /path/to/data:/data \
  --restart=unless-stopped \
  linuxserver/jellyfin:latest
  1. docker run -d: 以分离模式运行 Docker 容器,即在后台运行。
  2. --name jellyfin: 为容器指定名称“jellyfin”。
  3. --network=host: 使用宿主机的网络,容器将直接使用宿主机的网络配置。
  4. -e PUID=0-e PGID=0: 设置环境变量 PUIDPGID0,对应于宿主机的 root 用户,通常用于文件权限管理。
  5. -e TZ="Asia/Shanghai": 设置容器的时区为“亚洲/上海”。
  6. -e DOCKER_MODS="linuxserver/mods:jellyfin-opencl-intel": 应用 Docker 模块,这里使用的是 LinuxServer 提供的 jellyfin-opencl-intel,主要是为了在 Jellyfin 中启用 Intel GPU 支持(nyanmisaka的镜像无需设置)。
  7. --mount type=tmpfs,destination=/config/data/transcodes--mount type=tmpfs,destination=/config/cache: 将 tmpfs (一种基于内存的文件系统)挂载到容器的特定目录,用于存放转码和缓存数据,提高处理性能。
  8. --device /dev/dri:/dev/dri: 将宿主机的 /dev/dri 设备映射到容器中,允许容器访问 GPU 硬件,用于视频编解码加速。
  9. -v /path/to/config:/config-v /path/to/data:/data: 将宿主机的目录挂载到容器内,用于持久化存储配置和媒体数据。
  10. --restart=unless-stopped: 设置容器除非被手动停止,否则总是自动重启。
  11. linuxserver/jellyfin:latest: 指定使用 LinuxServer 维护的最新版 Jellyfin 镜像。

注意:

  • --mount type=tmpfs只能在命令行中指定,使用portainer等图形化界面基本无法实现!关于tmpfs挂载的更详细内容,可以详见Docker 基础知识 - 使用 tmpfs 挂载(tmpfs mounts)管理应用程序数据
  • 将cache和transcodes挂载到内存是由于在转码过程中,jellyfin会频繁对目录进行读写(固态硬盘影响寿命;机械硬盘影响性能),且文件不定时清理会占用极大的存储空间。
  • 以host网络模式启动是为了在无需额外设置的情况下,保证jellyfin能访问IPV6网站

二、jellyfin插件安装

jellyfin的插件并不是全部安装(越多越好),由于中文环境的限制,很多插件是不支持中文的,安装后反而会造成刮削(scrapy)大量的非中文内容。

(TMDb是官方存储库中唯一一个支持中文的)

#Jellyfin Stable
https://repo.jellyfin.org/releases/plugin/manifest-stable.json

#metashark
https://github.com/cxfksword/jellyfin-plugin-metashark/releases/download/manifest/manifest.json

#MeiamSubtitles
https://github.com/91270/MeiamSubtitles.Release/raw/main/Plugin/manifest-stable.json

#bangumi
https://jellyfin-plugin-bangumi.pages.dev/repository.json

#metatube
https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json

image-20240414193016309

  1. Metashark 插件:主要从豆瓣获取电影信息,并可以通过TheMovieDb补全缺失的剧集数据。此插件支持从豆瓣和TMDB获取元数据,特别兼容动画的命名格式。
  2. MeiamSubtitles 插件:中文字幕插件,支持自动从迅雷影音、射手网等源下载并精确匹配字幕。
  3. Bangumi 数据源插件:专为番剧爱好者设计,从中文源抓取番剧相关的信息及图片,增强Jellyfin服务器对番剧类媒体的支持。
  4. Metatube 插件:主要提供从不同来源抓取电影和电视剧的元数据和图片。该插件通过其后端服务器(metatube-server)实现数据的抓取和存储。

三、关于IPV6

jellyfin的IPV6需要手动在高级-联网-IP协议中打开

image-20240414194142308

可以通过以下命令验证IPV6

#进入容器内部
docker exec -it jellyfin /bin/bash
#验证IPV6连通性
curl 6.ipw.cn

四、关于字体显示□□

image

-e DOCKER_MODS="linuxserver/mods:universal-package-install"
-e INSTALL_PACKAGES=fonts-noto-cjk-extra

详见Integrate CJK fonts · Issue #161

五、关于扫描媒体库

1.媒体库扫描缓慢/UI界面卡顿

目前,Jellyfin 在进行大规模媒体库扫描时仍然存在性能问题,尤其是在首次扫描时。这一问题主要源于扫描过程中的数据库争用和资源管理不当,导致I/O等待时间过长,严重时甚至会影响到整个服务器的响应速度。

据最新的讨论显示,虽然开发团队已经在一些测试版中尝试了修复措施,但到目前为止,这些问题并未完全解决。用户反映即使在新版本(如10.8.9和10.8.13)中,当库容量很大时,扫描仍旧非常缓慢,有时需要几天时间才能完成,并且在扫描期间Jellyfin几乎无法使用。

开发团队已经意识到这一问题,并计划在未来的更新中继续对这些性能问题进行优化。但具体的修复时间和解决方案尚未明确公布。因此,如果在使用Jellyfin时遇到了相似的问题,建议关注其官方论坛和GitHub问题跟踪页面,以获取最新的更新和可能的解决方案。

对于这类问题,可以查看以下讨论和反馈页面:

Very slow initial Library scan · Issue #2600

Slow performances when scanning large amount of files inside a directory · Issue #6906

2.实时监控无效

详见两种方法解决linux下NFS等网络挂载文件变动不触发inotify,导致jellyfin等无法实时监控

0

评论区