news 2026/6/10 19:55:12

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
个人总结 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压力明显下降,且日志里出现硬件相关内容,通常说明已在工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 19:54:14

伺服电机仿真(3):PMSM在三相静止坐标系下的数学模型

3.1 引言:从物理实体到数学描述建立精确的数学模型是进行伺服电机仿真的第一步。在三相静止坐标系(ABC坐标系)下建立的PMSM模型,直接反映了电机的物理本质,描述了定子三相绕组与旋转转子永磁体之间的完整电磁相互作用关…

作者头像 李华
网站建设 2026/6/10 19:52:45

NVIDIA RTX Spark:个人电脑的重新定义

2026年6月1日,台北国际电脑展(COMPUTEX 2026)上,NVIDIA CEO黄仁勋正式发布了RTX Spark超级芯片。这是NVIDIA历史上第一款面向个人电脑的全集成处理器,标志着这家公司正式从"显卡公司"向"电脑核心处理器…

作者头像 李华
网站建设 2026/6/10 19:52:04

大模型常见面试题与生产实践

文章目录1 面试题1 如何确认检索结果是否可靠\2 如何保证大模型输出json可靠3 单agent 和 multi-agent系统有什么区别,分别适合什么场景4 如何设计一个可靠的长记忆机制1 面试题 1 如何确认检索结果是否可靠\ 不可靠分为: 1 召回不相关。2 关键信息漏掉…

作者头像 李华
网站建设 2026/6/10 19:48:07

《多语言高并发巅峰对决:Python vs Java vs C++ 10万级QPS架构决策完全指南》第6章 序列化与协议瓶颈:JSON/Protobuf/Thrift/MessagePack在高压下的

前五章我们解决了并发模型、内存、网络IO和锁争用问题。现在,假设你的服务已经能够以10万QPS的速率收发网络包,但你突然发现CPU占用率飙升,延迟恶化——罪魁祸首往往是对数据的序列化与反序列化。一个低效的序列化协议,可以将你的…

作者头像 李华
网站建设 2026/6/10 19:47:35

赛尔 SHARE3DCAM AI Engine 算法全面升级,开启智能量房新体验

赛尔 SHARE3DCAM AI Engine算法全方位升级 以CAD制图、点云智能优化、动态物体滤除、点云赋色优化、3D高斯泼溅等核心能力升级 让装修现场空间数据更精准、更全面、更易交付, 打通从扫描、出图到交付的数字化流程, 减少反复沟通与返工,帮助装…

作者头像 李华