播放

了解 STRM 怎样直连播放,并按客户端与网络选择合适的播放方式。

媒体流直达客户端只问一次地址
客户端
网盘 CDN
NAS
不传输,不转码

Cirvel 交出 CDN 地址,客户端直接取流,媒体信息和本地文件一样完整。

03.1STRM 直连播放

播放 STRM 时,客户端直接从 CDN 取流,NAS 不中转、不转码,在外观看也不占用家里的上行带宽。这项能力免费版与 Pro 都有。

直连意味着由客户端自己解码。客户端放不了的片源会直接报错,而不是交给服务器转码。遇到这种情况,可以换用解码能力更强的播放器,例如 Infuse,或者在家里打开下文的「局域网交给 Plex 播放」。

03.2挂载路径的 STRM

用 CloudDrive2、rclone 等工具把网盘挂载到 NAS 后,有的 STRM 里写的不是地址,而是挂载里的路径,例如 /CloudNAS/115/电影/示例.mkv。Cirvel 同样可以播放与分析这类 STRM,免费版与 Pro 都支持。

要让客户端直连网盘,需要一个能按网盘路径跳转到直链的服务,在「STRM 分析」页设置的「本机路径 STRM」里填写。已接入 Muvyo 时留空即可,用 OpenList 见「集成」一章的「OpenList」,其他服务见「集成」一章的「其他跳转服务」。

没有跳转服务,或跳转服务找不到文件时,由 NAS 读取挂载传出,在外播放占用家里的上行带宽,STRM 分析页会提示。这时需要把挂载目录映射进 Cirvel 容器,例如 /path/to/CloudNAS:/CloudNAS:ro,rslave,再到「STRM 分析」页设置的「本机路径 STRM」里,把它在容器里的目录填进「NAS 可读取的挂载目录」,例如 /CloudNAS,多个目录用逗号隔开。容器里的路径可以与 STRM 里写的不同,Cirvel 在媒体库文件夹和这些目录下按目录与文件名找到文件。挂载本来就在某个媒体库文件夹里时不必填写。需要 Cirvel 0.1.35 或更新的版本。

媒体库里的 STRM 都能让 NAS 读出这些目录里的文件,所以 NAS 只读取媒体库文件夹和这里填写的目录。这里只填网盘挂载,不要填放备份或令牌的目录,/ 与配置目录 /config 填不进去。

03.3局域网交给 Plex 播放

默认所有 STRM 都直连播放,由客户端自己连接 CDN。勾选的客户端在家里播放 STRM 时改由 Plex 决定,放不了的片源,例如浏览器里的 HDR、杜比视界或 MKV,由 Plex 在 NAS 上转封装或转码。代价是 NAS 从 CDN 拉流,占用下行带宽与 CPU。

  1. 1在管理面板左侧打开「播放」。
  2. 2在「局域网交给 Plex 播放」里勾选要交给 Plex 的客户端,例如 Plex Web 或 Plex for Apple TV。
  3. 3点「保存修改」。
  • 只在局域网里生效,在外播放始终直连。Infuse 等第三方播放器的表现以实际为准。
  • 同一条目也有本地文件,并且「本地与 STRM 并存时优先播放」是「自动」或「本地文件」时,在家本来就播放本地文件,所以这一项主要影响只有 STRM 的条目。
  • 装了 ShimWeave 的浏览器仍由扩展接管,直接连接 CDN,不占用 NAS。
  • 在家还是在外按 Plex 设置「网络」里的「局域网络」判断,见「部署」一章的「网络模式」。
  • Plex for Android 分成手机与电视两项,可以只把其中一种交给 Plex。
  • 这里是按客户端类型的默认,单台设备可以另选,见下文的「设备」。
  • 转码在 NAS 上进行,没有映射核显时全靠 CPU,见「部署」一章的「硬件转码」。

Plex 的转码临时目录放在内存里时会占用容器内存,写满后转码失败。经常转码高码率片源时,把转码临时目录放在硬盘上。

03.4设备

管理面板「能力」下的「设备」页列出播放过的 Plex 客户端,本地文件与 STRM 都算,每台可以单独选择 STRM 在家怎样播放,也可以写上自己认得的备注。本地文件始终由 Plex 播放,不受这个选择影响。第三方播放器不在列表里,选择对它们本来就不起作用。

