当前位置: 首页 > news >正文

个人总结 docker搭建家庭媒体库Jellyfin

Jellyfin

Jellyfin是一个开源媒体服务器项目,旨在让用户自行搭建并管理音视频流媒体库。它提供与商业媒体服务器(如PlexEmby)类似的功能,但完全免费且无专有组件或遥测功能。

Jellyfin允许用户在自有服务器上集中管理电影、电视剧、音乐和照片,并通过网页或客户端应用流式播放。其服务端可运行于WindowsLinuxmacOSDocker等环境,客户端涵盖网页端、AndroidiOS、智能电视和Kodi插件等。

把一堆电影、电视剧、动漫整理成一个统一的家庭媒体库:

  • 局域网内通过浏览器、电视、平板、手机访问
  • 自动显示海报、简介、演员、季集信息
  • 记录观看进度
  • 多设备同步播放位置
  • 支持Docker部署,方便备份和迁移
  • 支持Rockchip硬件解码/转码
7.1、创建项目目录

建议把项目固定成下面这种结构:

/mnt/nvme/my-project/project-docker/ ├── project-jellyfin/ ├── cache# 缓存文件├── config# 配置文件├── docker-compose.yml └── README.md#可选

另外,媒体文件放在NAS

/mnt/nas/my-project/project-docker/ ├── project-jellyfin/ └── media# 媒体库(视频、音乐、图片等)├── movies/ ├── tv/ ├── anime/ └── unsorted/

各目录作用

  • docker-compose.ymlDocker启动配置文件。

  • config/Jellyfin的核心配置目录。

    里面会保存:

    • 服务器设置
    • 用户信息
    • 媒体库配置
    • 插件信息
    • 日志

    这是最重要的目录之一。

  • cache/:缓存目录。
    里面主要是缩略图、临时数据、转码缓存等。
    可以清理,但不建议随便删除。

  • media/:真正的视频资源目录。
    这是你电影、动漫、电视剧的存放位置。

准备目录:

mkdir-p/mnt/nvme/my-project/project-docker/project-jellyfin/configmkdir-p/mnt/nvme/my-project/project-docker/project-jellyfin/cachemkdir-p/mnt/nas/docker-data/project-jellyfin/media

设置权限:

sudochown-R$USER:$USER/mnt/nas/my-project/project-docker/project-jellyfinsudochown-R$USER:$USER/mnt/nvme/my-project/project-docker/project-jellyfin
7.2、创建容器
7.2.1、docker run
dockerrun-d\--namejellyfin\-p8096:8096\-p8920:8920\-v/mnt/nvme/my-project/project-docker/project-jellyfin/config:/config\-v/mnt/nvme/my-project/project-docker/project-jellyfin/cache:/cache\-v/mnt/nvme/my-project/project-docker/project-jellyfin/media:/media\--restartunless-stopped\jellyfin/jellyfin:latest

解释一下参数:

参数含义
-d后台运行
--name jellyfin容器名字
-p 8096:8096HTTP访问端口
-p 8920:8920HTTPS端口(可选)
-v /宿主机路径:/容器路径映射目录
--restart unless-stopped容器自动重启策略
jellyfin/jellyfin:latestjellyfin的官方Docker镜像
nyanmisaka/jellyfin:latest-rockchip社区针对于硬件加速适配的Docker镜像

这时容器已经启动,但还没有配置账号和媒体库。

7.2.2、Compose

核心配置如下:

services:jellyfin:container_name:jellyfinimage:nyanmisaka/jellyfin:latest-rockchipports:-"8096:8096"-"8920:8920"volumes:-/mnt/nvme/my-project/project-docker/project-jellyfin/config:/config-/mnt/nvme/my-project/project-docker/project-jellyfin/cache:/cache-/mnt/nas/docker-data/project-jellyfin/media:/mediadevices:-/dev/dri:/dev/dri-/dev/dma_heap:/dev/dma_heap-/dev/mpp_service:/dev/mpp_service-/dev/rga:/dev/rga-/dev/mali0:/dev/mali0security_opt:-systempaths=unconfined-apparmor=unconfinedenvironment:-TZ=Asia/Shanghai-PUID=1001-PGID=1001restart:unless-stopped

