跳转到内容

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

Plex vs Emby 私有媒体服务器

🎬 打造属于你的 Netflix。 Plex 和 Emby 是最流行的私有媒体服务器方案,可以把你的电影、电视剧、音乐、照片变成一个漂亮的流媒体平台,在任何设备上随时观看。本文从安装到进阶,帮你搭建完美的家庭影院。

本文将带你系统掌握:

  • ✅ Plex / Emby / Jellyfin 三大方案对比
  • ✅ Docker 部署 Plex 和 Emby
  • ✅ 媒体库配置与元数据管理
  • ✅ 硬件转码配置
  • ✅ 远程访问与 HTTPS
  • ✅ 用户管理与权限控制
  • ✅ 客户端使用
  • ✅ 优化与常见问题

一、三大方案对比

1.1 Plex vs Emby vs Jellyfin

特性PlexEmbyJellyfin
授权闭源(Plex Pass 付费)闭源(Premiere 付费)开源免费
UI 美观度⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
元数据优秀(免费)优秀一般
硬件转码需 Plex Pass需 Premiere免费
客户端最丰富丰富较少
多用户免费支持需付费免费支持
远程访问简单(Plex Relay)需配置需配置
Docker 支持
Live TV
社区生态最大较大增长中

1.2 选择建议

场景推荐
追求最佳体验,不在乎付费Plex
想要更多自定义,接受付费Emby
预算有限,喜欢开源Jellyfin
NAS 用户Plex 或 Emby

二、Docker 部署

2.1 部署 Plex

yaml
# 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:

启动:

bash
docker compose up -d

访问: http://你的IP:32400/web

2.2 部署 Emby

yaml
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

yaml
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 添加媒体库

  1. 访问 http://IP:32400/web
  2. 设置 → 管理 → 媒体库 → 添加媒体库
  3. 选择类型:电影 / 电视剧 / 音乐 / 照片
  4. 添加文件夹路径
  5. 配置扫描器和代理:
    • 电影:Plex Movie
    • 电视剧:Plex TV Series
    • 音乐:Plex Music
  6. 设置语言为中文

3.3 Emby 添加媒体库

  1. 访问 http://IP:8096
  2. 设置 → 媒体库 → 添加媒体库
  3. 选择内容类型和目录
  4. 配置元数据源:
    • 电影:TheMovieDb + 豆瓣
    • 电视剧:TheTVDb + 豆瓣
  5. 保存并扫描

3.4 元数据优化

安装豆瓣元数据插件(Emby):

  1. 设置 → 插件 → 目录
  2. 安装 "Douban" 元数据插件
  3. 重启 Emby

中文化配置:

  • Plex:设置 → 语言 → 简体中文
  • Emby:设置 → 显示 → 首选语言 → Chinese (Simplified)

四、硬件转码

4.1 为什么需要转码

不同设备支持的编码格式不同:

编码兼容性压缩率大小
H.264极好
H.265/HEVC较好极好
AV1较差最好最小

当客户端不支持源文件的编码时,服务器需要实时转码。

4.2 NVIDIA GPU 转码

安装 NVIDIA Container Toolkit:

bash
# 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 docker

Plex 启用 GPU 转码:

  1. 需要 Plex Pass(付费)
  2. 设置 → 转码 → 使用硬件加速 → NVIDIA NVENC
  3. 选择可用的编码器

Emby 启用 GPU 转码:

  1. 需要 Emby Premiere(付费)
  2. 设置 → 转码 → 启用硬件转码 → NVIDIA NVENC

Jellyfin 启用 GPU 转码:

  1. 免费!
  2. 设置 → 播放 → 转码 → 硬件加速 → NVIDIA NVENC

4.3 Intel Quick Sync(核显)

适用于 Intel CPU 核显:

yaml
# Docker Compose 添加设备
devices:
  - /dev/dri:/dev/dri

Plex/Emby/Jellyfin 设置中选择 Intel Quick Sync (QSV)

4.4 转码性能对比

方案1080p 转码速度4K 转码速度并发路数
CPU (i7)~30fps~5fps1-2
NVIDIA GTX 1660~150fps~30fps3-5
NVIDIA RTX 4060~300fps~80fps5-8
NVIDIA RTX 4090~600fps~200fps10+
Intel QSV (i7)~120fps~25fps2-4

五、远程访问

5.1 Plex 远程访问

Plex 自带 Relay 服务,最简单:

  1. 设置 → 网络 → 启用手动端口映射 → 32400
  2. 设置 → 远程访问 → 启用

手动配置:

bash
# 路由器端口转发
# 外部端口 32400 → 内部 IP:32400

5.2 Nginx 反向代理 + HTTPS

nginx
# /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 配置:

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 用户管理

添加家庭用户:

  1. 设置 → 家庭 → 邀请用户
  2. 输入邮箱或用户名
  3. 设置权限(电影、电视剧、音乐等)

添加朋友(共享库):

  1. 设置 → 用户与共享 → 邀请朋友
  2. 选择共享的媒体库
  3. 设置筛选和权限

用户权限:

权限说明
允许管理管理服务器设置
允许转码允许请求转码
允许下载允许下载媒体
仅限已分级内容限制为特定分级

6.2 Emby 用户管理

  1. 设置 → 用户 → 添加用户
  2. 配置媒体库访问权限
  3. 设置 parental controls(家长控制)
  4. 设置最大流数量和转码限制

七、客户端

7.1 支持的客户端

客户端PlexEmbyJellyfin
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(桌面)

配置直连:

让客户端直接播放原始文件,避免服务器转码:

  1. 客户端设置 → 允许直接播放
  2. 尽量使用 H.264 编码(兼容性最好)
  3. 避免使用冷门编码(如 AV1、VC-1)

八、进阶优化

8.1 自动化媒体管理

使用 Radarr + Sonarr 自动下载:

yaml
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 自动下载字幕:

yaml
  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 生成预览条:

  1. 设置 → 媒体库 → 高级
  2. 勾选 "启用视频预览缩略图"
  3. 选择生成时机(计划任务或入库时)

Emby 生成预览:

  1. 设置 → 媒体库 → 勾选 "章节插图"
  2. 计划任务 → 创建章节图像

8.4 定时任务

bash
# 每天凌晨 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 配置:

bash
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)

🎬 私有媒体服务器让你真正拥有自己的内容,不受任何平台限制。


相关文章推荐: