跳到主要内容

STRM 管理

路径:媒体管理 → STRM 管理。左侧统一查看处理历史,右侧管理任务;手机上通过任务列表按钮打开任务抽屉。

:::info 版本与能力范围 从 1.1.1 起,原“生成 STRM”入口调整为“STRM 管理”,包含扫描清理、手动关联删除、单项重新生成和 Emby 移除报告。本页还描述当前开发代码新增的 Emby / Jellyfin 助手删除联动和多种存储的原生隔离;这些扩展尚未随已发行版本交付,需要更新主产品与对应助手。

媒体服务器联动默认只记录报告;明确启用清理、配置关联删除工作流并核实当前关联后,后续符合授权的新事件可以触发清理。该能力仍需在自己的媒体服务器与存储上验证。 :::

STRM 是一个很小的播放入口文件,不会复制影片本身。它适合把本地、OpenList、CloudDrive2 或绿联NAS网络文件夹挂载接入 Emby / Jellyfin。所有来源统一通过 Mediora 解析视频位置,需要配置媒体代理,无需填写媒体服务器的视频目录映射。

三件事分工:来源存储保存真实影片,STRM 输出目录保存入口文件,媒体代理在播放时找到真实影片。所以 STRM 不是视频文件,也不是能分享给普通播放器的直链;mediora:// 入口只能由 Mediora 管理的播放链路解析。

新建 STRM 任务​

点击“新建任务”,在同一行选择任务类型并填写任务名称。切换类型会保留名称。生成播放入口时选择“生成 STRM”,再按下面填写:

字段怎么填写保存或运行后的影响
任务类型选择“生成 STRM”“扫描清理”“关联删除”或“媒体服务器联动”。显示对应类型的配置;已有任务的类型不能直接更改。
任务名称例如“网盘电影生成 STRM”。仅用于区分任务。
源存储、源目录选择真实影片所在的存储和目录,本地与远端均可。决定读取哪些影片文件。
输出存储、输出目录选择 STRM 文件的保存位置。Emby 或 Jellyfin 应扫描这个目录;不要与真实影片目录混用。
覆盖模式首次建议“存在则跳过(默认)”。决定遇到已有 STRM 时如何处理。
处理 BDMV来源中有蓝光原盘目录时才考虑开启。开启后会把这类目录一并纳入生成;普通影片目录保持关闭即可。
排除关键词每个关键词单独添加。文件名(不含扩展名)包含任一关键词时跳过生成,不区分大小写。
调度方式选择手动、定时或目录监控。决定任务何时运行。

覆盖模式​

选项会发生什么
存在则跳过(默认)目标已有同名 STRM 时不改动。适合首次生成和日常增量运行。
差异时覆盖(不备份)新旧正文不同时,替换同名 STRM,不保留旧正文备份。
差异时覆盖(备份旧文件)新旧正文不同时,先备份同名 STRM,再写入本次结果。

新旧正文相同时,选择覆盖也可能跳过。“备份旧文件”不是为整个 STRM 目录做备份,更换规则前仍建议保留独立的目录副本。

保存任务后还要点击“运行”才会开始。定时执行可填写时间,例如 0 2 * * * 表示每天 02:00;目录监控支持本地存储和 CloudDrive2。CloudDrive2 先观察目录变化,再核实文件是否可读,不能把它当成本地文件监听。

手动、定时任务会一边发现影片,一边为已经确认来源和输出位置的文件生成 STRM,这叫“就绪即处理”。存储必须先读完整个目录才能确认范围时,仍会等待。后续扫描失败不会删除前面已经生成的 STRM。

监控任务先核对本轮范围。运行状态和取消边界见任务运行与结果核对。

蓝光 BDMV 选项​

“处理 BDMV”控制是否纳入蓝光目录中的媒体片段。输出会避开原始 BDMV 保留目录名,防止媒体服务器把 STRM 目录误当成真实原盘。它不把多个片段合成一个文件,也不代表支持原盘菜单、播放列表或分支选择;应在实际媒体服务器与播放器上单独验证。

统一播放入口​

本地和网盘来源均生成 Mediora 播放入口。媒体服务器扫描输出目录后,通过 Mediora 媒体代理获取视频;网盘来源按提供方解析实际地址,本地来源由 Mediora 读取文件。播放期间 Mediora 和对应来源必须可用。