参数详细讲解:

  • container_name: jellyfin:

    容器名称,方便后续用docker logs jellyfindocker exec -it jellyfin bash这类命令。

  • image: nyanmisaka/jellyfin:latest-rockchip

    使用适配Rockchip平台的Jellyfin镜像。比通用镜像更适合RK3588 / RK356x等平台。

  • ports

    -"8096:8096"-"8920:8920"
    • 8096:HTTP 访问端口
    • 8920:HTTPS 访问端口

    一般首次部署只会用到8096

  • volumes

    -/mnt/nvme/.../config:/config-/mnt/nvme/.../cache:/cache-/mnt/nas/.../media:/media

    把宿主机目录映射到容器内部:

    • 宿主机配置目录 → 容器/config
    • 宿主机缓存目录 → 容器/cache
    • 宿主机媒体目录 → 容器/media

    容器内看到的/media,其实对应宿主机上的NAS媒体目录。

  • devices

    -/dev/dri:/dev/dri-/dev/dma_heap:/dev/dma_heap-/dev/mpp_service:/dev/mpp_service-/dev/rga:/dev/rga-/dev/mali0:/dev/mali0

    这些是Rockchip硬件加速用到的设备节点:

    • /dev/dri:图形/渲染接口
    • /dev/dma_heapDMA内存分配
    • /dev/mpp_serviceRockchip MPP视频编解码
    • /dev/rga:图像缩放/格式转换
    • /dev/mali0Mali GPUHDR色调映射OpenCL相关)
  • security_opt

    -systempaths=unconfined-apparmor=unconfined

    这是为了避免Docker安全限制阻碍硬件访问。在Rockchip硬件加速场景中通常需要加上

  • environment

    -TZ=Asia/Shanghai-PUID=1001-PGID=1001
    • TZ=Asia/Shanghai:设置时区
    • PUID=1001/PGID=1001:让容器里创建的文件尽量与宿主机用户权限一致
  • restart: unless-stopped

    当系统重启后,Docker会自动重新启动这个容器;除非你手动停止过它。

启动容器:

cd/mnt/nvme/my-project/project-docker/project-jellyfindockercompose down&&dockercompose up-d
7.3、使用
7.3.1、首次访问

浏览器访问:

http://设备IP:8096

首次进入后按页面会要求:

  • 选择语言
  • 创建管理员账号
  • 添加媒体库
7.3.2、添加媒体库

推荐至少分成 3 个库:

  1. 电影库

    路径:

    /media/movies
  2. 电视剧库

    路径:

    /media/tv
  3. 动漫库

    路径:

    /media/anime

不要一开始就把/media整个作为一个总库。
因为这样会把电影、电视剧、动漫、杂项全混在一起,识别效果容易变差。

7.3.3、媒体命名规则
  • 电影

    movies/ └── 你的名字 (2016)/ └── 你的名字 (2016).mkv
  • 电视剧 / 动漫

    tv/ └── 老友记 (1994)/ ├── Season 01/ │ ├── 老友记 S01E01.mkv │ └── 老友记 S01E02.mkv └── Season 02/
  • OVA / 特典

    anime/ └── Plastic Memories (2015)/ ├── Season 00/ │ ├── Plastic Memories - S00E01 - NCOP.mp4 │ └── Plastic Memories - S00E02 - NCED.mp4 └── Season 01/
  • 重要建议

    • 季目录尽量写成Season 01
    • 文件名里尽量保留S01E01
    • 年份写在总目录名里更稳
    • 资源特别乱时,优先整理“总目录 + 季目录”,不要先折腾每一集
7.4、维护
# 查看 Jellyfin 日志dockerlogs-fjellyfin# 进入容器dockerexec-itjellyfinbashdockerexec-itjellyfinsh
7.5、硬件加速

