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

个人总结 docker搭建家庭媒体库Jellyfin Jellyfin​Jellyfin是一个开源媒体服务器项目旨在让用户自行搭建并管理音视频流媒体库。它提供与商业媒体服务器如Plex或Emby类似的功能但完全免费且无专有组件或遥测功能。​Jellyfin允许用户在自有服务器上集中管理电影、电视剧、音乐和照片并通过网页或客户端应用流式播放。其服务端可运行于Windows、Linux、macOS、Docker等环境客户端涵盖网页端、Android、iOS、智能电视和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-jellyfin7.2、创建容器7.2.1、docker rundockerrun-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:8920volumes:-/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:-systempathsunconfined-apparmorunconfinedenvironment:-TZAsia/Shanghai-PUID1001-PGID1001restart:unless-stopped参数详细讲解container_name: jellyfin:容器名称方便后续用docker logs jellyfin、docker exec -it jellyfin bash这类命令。image: nyanmisaka/jellyfin:latest-rockchip使用适配Rockchip平台的Jellyfin镜像。比通用镜像更适合RK3588 / RK356x等平台。ports-8096:8096-8920:89208096HTTP 访问端口8920HTTPS 访问端口一般首次部署只会用到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-systempathsunconfined-apparmorunconfined这是为了避免Docker安全限制阻碍硬件访问。在Rockchip硬件加速场景中通常需要加上environment-TZAsia/Shanghai-PUID1001-PGID1001TZAsia/Shanghai设置时区PUID1001/PGID1001让容器里创建的文件尽量与宿主机用户权限一致restart: unless-stopped当系统重启后Docker会自动重新启动这个容器除非你手动停止过它。启动容器cd/mnt/nvme/my-project/project-docker/project-jellyfindockercompose downdockercompose up-d7.3、使用7.3.1、首次访问浏览器访问http://设备IP:8096首次进入后按页面会要求选择语言创建管理员账号添加媒体库7.3.2、添加媒体库推荐至少分成 3 个库电影库路径/media/movies电视剧库路径/media/tv动漫库路径/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-itjellyfinsh7.5、硬件加速先检查容器里ffmpeg是否支持rkmppdockerexec-itjellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg-hwaccels正常会看到类似rkmpp drm openclJellyfin后台设置进入仪表盘 → 播放 → 转码建议硬件加速Rockchip MPP (RKMPP)硬件解码大多数都勾选启用硬件编码开启HEVC编码先关闭稳定优先AV1编码关闭色调映射先关闭真正播放时看负载如果播放/转码时CPU压力明显下降且日志里出现硬件相关内容通常说明已在工作。