旧任务和历史中的目录映射配置可以继续读取,下一次生成统一采用 Mediora 入口。旧 STRM 文件需要选择一种“差异时覆盖”模式才会转换;“存在则跳过(默认)”仍保留已有文件。来源实例或业务根已变化时,不能仅凭同名路径继续使用旧来源。

网盘来源恢复​

新生成的网盘 STRM 会保存生成时的存储名称。重建配置后,只有原账号配置已不存在,且当前恰好有一个同类型、同名称、同业务根、已连接并核实账号的存储时,才会尝试自动恢复来源;文件中已有的定位信息仍须核对。原账号只是停用、同类型存储重名、业务根或文件定位信息变化时,不能借此继续播放。自动恢复不依赖原生成任务或历史,也不改写 STRM。

旧文件没有保存名称、或需要手动选择当前网盘时,在“云盘管理 → 存储类型”点击“修复 STRM 网盘绑定”。选择存放 STRM 的目录或媒体服务器中的媒体库,选择当前网盘,检查实际文件并确认修复;影音优化的来源检查报告也提供此入口。修复只支持同类型、同业务根范围,只有路径信息的旧文件还需要单独确认,不能据此迁移文件或更换业务根。

可以在修复记录中撤销本次关联;撤销不改写原 STRM,也不删除影片。原账号配置仍存在时先恢复原连接,无须另建修复关联。已有文件需要补充名称时,应选择一种“差异时覆盖”模式重新生成;“存在则跳过(默认)”会保留原正文。

手动生成​

点击“手动生成”可只处理一部影片或一个小目录。表单与长期任务相同,但不需要任务名称和调度方式;适合先检查输出文件的位置和内容。

生成前请确认两件事:

  1. 源目录是真实影片所在的位置,不是旧 STRM 目录。
  2. 输出目录能被 Emby 或 Jellyfin 扫描;输出在远端时,还需由你把同一目录可靠地提供给媒体服务器。

第一次建议只选择一个目录并生成 1–3 个 STRM,确认媒体服务器能看到条目、代理实例能正常响应,再扩大到完整媒体库。输出目录中已有同名 STRM 时,是否更新由“覆盖模式”决定,不能仅凭重新运行任务推断它会覆盖。

历史失败行可以“重试”,按当时的设置再执行一次。“重新生成”会以历史快照预填规则,可调整是否处理 BDMV、排除关键字和覆盖方式;来源与输出位置固定为那次执行的设置。批量操作也分别提供两个入口,已取消的行不能快速重试。

历史工具栏的“按轮次”显示本轮进度;运行中可以暂停、恢复或取消。扫描尚未结束时,文件总数还会增加。生成、扫描清理、关联删除和媒体服务器移除报告统一出现在历史记录中,可按类型、状态或名称筛选;每行提供相应的重新生成、查看报告或查看结果入口。批量重试、重新生成和删除记录只用于生成历史。

让媒体服务器播放​

  1. 让 Emby 或 Jellyfin 扫描 STRM 输出目录。
  2. 在“播放服务 → 媒体代理”中选择该媒体服务器,创建并启用代理实例。
  3. 在 Emby / Jellyfin 客户端使用该代理实例地址登录,打开影片测试播放。

所有新生成的 STRM 都按上述步骤接入 Mediora 媒体代理。请测试实际播放、拖动进度和重新打开,不能只根据媒体库出现条目判定成功。

如果新生成的条目没有显示,先让媒体服务器刷新对应媒体库;如果显示但无法播放,再检查媒体代理、来源存储和原始文件是否仍可访问。

如果媒体服务器能看到影片但打开后失败,按下面顺序排查:

  1. 代理实例是否已启用,媒体服务器访问的端口是否真的映射并可达;
  2. STRM 中记录的来源存储是否仍存在,账号是否仍有权限;
  3. 原始文件是否被移动、删除或改名;
  4. 如果配置了分流或降级,先暂时停用复杂规则,确认基础播放链路正常后再逐条增加。

删除任务只删除任务规则,不会删除已经生成的 STRM 文件。需要处理已登记产物时,可新建扫描清理或关联删除任务,先核实报告再清理。

扫描失效 STRM​

