Plex vs Emby 私有媒体服务器搭建 2026

🎬 打造属于你的 Netflix。 Plex 和 Emby 是最流行的私有媒体服务器方案,可以把你的电影、电视剧、音乐、照片变成一个漂亮的流媒体平台,在任何设备上随时观看。本文从安装到进阶,帮你搭建完美的家庭影院。
本文将带你系统掌握:
- ✅ Plex / Emby / Jellyfin 三大方案对比
- ✅ Docker 部署 Plex 和 Emby
- ✅ 媒体库配置与元数据管理
- ✅ 硬件转码配置
- ✅ 远程访问与 HTTPS
- ✅ 用户管理与权限控制
- ✅ 客户端使用
- ✅ 优化与常见问题
一、三大方案对比
1.1 Plex vs Emby vs Jellyfin
| 特性 | Plex | Emby | Jellyfin |
|---|---|---|---|
| 授权 | 闭源(Plex Pass 付费) | 闭源(Premiere 付费) | 开源免费 |
| UI 美观度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ |
| 元数据 | 优秀(免费) | 优秀 | 一般 |
| 硬件转码 | 需 Plex Pass | 需 Premiere | 免费 |
| 客户端 | 最丰富 | 丰富 | 较少 |
| 多用户 | 免费支持 | 需付费 | 免费支持 |
| 远程访问 | 简单(Plex Relay) | 需配置 | 需配置 |
| Docker 支持 | ✅ | ✅ | ✅ |
| Live TV | ✅ | ✅ | ✅ |
| 社区生态 | 最大 | 较大 | 增长中 |
1.2 选择建议
| 场景 | 推荐 |
|---|---|
| 追求最佳体验,不在乎付费 | Plex |
| 想要更多自定义,接受付费 | Emby |
| 预算有限,喜欢开源 | Jellyfin |
| NAS 用户 | Plex 或 Emby |
二、Docker 部署
2.1 部署 Plex
# docker-compose.yml
version: '3.8'
services:
plex:
image: plexinc/pms-docker:latest
container_name: plex
restart: unless-stopped
ports:
- "32400:32400" # Web 界面
- "3005:3005" # Plex Companion
- "8324:8324" # DLNA
- "32469:32469" # DLNA
volumes:
- plex_config:/config
- plex_transcode:/transcode
- /path/to/movies:/data/movies
- /path/to/tv:/data/tv
- /path/to/music:/data/music
- /path/to/photos:/data/photos
environment:
- PLEX_CLAIM=claim-xxxxx # 从 plex.tv/claim 获取
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- ADVERTISE_IP=http://你的IP:32400/
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
plex_config:
plex_transcode:启动:
docker compose up -d访问: http://你的IP:32400/web
2.2 部署 Emby
version: '3.8'
services:
emby:
image: emby/embyserver:latest
container_name: emby
restart: unless-stopped
ports:
- "8096:8096" # Web 界面
- "8920:8920" # HTTPS
volumes:
- emby_config:/config
- /path/to/movies:/data/movies
- /path/to/tv:/data/tv
- /path/to/music:/data/music
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
emby_config:访问: http://你的IP:8096
2.3 部署 Jellyfin
version: '3.8'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "8097:8096"
volumes:
- jellyfin_config:/config
- jellyfin_cache:/cache
- /path/to/movies:/media/movies
- /path/to/tv:/media/tv
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
jellyfin_config:
jellyfin_cache:三、媒体库配置
3.1 目录结构规范
媒体文件的目录结构对元数据识别至关重要:
/media/
├── movies/
│ ├── Avatar (2009)/
│ │ ├── Avatar (2009).mkv
│ │ └── Avatar (2009).srt
│ ├── Inception (2010)/
│ │ └── Inception (2010).mp4
│ └── The Matrix (1999)/
│ └── The Matrix (1999).mkv
├── tv/
│ ├── Breaking Bad/
│ │ ├── Season 1/
│ │ │ ├── Breaking Bad - S01E01.mkv
│ │ │ ├── Breaking Bad - S01E02.mkv
│ │ │ └── ...
│ │ └── Season 2/
│ └── Game of Thrones/
│ └── Season 1/
├── music/
│ ├── Artist Name/
│ │ └── Album Name/
│ │ ├── 01 - Track.mp3
│ │ └── 02 - Track.flac
└── photos/
├── 2024/
│ └── 2024-01-vacation/
└── 2025/3.2 Plex 添加媒体库
- 访问
http://IP:32400/web - 设置 → 管理 → 媒体库 → 添加媒体库
- 选择类型:电影 / 电视剧 / 音乐 / 照片
- 添加文件夹路径
- 配置扫描器和代理:
- 电影:Plex Movie
- 电视剧:Plex TV Series
- 音乐:Plex Music
- 设置语言为中文
3.3 Emby 添加媒体库
- 访问
http://IP:8096 - 设置 → 媒体库 → 添加媒体库
- 选择内容类型和目录
- 配置元数据源:
- 电影:TheMovieDb + 豆瓣
- 电视剧:TheTVDb + 豆瓣
- 保存并扫描
3.4 元数据优化
安装豆瓣元数据插件(Emby):
- 设置 → 插件 → 目录
- 安装 "Douban" 元数据插件
- 重启 Emby
中文化配置:
- Plex:设置 → 语言 → 简体中文
- Emby:设置 → 显示 → 首选语言 → Chinese (Simplified)
四、硬件转码
4.1 为什么需要转码
不同设备支持的编码格式不同:
| 编码 | 兼容性 | 压缩率 | 大小 |
|---|---|---|---|
| H.264 | 极好 | 好 | 大 |
| H.265/HEVC | 较好 | 极好 | 小 |
| AV1 | 较差 | 最好 | 最小 |
当客户端不支持源文件的编码时,服务器需要实时转码。
4.2 NVIDIA GPU 转码
安装 NVIDIA Container Toolkit:
# Ubuntu/Debian
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt update
sudo apt install -y nvidia-container-toolkit
sudo systemctl restart dockerPlex 启用 GPU 转码:
- 需要 Plex Pass(付费)
- 设置 → 转码 → 使用硬件加速 → NVIDIA NVENC
- 选择可用的编码器
Emby 启用 GPU 转码:
- 需要 Emby Premiere(付费)
- 设置 → 转码 → 启用硬件转码 → NVIDIA NVENC
Jellyfin 启用 GPU 转码:
- 免费!
- 设置 → 播放 → 转码 → 硬件加速 → NVIDIA NVENC
4.3 Intel Quick Sync(核显)
适用于 Intel CPU 核显:
# Docker Compose 添加设备
devices:
- /dev/dri:/dev/driPlex/Emby/Jellyfin 设置中选择 Intel Quick Sync (QSV)。
4.4 转码性能对比
| 方案 | 1080p 转码速度 | 4K 转码速度 | 并发路数 |
|---|---|---|---|
| CPU (i7) | ~30fps | ~5fps | 1-2 |
| NVIDIA GTX 1660 | ~150fps | ~30fps | 3-5 |
| NVIDIA RTX 4060 | ~300fps | ~80fps | 5-8 |
| NVIDIA RTX 4090 | ~600fps | ~200fps | 10+ |
| Intel QSV (i7) | ~120fps | ~25fps | 2-4 |
五、远程访问
5.1 Plex 远程访问
Plex 自带 Relay 服务,最简单:
- 设置 → 网络 → 启用手动端口映射 → 32400
- 设置 → 远程访问 → 启用
手动配置:
# 路由器端口转发
# 外部端口 32400 → 内部 IP:324005.2 Nginx 反向代理 + HTTPS
# /etc/nginx/sites-available/plex
server {
listen 443 ssl http2;
server_name plex.example.com;
ssl_certificate /etc/letsencrypt/live/plex.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/plex.example.com/privkey.pem;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:32400;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 缓冲设置
proxy_buffering off;
}
}Emby Nginx 配置:
server {
listen 443 ssl http2;
server_name emby.example.com;
ssl_certificate /etc/letsencrypt/live/emby.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/emby.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8096;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}六、用户管理
6.1 Plex 用户管理
添加家庭用户:
- 设置 → 家庭 → 邀请用户
- 输入邮箱或用户名
- 设置权限(电影、电视剧、音乐等)
添加朋友(共享库):
- 设置 → 用户与共享 → 邀请朋友
- 选择共享的媒体库
- 设置筛选和权限
用户权限:
| 权限 | 说明 |
|---|---|
| 允许管理 | 管理服务器设置 |
| 允许转码 | 允许请求转码 |
| 允许下载 | 允许下载媒体 |
| 仅限已分级内容 | 限制为特定分级 |
6.2 Emby 用户管理
- 设置 → 用户 → 添加用户
- 配置媒体库访问权限
- 设置 parental controls(家长控制)
- 设置最大流数量和转码限制
七、客户端
7.1 支持的客户端
| 客户端 | Plex | Emby | Jellyfin |
|---|---|---|---|
| Web 浏览器 | ✅ | ✅ | ✅ |
| iOS | ✅ | ✅ | ✅ |
| Android | ✅ | ✅ | ✅ |
| Apple TV | ✅ | ✅ | ✅ |
| Android TV | ✅ | ✅ | ✅ |
| Fire TV | ✅ | ✅ | ✅ |
| Roku | ✅ | ✅ | ❌ |
| Samsung TV | ✅ | ✅ | ❌ |
| LG TV | ✅ | ❌ | ❌ |
| PlayStation | ✅ | ❌ | ❌ |
| Kodi | ✅(插件) | ✅(插件) | ✅(插件) |
7.2 推荐播放器
直接播放(不转码):
- Infuse(Apple TV/iOS)- 最佳体验
- Plexamp(音乐播放)
- Jellyfin Media Player(桌面)
配置直连:
让客户端直接播放原始文件,避免服务器转码:
- 客户端设置 → 允许直接播放
- 尽量使用 H.264 编码(兼容性最好)
- 避免使用冷门编码(如 AV1、VC-1)
八、进阶优化
8.1 自动化媒体管理
使用 Radarr + Sonarr 自动下载:
version: '3.8'
services:
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
ports:
- "7878:7878"
volumes:
- radarr_config:/config
- /path/to/movies:/movies
- /path/to/downloads:/downloads
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
ports:
- "8989:8989"
volumes:
- sonarr_config:/config
- /path/to/tv:/tv
- /path/to/downloads:/downloads
volumes:
radarr_config:
sonarr_config:流程:
Radarr/Sonarr 监控新剧集
→ 自动发送到下载客户端
→ 下载完成
→ 自动重命名和移动到媒体库
→ 通知 Plex/Emby 刷新库8.2 字幕管理
Bazarr 自动下载字幕:
bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: bazarr
ports:
- "6767:6767"
volumes:
- bazarr_config:/config
- /path/to/movies:/movies
- /path/to/tv:/tv配置字幕源:Subscene、OpenSubtitles 等。
8.3 预览缩略图
Plex 生成预览条:
- 设置 → 媒体库 → 高级
- 勾选 "启用视频预览缩略图"
- 选择生成时机(计划任务或入库时)
Emby 生成预览:
- 设置 → 媒体库 → 勾选 "章节插图"
- 计划任务 → 创建章节图像
8.4 定时任务
# 每天凌晨 2 点扫描媒体库
# Plex
curl -X PUT "http://localhost:32400/library/refresh?X-Plex-Token=YOUR_TOKEN"
# Emby
curl -X POST "http://localhost:8096/Library/Refresh" \
-H "X-Emby-Token: YOUR_TOKEN"crontab 配置:
0 2 * * * curl -s -X PUT "http://localhost:32400/library/refresh?X-Plex-Token=YOUR_TOKEN" > /dev/null 2>&1九、常见问题
9.1 无法识别媒体
- 检查文件命名是否符合规范
- 确认元数据代理配置正确
- 手动刷新元数据:媒体库 → 刷新全部
9.2 转码失败
- 检查 GPU 驱动是否正常:
nvidia-smi - 确认 Plex Pass / Emby Premiere 已激活
- 查看转码日志
9.3 远程无法访问
- 检查防火墙是否放行端口
- 确认路由器端口转发配置
- 检查 Nginx 配置和 SSL 证书
9.4 媒体库扫描慢
- 减少监控目录深度
- 使用 "定时扫描" 代替 "实时监控"
- 排除不需要的文件类型
十、总结
| 场景 | 推荐方案 |
|---|---|
| 追求最佳体验 | Plex + Plex Pass |
| 想要更多控制 | Emby + Premiere |
| 免费开源 | Jellyfin |
| NAS 一体化 | Plex (Synology/QNAP) |
🎬 私有媒体服务器让你真正拥有自己的内容,不受任何平台限制。
相关文章推荐: