评测体验

NAS Docker部署Jellyfin:打造家庭影院级媒体中心

你是不是也遇到过这样的尴尬:手机里存满了电影,想在客厅大电视上看,却发现要么格式不支持,要么字幕乱码,要么卡顿得像幻灯片?更别提家里几台设备各存各的,想看部片子还得先找到文件在哪。其实,一台NAS加一个Docker容器就能解决所有问题,今天我们就来聊聊如何在NAS上用Docker部署Jellyfin,打造一个全家人随时可用的家庭影院媒体中心。

为什么选择Jellyfin而不是Plex或Emby

市面上主流的媒体服务器无非三款:Plex、Emby和Jellyfin。Plex和Emby虽然界面漂亮、生态成熟,但高级功能(如硬件转码、多用户)都需要付费订阅,而且它们会收集用户观看数据。Jellyfin则是完全免费开源的,由社区维护,没有付费墙,没有数据回传,支持几乎所有主流平台(iOS/Android/TV/网页),更重要的是它原生支持Docker部署,资源占用可控,特别适合NAS用户。

如果你只是想本地看片,不追求云端同步和手机App推送,Jellyfin完全够用,而且它支持硬解(Intel Quick Sync / NVIDIA NVENC),转码性能不比付费软件差。

第一步:Docker部署Jellyfin(含docker-compose示例)

在NAS上部署Jellyfin非常简单,推荐使用docker-compose方式管理。先在你的NAS上创建一个目录,比如/volume1/docker/jellyfin,然后新建docker-compose.yml文件,内容如下:

version: '3'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1024
      - PGID=100
      - TZ=Asia/Shanghai
    volumes:
      - /volume1/docker/jellyfin/config:/config
      - /volume1/docker/jellyfin/cache:/cache
      - /volume1/media/movies:/media/movies
      - /volume1/media/tvshows:/media/tvshows
    ports:
      - 8096:8096
      - 8920:8920
    devices:
      - /dev/dri:/dev/dri   # 如果NAS有Intel核显,启用硬解
    restart: unless-stopped

注意:PUIDPGID要改成你NAS上的用户ID(可通过id命令查看),/volume1/media路径改成你的媒体库实际路径。如果你没有/dev/dri设备(比如ARM架构NAS),可以去掉devices那一行。

保存后,在SSH终端或NAS自带的Docker管理界面中执行:

cd /volume1/docker/jellyfin
docker-compose up -d

等待拉取镜像并启动,访问http://你的NASIP:8096,就能看到Jellyfin的初始化向导了。

第二步:媒体库配置与命名规范

Jellyfin默认会从TheMovieDB(TMDB)刮取海报、简介、演员信息,但前提是你的文件命名要规范。推荐采用以下结构:

/volume1/media/
├── movies/
│   ├── 星际穿越 (2014)/
│   │   └── 星际穿越.mkv
│   └── 盗梦空间 (2010).mp4
└── tvshows/
    ├── 权力的游戏/
    │   ├── Season 01/
    │   │   ├── S01E01.mkv
    │   │   └── S01E02.mkv
    └── 绝命毒师/
        └── Season 01/
            └── Breaking.Bad.S01E01.mkv

在Jellyfin控制台的“媒体库”中添加文件夹,选择对应类型(电影/剧集),元数据语言设为中文(zh),刮取器勾选TMDB即可。如果个别电影刮不到,可以手动编辑元数据,或使用tinyMediaManager这类工具提前刮削好nfo文件。

第三步:硬解转码与字幕设置

如果你NAS的CPU支持Intel Quick Sync(Jellyfin官方推荐),在控制台“播放”设置中,将“转码”里的硬件加速选为“Intel Quick Sync”,并勾选“启用硬件解码”。这样播放4K HDR片源时,转码负载会大幅降低,内存占用也小。

字幕方面,Jellyfin默认支持ASS/SSA特效字幕,但如果你在浏览器播放时遇到字幕乱码,建议在“播放”设置中把“字幕提取”改为“提取所有字幕”,并开启“烧录图形字幕(仅在需要时)”。对于外挂字幕文件,确保文件名和视频同名,比如星际穿越.srt星际穿越.mkv放在同一目录。

第四步:客户端与远程访问

Jellyfin客户端覆盖极广,电视端(Android TV / Apple TV / 小米电视)可以装官方App,手机端(iOS/Android)支持投屏和离线下载。在局域网内,直接用http://NASIP:8096即可访问。

如果你希望在外网也能看,推荐用Tailscale或WireGuard组虚拟局域网,比端口转发安全得多。配置好Tailscale后,手机装客户端,就能像在家一样访问Jellyfin,无需公网IP。

进阶技巧:定时扫描与自动更新

Jellyfin默认每12小时扫描一次媒体库,你也可以在控制台手动触发扫描。如果你下载新电影后希望立即入库,可以在下载工具(如qBittorrent)完成后调用Jellyfin的API:

curl -X POST "http://127.0.0.1:8096/Library/Refresh?api_key=你的API密钥"

API密钥在控制台“高级”中生成。另外,用Watchtower容器可以自动更新Jellyfin镜像:

docker run -d --name watchtower -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower jellyfin

不过建议手动更新,避免新版本引入bug影响稳定性。

总结

通过Docker部署Jellyfin,你只需要20分钟就能搭建一个跨平台的家庭影院系统。它免费、无广告、支持硬解,配合规范的命名和元数据刮取,能自动生成海报墙,全家人都能轻松用遥控器点播电影。相比付费的Plex,Jellyfin更适合追求性价比和数据隐私的NAS玩家。如果你还没试过,今晚就可以动手部署,把吃灰的硬盘变成你的私人影院。

💬 评论区
发表评论

暂无评论,来说两句吧