点击“新建任务”,类型选择“扫描清理”,选择 STRM 所在存储和目录。首次使用保留“仅生成扫描报告”,在历史行打开报告检查逐项原因,再决定是否开启清理。可手动运行,也可配置定时扫描。

扫描只检查 Mediora 已登记的 STRM。来源暂时不可访问、存储身份不符或文件身份不完整时会显示“暂不可核实”,不会据此清理。只有在来源身份、原父目录健康状态和完整目录清单均可核实时,持续缺失的文件才进入观察;至少经过两次独立扫描、间隔至少十分钟才可成为候选。远端还需按稳定文件身份核对,避免文件换位置后被当作删除;期间来源恢复会取消旧观察。

清理使用可恢复的文件隔离:移动到被处理文件原目录内的 .mediora-strm-quarantine,每项使用独立位置并保留原文件名;运行明细显示实际位置。没有永久删除和自动清空隔离区功能,不会复制影片后再删除原件,也不会递归清空目录或覆盖隔离区已有文件。

存储当前处理边界
本地存储对已核实身份的普通文件执行同一文件系统内的隔离;不处理符号链接、目录或无法核实的文件。
绿联远程存储经绿联连接的文件隔离能力处理;存储或底层挂载只读、身份不足时保留文件。
115 Cookie / 115 Open按稳定文件身份执行提供方原生移动,并独立核对结果;不借用普通删除权限推断可清理。
CloudDrive2自动隔离保持报告模式。现有移动接口仅按路径执行,无法把动作绑定到原文件身份,不能安全隔离可能已被替换的对象;普通文件管理、播放和 STRM 生成不受此限制影响。
其他驱动未证明稳定身份、原生移动或结果恢复语义时保留报告,明细说明具体原因;例如 OpenList / WebDAV 缺少可靠对象身份,123 的同名冲突保留语义尚未核实。

上表描述当前开发代码的能力边界,不代表所有网盘、设备和安装环境均已完成实际验收。来源缺失证据与目标可隔离能力会分别核实,某个驱动能移动文件不等于可仅凭路径缺失自动清理。

关联删除与结果核对​

新建任务时选择“关联删除”。在该任务菜单点击“运行报告”,手动选择产物,再运行报告。核实清单后点击“清理本次已核实项”,确认实际条目;提交后显示本次实际清理结果,历史中保留报告和结果。任务可设置宽限时间和单轮上限。上限不足时先缩小范围重新扫描,不能只处理屏幕上看得到的前几项。

默认只隔离 STRM,保留真实影片。如确需同时处理来源,须在任务中明确开启并指定来源范围。来源仍被其他有效产物、媒体服务器关联或正在运行的生成任务引用时会保留,并在结果中说明。旁边的字幕、NFO、海报及目录不会随影片一并处理。

运行中可以暂停、恢复或取消;已发送的当前文件动作先完成核对。来源和 STRM 分别显示真实处理阶段,不能只看任务总状态判断两者都成功。分页明细可继续“加载更多明细”。

结果尚未核实时,系统会按原预算自动检查原路径与本次固定隔离位置,显示后续安排;未确认的动作继续保留保护。自动核查结束后仍未完成的,可以在详情中“再次检查结果”;没有未决动作且原授权仍有效时,可“重新尝试未完成项”。实际清理授权在宽限期结束后三十分钟到期,过期后须重新运行报告并确认。不要先手动覆盖、移动隔离文件,否则系统可能无法核实原动作。

单项重新生成与存量接管​

清理后的目标会受生成保护。需要重新生成时,在对应历史行点击“重新生成此项”,检查当前来源、精确目标和已有文件的处理方式,再确认。系统直接执行这一项,并在原记录中显示受理状态与生成结果;其他任务继续受到原生成保护。目标已有相同内容时保留,需替换时先保存备份。

“重新生成此项”不会把隔离影片自动移回原位。来源也已隔离时,先根据运行明细人工恢复或另行准备正确来源,再重新核实;隔离区内的文件本身仍保留。

旧记录缺少可核实身份时可在对应历史行点击“核实接管”。系统先读取实际 STRM 和影片、检查播放绑定,再显示确认;接管会建立新的产物代次,不把旧路径直接当作当前文件。无法核实或绑定不符时保持报告。

