媒体代理
路径:播放服务 → 媒体代理。
媒体代理让 Emby 或 Jellyfin 播放 Mediora 生成的远端 STRM。开始前要完成三件事:添加可用的 Emby 或 Jellyfin、添加 STRM 对应的远端存储、生成少量 STRM 文件用于测试。
新建代理实例
点击“新建实例”,填写:
| 字段 | 怎么填写 | 影响 |
|---|---|---|
| 实例名称 | 例如“客厅 Emby”“异地 Jellyfin”。 | 只用于区分不同播放入口。 |
| 媒体服务器 | 选择在“系统设置 → 服务设置”中已添加并测试可用的 Emby 或 Jellyfin。 | 决定这个代理实例服务哪个媒体服务器。 |
| 代理端口 | 选择未被其他服务或代理实例使用的端口。 | 播放客户端需要能访问这个端口;端口不可用时系统不会自动换一个。 |
代理端口由你在这个实例中自行填写,通常可在 1024–65535 中选择,不能与 Mediora 页面端口相同。Docker bridge 网络下,Mediora 默认只映射页面端口 3000;还需要为你填写的代理端口增加独立的 TCP 映射,并确保媒体服务器和播放客户端能够访问。
Docker bridge 网络下映射代理端口
需要映射的是你在媒体代理实例的“代理端口”中填写的值。 页面能打开只说明页面端口可用,代理端口还需要单独映射。
下面假设你填写的是 8090,在安装页创建的 compose.yaml 中添加对应配置,保留原有的镜像、挂载和其他环境变量。8090 仅为示例;请把下方所有 8090 都替换为你自己填写的代理端口。
services:
mediora:
ports:
- '3000:3000'
- '8090:8090' # 两侧都替换为你在实例中填写的“代理端口”。
environment:
# 可选:限制代理端口范围;示例值也要替换,起止变量必须成对设置。
- MEDIA_PROXY_PORT_START=8090
- MEDIA_PROXY_PORT_END=8090
映射左侧是宿主机端口,右侧是容器端口,右侧必须与你在页面中填写的“代理端口”一致,建议两侧都使用该值。MEDIA_PROXY_PORT_START / MEDIA_PROXY_PORT_END 只限制页面可选范围,不会自动增加 Docker 映射;只使用一个实例时可以都设成自己填写的端口,需要多个实例时可设置连续范围,并为每个实例填写的端口增加映射。
修改后,在 compose.yaml 所在目录执行:
docker compose up -d mediora
docker compose ps mediora
确认端口列表包含自己填写的代理端口对应的 TCP 映射,再回到 Mediora 页面启用实例;按上面的示例填写 8090 时,会显示 8090->8090/tcp。单纯执行 docker compose restart 不会应用新增端口映射。 NAS 或 Docker 管理面板部署时,在容器设置中把“宿主机端口”和“容器端口”都填成你在代理实例中填写的端口,协议选 TCP,然后应用配置并重新创建容器。使用 docker run 时,同样按自己的端口添加 -p 映射并重新创建容器。
启用后,从媒体服务器或播放客户端所在的机器访问健康检查地址。下面仍假设你填写的代理端口为 8090,Mediora 安装机器的内网 IP 为 192.168.1.20;请换成实际地址和自己的代理端口:
curl -fsS http://192.168.1.20:8090/media-proxy/health
正常会返回 {"success":true}。连接被拒绝或超时时,先检查实例是否启用、端口映射是否生效,以及宿主机防火墙是否允许局域网访问该 TCP 端口。仅在容器内检查成功,不能证明其他机器可以连接。
如果已使用 host 网络,代理直接使用宿主机端口,无需 ports 映射,仍需确认端口未被占用且可以访问。媒体代理默认用于本机或局域网,不能把端口直接暴露到公网;外网播放的 HTTPS 入口设置见安全访问。
启用与状态
保存后的实例默认不启用。确认端口和媒体服务器都正确后,在实例详情点击“启用”。状态含义如下:
| 状态 | 表示什么 |
|---|---|
| 已停用 | 不接受播放请求,可安全修改媒体服务器或端口。 |
| 启动中 / 停用中 | 正在切换状态,稍等后刷新。 |
| 已启用 | 可以处理播放请求。 |
| 启动异常 | 查看页面提示,先检查端口、媒体服务器和来源存储。 |
基础播放方式
启用后,在 Emby / Jellyfin 客户端添加或修改服务器地址,使用Mediora 安装机器地址 + 该实例代理端口,再登录原媒体服务器账号。例如实例端口为 8090 时,客户端填写 http://192.168.1.20:8090;系统设置里的媒体服务器仍填写原服务器真实地址,不能填回代理自身。
直接通过原 Emby / Jellyfin 端口登录的客户端,请求没有经过这个代理实例。页面能打开、健康检查成功或服务器扫描到 STRM,都不能代替从代理入口实际播放。
115 和 OpenList 的 STRM 会按来源识别并解析播放地址;本地来源由 Mediora 读取文件流。日常需要保证:
- STRM 输出目录仍被 Emby 或 Jellyfin 扫描;
- 该 STRM 对应的存储仍然可连接;
- 播放客户端可以访问代理端口,Mediora 可以访问媒体服务器和来源存储。
旧文件中保存的直接路径不会自动转换。需要统一接入 Mediora 时,先对少量文件明确选择覆盖或备份后覆盖再生成,详见统一播放入口。
修改实例名称可以直接保存;想改媒体服务器或端口,必须先停用实例。删除实例只删除这项播放设置,不会删除影片或 STRM 文件。
分流规则(按需使用)
高级分流需要对应 Pro 权益及支持的来源。实例详情中“配置分流”可用时,可以为某个来源网盘指定替代播放路径。OpenList 基础代理可用,不代表也提供网盘原生秒传分流;没有规则时按来源播放。
| 字段 | 作用 |
|---|---|
| 分流名称、是否启用 | 便于区分和临时开关单条规则。 |
| 分流方式 | “同类型秒传”会把文件转存到同类型的目标网盘再播放;“跨类型同路径”会在另一类网盘查找同一路径的文件。创建后不能直接切换方式。 |
| 适用来源、目标网盘 | 选择规则从哪个网盘开始、要转到哪个网盘。页面会过滤不符合条件的目标。 |
| 数据源内优先级 | 数字越小越先判断;同一来源可能有多条规则。 |
| 目标专用根目录、目标保留时间 | 仅“同类型秒传”出现。指定 Mediora 临时转存文件使用的专用目录和保留时长;不要使用网盘根目录。 |
| 省份、运营商、IP / CIDR、路径通配 | 可选的命中条件,每行一项。不同类别同时满足才命中;同一输入框内任一项匹配即可。全部留空时,该来源的所有播放请求都可使用这条规则。 |
不需要按地区、网络或路径区分时,不必创建分流规则。规则排错会影响播放去向,建议先保留一条简单规则测试。
同类型转存失败时可以按提示回到来源播放;跨类型同路径规则命中后,目标缺失可能直接返回空结果,不保证继续遍历其他路径。两端同名文件也不代表内容完全相同,修改目标后系统会重新核对。
降级规则(按需使用)
降级规则用于来源遭遇支持的风控或受限情况时,按规则尝试替代来源,不是所有播放错误的通用重试。每个来源最多一条。
| 字段 | 作用 |
|---|---|
| 适用来源、降级目标 | 可选择其他独立网盘账号(支持同类型),或本地文件夹;以页面筛选结果为准。 |
| 来源目录前缀、目标对应目录 | 目标为本地文件夹时,用于映射两端不同的目录前缀。页面会显示预览。 |
| 是否启用降级规则 | 关闭后保留规则但不自动切换。 |
如果无法播放,先检查实例是否启用、端口是否可达、媒体服务器连接是否正常以及来源存储能否打开原文件;不要一开始就添加复杂分流或降级规则。更多处理方法见常见问题。
临时转存与清理
同类型转存会向目标专用目录写入真实文件并占用网盘空间。保留时间用于安排清理,活跃播放还可能延后清理;停止或删除分流规则不会立即撤回所有已发生的转存。
查看实例中的清理提示和记录。来源账号、目标文件身份或路径无法核实时,系统会保留记录等待处理;不要仅凭文件名去批量删除目标目录。需要人工处理时先确认没有播放、核对具体对象,并保留其他用途的文件。