先检查容器里ffmpeg是否支持rkmpp

dockerexec-itjellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg-hwaccels

正常会看到类似:

rkmpp drm opencl

Jellyfin后台设置

进入:

仪表盘 → 播放 → 转码

建议:

  • 硬件加速:Rockchip MPP (RKMPP)
  • 硬件解码:大多数都勾选
  • 启用硬件编码:开启
  • HEVC编码:先关闭(稳定优先)
  • AV1编码:关闭
  • 色调映射:先关闭

真正播放时看负载

如果播放/转码时CPU压力明显下降,且日志里出现硬件相关内容,通常说明已在工作。

http://www.zskr.cn/news/1499426.html

相关文章:

  • 石材色差是正常的吗?国家标准+验收红线全知道(2026版) - 宁波融诚石业
  • 宁波梅雨季装修石材防护专题:6-9月施工注意事项(2026版) - 宁波融诚石业
  • HTML5语义化与无障碍实践:构建面向未来的Web基石
  • 别再为乱码头疼了!SOLIDWORKS工程图转DWG字体设置保姆级教程(附drawfontmap.txt修改指南)
  • 警惕 “高价回收” 幌子:昆明包包回收真实利润与报价底线 - 奢侈品回收评测
  • 图片批量翻译工具测评:功能、价格与适用场景分析
  • Word公式排版救星:MathType 7.4.8安装避坑与右编号公式实战指南
  • 警惕“拿着 AI 找场景”:伪需求下的 Agent 泡沫
  • 《代码随想录》刷题打卡day11:二叉树part01
  • 宁波10个高端楼盘石材装修实景案例合集(2026版) - 宁波融诚石业
  • 告别鼠标手!Kicad 6.0 原理图与PCB设计最全快捷键清单(附PDF速查表)
  • Apollo配置中心踩坑记:从IDE变量到Server.properties,优先级与缓存那些事儿
  • Spring AI实战:快速集成阿里通义千问
  • 助睿Max数据大屏实战(进阶篇):浏览器用户画像大屏的数据接入与交互全解析
  • 别再死记硬背了!用STM32CubeMX+FreeModbus库,5分钟搞定你的第一个Modbus从机
  • 2026年 除漆剂/除臭剂/絮凝剂/消泡剂厂家推荐榜:源头工艺与环保高效除味消泡实力品牌解析 - 品牌发掘
  • dubbo和oppenFeign是如何找到正确的url请求地址的
  • 2026 消费电子异形磁铁赛道 多家源头厂商技术能力多维对比 - 变量人生001
  • 2026 成都迪奥回收最新行情,经典款与新款二手流通价差解析 - 奢侈品回收评测
  • 2026选店指南,哈尔滨黄金回收门店参考手册 - 奢侈品回收测评
  • 摸底上海黄金回收渠道:2026年6月最新测评5家合规门店结果分享 - 奢侈品回收评测
  • S32K3安全机制实战:手把手教你用EIM模块注入ECC错误(附MCAL配置)
  • 新手选店攻略,对比哈尔滨各区黄金回收门店快速避坑 - 奢侈品回收测评
  • 无锡闲置包包出手指南,2026名牌包包回收没盒子还能高价出 - 奢侈品回收评测
  • 2026 合肥生成式引擎优化(GEO)行业权威测评报告 —— 基于第三方数据、产业底座与商业实效的中立评估 - 安徽工业
  • UVM验证进阶:深入start_item源码,解锁指定sequencer发送item的两种隐藏技巧
  • 2026揭阳防水补漏哪家靠谱?正规公司排名及避坑价格指南 - 苏易修缮
  • 2026 合肥生成式引擎优化(GEO)服务商权威测评报告 —— 基于第三方数据、产业底座与商业实效的中立评估 - 安徽工业
  • 2026年 哈尔滨短视频运营/代运营/企业获客/工厂推广,抖音全托管与制造业实战获客榜单推荐 - 品牌发掘
  • 手把手教你用STM32F103驱动TPC116S8 DAC模块(附完整工程代码)