媒体服务器联动​

支持 Emby 和 Jellyfin。先在系统中保存对应的媒体服务器连接,再点击“新建任务”,类型选择“媒体服务器联动”并填写名称。在同一表单选择服务器和媒体库,配置媒体服务器路径到 Mediora STRM 目录的对应关系。移除记录显示在统一历史中,也可按“媒体服务器联动”筛选。服务器中的 STRM 根目录可填写 POSIX、Windows 盘符或 UNC 绝对路径,例如 /media/strm、C:\STRM、\\nas\media\STRM;Mediora 对应目录仍按所选存储的业务根使用 /STRM 等路径。禁止相对路径、.. 或控制字符,Windows 设备的实际目录映射仍需在目标环境验证。

选择接入方式​

接入方式适用服务器使用前准备与边界
助手完整清单(推荐)Emby、Jellyfin在对应服务器独立安装 Mediora 助手,并在助手设置中明确启用删除事件采集。主产品使用已保存的媒体服务器连接读取助手的持久事件,不需要填写 Webhooks 地址或接收凭证。
Emby 原生 WebhooksEmby需要可用的 Webhooks 通知服务,按保存结果页填写地址和单次接收凭证。电影、单集逐项核实;季、整剧父事件目前只报告。

新建联动默认选择助手方式;已有接收端未设置接入方式时,继续使用原 Webhooks 配置,不会被自动切换。Jellyfin 只提供助手方式。两个助手分别安装和保存事件,不能用 Emby 助手替代 Jellyfin 助手;删除联动需使用 1.0.5 或更新且支持删除事件采集的助手,旧版不会自动具备此能力。安装方法可参考媒体服务器助手。

助手会尝试在本次原生删除开始前固定精确影片清单,只有事后确认移除、清单完整的事件才可进入清理核实;部分失败、清单不足或宿主入口不兼容时保持报告。持久事件可分页读取,主产品短时离线不会靠“媒体库少了一项”猜测补删。事件采集默认关闭,启用采集本身不授权清理。

“执行方式”默认是仅接收报告。这会读取事件、核对已登记产物并展示原因,不会清理影片或 STRM。媒体项移除可能来自扫描、外部文件变化或原生删除入口,不能仅凭事件名称或用户字段认定是用户主动点击删除。助手状态、采集开关或协议不满足时,页面显示实际原因;选择了清理模式不等于助手已经可执行。

配置按工作流清理​

  1. 新建并保存“关联删除”手动任务,明确允许清理的 STRM 目录、单轮上限、宽限期,并选择允许清理已核实条目。真实影片默认保留;只有明确开启同时处理来源并指定允许来源目录,才可能隔离影片。
  2. 在“媒体服务器联动”表单选择连接和接入方式,再选择“按已保存工作流自动清理”,核对列出的媒体库和目录映射,并勾选实际清理确认。保存联动。
  3. 助手方式先确认对应助手已安装、协议可用且事件采集已启用。保存结果页显示“助手持久事件读取”和实际状态;无需复制回调凭证。Webhooks 方式则按下节完成通知配置。
  4. 到工作流添加“媒体项删除”条件,选择此联动、媒体库和媒体项类型;添加“STRM 管理”步骤,引用前面保存的关联删除任务,保存并启用工作流。该条件不能引用普通 STRM 生成任务。
  5. 回到联动保存结果页或任务菜单,点击“核实当前关联”,完成实际媒体项、产物及工作流授权的盘点。先保存并启用工作流,再核实关联,之后发生的新事件才可按本次授权执行。

更改关联删除任务、工作流、联动配置,或启停助手采集后,需要重新核实关联;任务改回原配置也不会恢复旧授权。助手每次启动都会更换删除授权代际,因此普通重启、重装或事件资料恢复后,同样需要重新核实。

原生 Webhooks 的迟到旧事件或缺少可信时间的输入保持报告。助手使用事先核实的持久序号,主产品短时离线后可继续读取同一代际中获准的新事件,不凭接收时间给旧事件补授权限。身份不足、范围超限或清单不完整时也只报告,不改为按整个目录清理;执行前助手不可连接、停用或换代时,不发送新的文件隔离动作。