列表
每台写出备注或设备名、客户端产品、在家还是在外与最近的地址、最近使用的时间。设备第一次播放后出现在这里。
按客户端类型筛选
列表里有不止一种客户端时,右上角可以只看某一类,例如 Plex for Android (TV)。
备注
在行尾「···」里点「写备注」,例如「客厅电视」,回车保存,留空清除。备注只用来认设备,不影响播放。
音频格式
安卓上的 Plex 多一行「音频格式」,例如「能解 AAC、AC3、DTS,不能解 EAC3、TrueHD」。设备播放一次后显示。遇到它解不了的音轨时,Cirvel 先换成同语言里它解得了的音轨,没有同语言的可选时,在家交给 Plex 转换原来的音轨,听到的仍是原来的语言。
移出列表
在行尾「···」里点「移出列表」,这台的选择一并清除,它再播放时重新出现。没选过 STRM 播放方式也没写备注的设备 180 天不用后自动移出。

每台的「STRM 播放方式」有三种,选了就保存,这台设备下一次播放即按新的选择。

  • 跟随客户端类型(默认) 按「局域网交给 Plex 播放」里这类客户端勾没勾决定,在外一律直连。
  • 局域网交给 Plex 不管这类客户端勾没勾,这台在家播放 STRM 时都交给 Plex。
  • 始终直连 在家也直连,设备自己请求转换时也不交给 NAS。适合经隧道回家的手机,在家转换的画面会经隧道送出,占用家里的上行。

选了「始终直连」的设备,放不了的音轨不再交给 NAS 转换,遇到只有它解不了的音轨的片子可能播不了。

在外播放时三种选择都直连。在家还是在外按「局域网络」判断。

03.5本地与 STRM 并存时优先播放Pro

同一条目同时有本地文件与 STRM 时,在「播放」页的「本地与 STRM 并存时优先播放」里选择播放哪一份。本地文件与 STRM 分在两个媒体库时,文件名与大小相同的同一文件同样算作并存。只有一种版本的条目不受影响。

  • 自动(在家本地,在外 STRM)(默认) 在家播放本地文件,在外播放 STRM 并直接连接 CDN,在外观看不占用家里的上行带宽。在家还是在外的判断与「局域网交给 Plex 播放」相同,拿不准时按在外处理。
  • 本地文件 总是优先本地文件。
  • STRM 总是优先 STRM。

Plex 客户端的版本列表里两份都在,直接播放时播排在第一的那一份,Cirvel 把该播的那一份排在第一,手动选择其它版本照常生效。

第三方播放器常常记住上次播放的版本。选「自动」时,版本列表里只留当前网络该用的那一份,起播时也换成它。播放途中换了网络不会切换,停止后重新播放时按当时的网络重新选择。固定为「本地文件」或「STRM」时只调整顺序。第三方播放器的表现以实际为准。

选「自动」并打开 ShimWeave 页的「未安装扩展时提示安装」时,没装扩展的浏览器在 Plex Web 里遇到放不了的 STRM,会改播同一条目的本地文件,由 Plex 在 NAS 上转封装或转码,在外播放时占用家里的上行带宽。

03.6多版本按画质排列

同一部影片有几个版本时,「播放版本」列表按分辨率、HDR 与码率从高到低排列,按列表顺序起播的 Plex 客户端默认播放画质最好的一份。默认打开,开关在「播放」页的设置里。

  • 分辨率先比,再比杜比视界、HDR10+、HDR10 这类动态范围,最后比码率。Plex 生成的优化版本排在最后。
  • 本地与 STRM 并存时仍按上文的「本地与 STRM 并存时优先播放」先选来源,再在这种来源里取画质最好的一份排第一。
  • 导演剪辑版与院线版这类不同剪辑的版本不互相越过,各自之内按画质排。
  • 有版本还没有媒体信息时,例如 STRM 还没分析,这个条目暂时保持 Plex 原来的顺序,分析完再排。
  • 在列表里手动选的版本照常播放。Plex Web 与安卓客户端按自己的规则挑默认版本,第三方播放器以实际为准。
  • 只改 Plex 客户端看到的列表,不改 Plex 里的数据,关闭后恢复原来的顺序。

03.7跨库的同一作品只列一次

