媒体播放器及媒体服务器软件Plex

什么是 Plex ?

Plex 是一套媒体播放器及媒体服务器软件,让用户整理在设备上的有声书、音乐、播客、图片和视频文件,并通过流式传输至移动设备、智能电视和电子媒体播放器上。Plex 可用于 WindowsAndroidLinuxOS XFreeBSD

在接触 NAS 之前,老苏一直是用旧笔记本 + Plex 搭建自己的流媒体服务器,实现了存储+索引+转码+网页播放,对于老苏来说,Plex 就是个非常完美的影音平台,后来只是因为更偏爱开源软件没有任何限制,才转投了 Jellyfin,但其实常规使用,Plex 完全能满足老苏的需求

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 pms-docker ,选择第一个 plexinc/pms-docker,版本选择 latest

本文写作时, latest 版本对应为 1.32.8.7639-fb6452ebf

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 新建文件夹 plex 和 子目录
mkdir -p /volume1/docker/plex/{config,data,transcode}

# 进入 plex 目录
cd /volume1/docker/plex

# 运行容器
docker run -d \
--restart unless-stopped \
--name plex \
-p 32400:32400/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1900:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-v $(pwd)/config:/config \
-v $(pwd)/transcode:/transcode \
-v $(pwd)/data:/data \
-e TZ=Asia/Shanghai \
-e PLEX_CLAIM="<claimToken>" \
-e ADVERTISE_IP="http://<hostIPAddress>:32400/" \
-h <HOSTNAME> \
plexinc/pms-docker

# 示例
docker run -d \
--restart unless-stopped \
--name plex \
-p 32400:32400/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1901:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-v $(pwd)/config:/config \
-v $(pwd)/transcode:/transcode \
-v $(pwd)/data:/data \
-e TZ=Asia/Shanghai \
-e PLEX_CLAIM="claim-xxxxxxxxxxxxxxxxxxxx" \
-e ADVERTISE_IP="http://192.168.0.197:32400/" \
-h ds3617xs \
plexinc/pms-docker

文件夹 装载路径 说明
docker/plex/config /config 存储其配置数据
docker/plex/data /data 存储媒体数据
docker/plex/transcode /transcode 转码临时文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口 协议
32400 32400 tcp
8324 8324 tcp
32469 32469 tcp
1901 1900 udp
32410 32410 udp
32412 32412 udp
32413 32413 udp
32414 32414 udp

其中 1900 被群晖自带的 UPnP 协议守护进程 minissdpd 占用了,所以必须要改,其他的请根据自己的情况修改

环境变量

  • TZ:容器内的时区设置,国内用户可以设为 Asia/Shanghai
  • PLEX_CLAIM:可以在线获取,有效期只有 4 分钟,建议拉取镜像之后再获取,地址:https://www.plex.tv/claim

如果还没有 plex 账号,需要先注册一个;

  • ADVERTISE_IP:如果您希望您的 Plex 媒体服务器可以在家庭网络之外访问,则必须在路由器上手动设置端口转发以转发到上面,ADVERTISE_IP指定的端口。默认情况下,您可以转发端口 32400,但如果您选择使用其他外部端口,请务必在 Plex 媒体服务器的Remote Access设置中进行配置。对于这种类型的 Docker 网络,Plex 媒体服务器本质上位于两个路由器后面,并且它无法自行自动设置端口转发

例如:http://192.168.0.197:32400/,其中 192.168.0.197 为老苏群晖主机的 IP

其他参数

  • -h <HOSTNAME>:设置 docker 容器内的主机名。

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: '3'

services:
plex:
image: plexinc/pms-docker
container_name: plex
restart: unless-stopped
ports:
- 32400:32400/tcp
- 8324:8324/tcp
- 32469:32469/tcp
- 1901:1900/udp
- 32410:32410/udp
- 32412:32412/udp
- 32413:32413/udp
- 32414:32414/udp
environment:
- TZ=Asia/Shanghai
- PLEX_CLAIM=<claimToken>
- ADVERTISE_IP=http://<hostIPAddress>:32400/
hostname: <hostname>
volumes:
- ./config:/config
- ./transcode:/transcode
- ./data:/data

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 plex 和 子目录
mkdir -p /volume1/docker/plex/{config,data,transcode}

# 进入 plex 目录
cd /volume1/docker/plex

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:32400 就能看到登录界面

登录成功后

可以同步不同端的观看状态

起个名字

添加资料库

选择类型

例如:电影

选择目录,不管容器外的路径是什么,这里是容器内的路径,所以选择 /data

高级中设置刮削

现在可以开始使用了

先扫描一下电影库

刮削基本上没问题

参考文档

plexinc/pms-docker: Plex Media Server Docker repo, for all your PMS docker needs.
地址:https://github.com/plexinc/pms-docker

Stream Movies & TV Shows | Plex
地址:https://www.plex.tv/zh/