电影和单集需要唯一且已核实的叶子关联。助手提供的季、整剧事件还必须包含本次删除前固定且事后确认的完整叶子清单,不能用旧盘点加相同数量代替。Emby 原生 Webhooks 的季、整剧父事件目前保持报告;如另外收到对应单集事件,仍按各单集分别核实。“父级范围不完整”不等于所有电影和单集都不可用。重复事件不会重复处理同一代产物,多版本关联也不会扩大为整个目录。

保留旧 Webhooks 配置​

此节仅适用于 Emby 原生 Webhooks。回调凭证仅在创建或轮换成功后显示一次,关闭结果页前请保存,并交给对应 Emby 的 Webhooks 配置。编辑并保存会轮换凭证,需要同步更新通知;停用或轮换后旧凭证失效,已接收历史保留。保存成功后即使列表刷新或关联核实失败,也可在结果页重试核实,凭证仍保留;无需重复创建联动。

本次 Emby 4.10.2 测试服务器未提供可用 Webhooks,尚未收到其原生回调。两个助手已分别在独立 Emby 4.10.1.0、Jellyfin 10.10.7 宿主验证电影、单集、季和整剧的原生删除;主产品另有协议与临时文件清理验证。用户自己的服务器、插件版本、NAS/云盘和播放器仍需按实际环境核实,不能将隔离宿主结果视作所有设备均已验收。

安装备份恢复后​

恢复旧安装备份会禁用旧回调凭证、冻结清理授权并重置失效观察。备份里尚未执行的记录,也可能已经在备份之后实际完成,因此必须先只读核对实际文件;未决项会暂时保护受影响的存储根,避免其他任务改写证据。

结果明确后,重新保存清理规则、核实助手状态或轮换 Webhooks 接收凭证,并建立新的报告。“重新生成此项”只处理本次选定的 STRM,不会恢复影片或续期旧删除授权。

容易搞错的地方​

容易搞错实际情况
以为 STRM 里是视频它只是一个很小的文本文件,记录播放入口;真实影片仍在原来的存储里。
以为能拿 mediora:// 链接给别人在别的播放器打开只能由 Mediora 管理的播放链路解析,不是通用直链。
源目录选了“已经有 STRM 的目录”源应是真实影片所在目录;只有旧 STRM 的目录不能代替原影片来源。
把输出目录和来源影片目录选成同一位置用独立目录保存 STRM,更容易核对、备份和清理;媒体服务器应扫描输出目录。
改了任务再运行,以为旧 STRM 会更新“存在则跳过(默认)”会保留已有文件;要更新需选择一种“差异时覆盖”模式。
删除并重建了同名存储,以为旧 STRM 还能播只能满足严格匹配条件(同类型、同名称、同业务根、唯一可用)时自动恢复,业务根变了就不行。
媒体服务器能看到条目就认为成功了必须实际播放、拖动进度、重新打开各试一次。
以为“处理 BDMV”能合成原盘它只是把片段纳入生成,不支持原盘菜单、播放列表和分支选择。

最佳实践​

三分法: 真实影片在某处,STRM 输出在一个媒体服务器能扫描到的目录,播放由媒体代理负责。三者在配置上要分开:

真实影片:/网盘/电影/xxx.mkv 或 /medias/电影/xxx.mkv
STRM 输出:/medias/strm/电影/xxx.strm
媒体服务器:扫描映射到同一份 STRM 输出的目录
播放入口:Emby 客户端连 Mediora 的媒体代理端口

以上是位置关系示意,不要求两个容器使用相同路径。例如,同一份设备目录在 Mediora 中可以是 /medias/strm,在 Emby 中可以是 /strm。关键是它们能读取同一份文件,而不是文件夹恰好同名;任务中的目录则按所选存储的业务根,通过选择器选取。

第一次生成:

  1. 手动生成,只选一个目录,产出 1–3 个 STRM;
  2. 在媒体服务器里确认能看到条目;
  3. 通过媒体代理入口实际播放一次,拖动进度条再关掉重开;
  4. 都正常后,把同一个目录建成长任务,覆盖模式用“存在则跳过(默认)”。

旧 STRM 迁移: 先停掉相关任务,选一个测试目录明确用“差异时覆盖(备份旧文件)”重新生成,验证能播放后再批量处理。备份文件可以留一份对照,确认无误后自行清理。