本地文件与 STRM 分在两个媒体库时,同一部作品原本会在「继续观看」「下一集」、首页跨库的推荐行与搜索结果里出现两次。经过 Cirvel 的客户端里,这几处只列一次,留下排在前面的媒体库里的那一份,点开播放时仍按「本地与 STRM 并存时优先播放」选择版本。免费版同样生效,不需要设置。

  • 两份本来就共用观看进度,在哪个库里看到哪里,另一个库里也显示到哪里,只列一次之后不会丢进度。
  • 各个媒体库自己的浏览与推荐行保持原样,两个库里仍能分别找到它。
  • Plex 里的数据不变,Cirvel 也不额外保存什么。
  • 被 Plex 匹配成不同作品的两份不算同一部,也不共用进度,用「元数据」页修好匹配后自然合在一起。

经 Plex 中转连接的客户端,以及 Infuse 这类自己维护继续观看列表的播放器,仍会看到两份。

03.8音轨与字幕

字幕菜单里标出简中、繁中、简英双语与繁英双语,音轨标出国语与粤语,本地与 STRM 一样生效,免费版同样可用,由「标出简繁与双语字幕」控制,默认打开。这几项在「播放」页的「音轨与字幕」分组里。

  • 音轨与字幕跟随(Pro) 默认打开。在一集里换了音轨或字幕,同一部剧的其余集与之后入库的集打开时就是同样的选择。每位观看者分别记住,单独换过的那一集保持不变。
  • 中文字幕优先(Pro) 默认不改。把 Plex 自动选中的中文字幕换成简体、繁体或双语。对这部剧换过字幕,或在某一集、某部电影上亲手选过的,保持你的选择。

在剧、季或单集的详情里可以看到每位观看者记下的选择,电影的详情里可以看到谁换过这部电影的轨道,不想要的都可以逐条清除。

经 Plex 中转的连接看不到标注,换轨也不会被记下。第三方播放器只在本地切换、没有告诉服务器时同样不会被记下,以实际表现为准。

03.9跳过前集进度Pro

追剧时常有几集只看了一半就跳过去,Plex 的「继续观看」却一直停在这些集上。打开「播放」页的「跳过前集进度」后,看完一集时,同一季里排在前面、看了一部分的集标为已看,「继续观看」直接走到下一集。默认关闭,升级后不会动到已有的进度,需要时自己打开。

各人只影响自己
用观看者这次播放时自己的登录去标记,改的只是他自己的观看状态,Cirvel 不保存任何人的登录。
看了一部分才算
进度至少是片长的十分之一,不知道片长时至少 3 分钟,只点开看了一小会儿的集保持不动。
保持不动的集
没开始看的集、之前看完过又重看到一半的集、别的季。刚看完的这一集是重看,或者前面那集是在这一集之后才打开的回头补看,这一次都不标。
看完的判断
Plex 按「已播放阈值」记为已看,或者观看者自己标为已看。

每次标记都记在改动记录里,写着谁看完了哪一集、标了哪几集,可以逐条撤销,撤销免费版同样可用。撤销后这些集恢复为未看并回到原来的进度,之后又看过的集保持不变。你自己的标记立即撤销。其他观看者的撤销先安排好,等他下次在 Plex 里播放任何内容时自动完成,他不需要做什么。改动记录的位置见「维护与备份」一章的「改动记录」。

只对经过 Cirvel 的播放生效,经 Plex 中转连接的播放不会触发。撤销之后,Plex 里这些集的最后观看时间会变成撤销的时刻。

03.10弹幕

弹幕来自你自己部署的弹幕服务,Cirvel 按剧名与集数自动匹配,观看者不用做任何设置。Plex Web 免费可用,Plex 桌面版需要 Pro,手机与电视上的 Plex 客户端不显示弹幕。

  1. 1在管理面板的「弹幕」页填写弹幕服务地址,点「测试连接」,能搜索到作品后保存。地址只保存在服务器上,不会交给观看者。
  2. 2在 Plex Web 里播放剧集或电影,点控制栏上的「弹」按钮,勾选「显示弹幕」。暂停、拖动与倍速都跟随。
  3. 3显示类型、显示区域、密度、不透明度、字号与速度在同一个浮层里调,每个浏览器分别记住。

某部剧的弹幕对不上时,在「弹幕」页的「按剧纠正」里添加纠正,选中它在弹幕服务里对应的作品,集数错位时再设一个偏移,对这部剧的所有观看者生效。

第一次打开的集需要先从弹幕服务取回弹幕,可能要等一会儿才出现,之后再看会快很多。

03.11Plex 桌面版弹幕Pro

Windows 与 Mac 上的 Plex 桌面版运行一次安装命令后,播放时控制栏同样有「弹」按钮,用法与 Plex Web 相同。安装不改 Plex 应用本身,只让 Plex 打开时加载 Cirvel,在家与在外都能用,设置在重开 Plex 后保留。

  1. 1在要看弹幕的电脑上完全退出 Plex,Windows 上连同任务栏右下角的 Plex 图标一起退出。
  2. 2打开管理面板的「弹幕」页,复制「Plex 桌面版」下对应系统的命令,Mac 粘进「终端」运行,Windows 粘进 PowerShell 运行。
  3. 3重新打开 Plex,播放时点「弹」按钮打开弹幕。
Mac
curl -fsSL "http://<服务器地址>:32400/cirvel/web/desktop/install.sh" | bash
Windows
irm "http://<服务器地址>:32400/cirvel/web/desktop/install.ps1" | iex
Plex 或 Cirvel 更新后
弹幕若消失,再运行一次安装命令,Plex 照常使用。
从 0.1.27 或更早的版本升级
用过桌面版弹幕的电脑需要再运行一次安装命令。
移除
把命令里的 install 换成 uninstall 运行一次,Plex 恢复原样。
Plex 装在别处
Mac 会自动找到。Windows 找不到时,先在 PowerShell 里运行 $env:CIRVEL_PLEX_DIR = "<Plex 的安装目录>" 再安装。

命令里的地址用任何一个能打开管理面板的地址都可以,面板里复制的命令已经填好。只支持 Windows 与 Mac 上的 Plex 桌面版,不支持 Plex HTPC。

03.12其它播放设置

多版本显示媒体信息
默认打开,以前叫「多版本显示来源与文件名」,原来的选择保留。Plex 的「播放版本」列表只显示分辨率与码率,几个版本看起来差不多。打开后没有标题的版本写出媒体信息,例如「4K DV P8.1 · HEVC 10bit · TrueHD Atmos 7.1」,本地与 STRM 并存时末尾加「本地」或「STRM」,两个版本相同时再加文件名。还没有媒体信息的版本写「STRM · 文件名」或「本地 · 文件名」,已经有标题的版本保持原样。
加速 Plex Web 连接 plex.tv
默认打开。Plex Web 打开时要先等 plex.tv 返回账号与服务器列表才显示内容。打开后浏览器里的 Plex Web 经 Cirvel 连接 plex.tv,启动必需的账号信息短时保留,plex.tv 慢或短时连不上时照样能打开。只影响由这台服务器提供的 Plex Web,关闭后下次打开 Plex Web 时恢复直连。
加密连接使用 HTTP/2
默认打开。浏览器与支持的 Plex 客户端在一条加密连接上同时加载海报与页面数据,局域网里翻页与打开详情更快。个别客户端因此出问题时关闭,之后新建的连接回到与 Plex 相同的 HTTP/1.1。
预先缩放海报
默认打开。Plex 空闲时先把继续观看、首页与最近添加的海报按客户端常用的尺寸缩放好,第一次打开这些页面时多半不必等服务器现缩。有人播放、Plex 在扫描或维护、有人在浏览时自动让路。经 Cirvel 取到的海报浏览器会缓存,切回同一页时直接显示。
外挂字幕编码
自动处理,不需要设置。GBK、Big5、UTF-16 编码的中文外挂字幕下发前转成 UTF-8,各个 Plex 客户端都能正常显示,磁盘上的字幕文件保持原样。
STRM 兼容模式
默认关闭。默认由 Cirvel 替客户端取得 STRM 的播放地址,STRM 里写的是内网地址时在外也能播放。个别 STRM 服务需要由客户端直接访问,遇到这类服务播放不了时再打开,打开后与 0.1.9 及更早的版本行为相同。

03.13仪表板

管理面板左侧的「仪表板」按 Plex 的样式列出正在播放的会话,包括 Plex 自己的仪表板看不出的信息。

管理面板的仪表板
  • 在家还是在外。
  • 播放的是本地文件还是 STRM,按网络换过源时显示原先请求的版本与实际提供的版本。
  • 传输方式,客户端直连 CDN、NAS 直接传输文件、Plex 在 NAS 上转封装或转码,转码时写明用的是硬件还是 CPU。
  • 在外播放且占用 NAS 上行的会话单独标出。
  • NAS 转码跟不上播放时单独提醒,见「部署」一章的「硬件转码」。

客户端一段时间没有上报进度时,卡片的进度停在最后一次上报的位置并变灰,再久一些整张卡片淡下去。会话是否结束以 Plex 为准。