一个容器就搞定了strm生成和302转发
安装 Docker和Docker Compose
curl -fsSL https://get.docker.com | bash -s docker
apt install docker-compose -y
方案一:qmediasync
介绍
- 默认用户名 admin,密码 admin123
- emby代理端口默认:http-8095 https-8094
- 支持的同步源:
CD2本地挂载
NAS系统的远程挂载
OpenList
115开放平台
核心功能:
STRM生成
元数据下载
元数据上传
播放链接解析
emby外网302 - 特点:
免费
支持添加多个115或者openlist账号
如果进行了本地刮削,在同步时会自动将元数据上传到网盘
内置emby的外网302(直链)播放,使用8095端口代理emby
内置115下载链接代理,用于解决部分客户端因为UA问题导致不能播放的问题(下载链接代理和emby外网302播放冲突,只能选其一)
115使用开放平台接口,不担心风控,不担心暴毙,且做了对应的性能优化,3W多文件的库全量大概10分钟,增量30秒左右可以完成同步
同步时按照目录划分,可以添加多个不同或者同类型的同步目录
使用定时任务进行同步,最小间隔半小时,如果内容变更不频繁可以关闭某个同步目录的定时任务
每次同步时会检查元数据的大小,如果网盘和本地文件大小不同,则会下载网盘文件到本地
支持电报通知
支持windows,linux,macos可执行文件直接运行
支持docker镜像运行
支持amd64和arm64架构 - 缺点:
由于使用开放平台接口,所以每次同步其实都全量查询了115文件列表,所以速度天生不可能快
由于速度不可能快,所以增加了缓存,所有增量同步都是基于缓存的;所以导致的结果是无法感知到115的文件夹重命名或者移动,当然不影响文件的新增和改动
openlist和本地挂载模式没有办法优化所以同步效率不行,但是可以借此支持更多网盘。
不开源
Docker Compose安装
- 创建
docker-compose.yml
文件(见下方示例)
version: "2.3"
services:
emby:
volumes:
- ./config/emby:/config
- ./strm:/data
devices:
- /dev/dri:/dev/dri
ports:
- "8096:8096"
networks:
- all
environment:
- TZ=Asia/Shanghai
# 推荐:省略 UID/GID=0,以非特权用户运行
# user: "1000:1000" # 如果需要指定用户,请使用非0的ID
restart: always
container_name: emby
image: amilys/embyserver:4.9.0.46
qmediasync:
image: qicfan/qmediasync:latest
container_name: qmediasync
restart: unless-stopped
ports:
- "12333:12333"
- "8095:8095"
networks:
- all
volumes:
- ./config/qmediasync:/app/config
- ./strm:/media
environment:
- TZ=Asia/Shanghai
networks:
all:
driver: bridge
- 运行以下命令:
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
目录映射说明
容器内路径 | 宿主机路径 | 说明 |
---|---|---|
/app/config | ./config/qmediasync | 配置文、数据、日志目录 |
/media | ./strm | 存放 STRM 和元数据的目录 |
环境变量
变量名 | 默认值 | 说明 |
---|---|---|
TZ | Asia/Shanghai | 时区设置 |
端口说明
- 12333: Web 服务端口
- 8095: Emby代理接口,http协议
- 8094: Emby代理接口,https协议
使用教程:
进入:系统设置-网盘账号管理
添加一个网盘账号,比如115类型
添加成功后,该账号会出现在列表中,然后点击列表中该账号卡片右下放的授权按钮
这是会打开二维码扫码弹窗
打开115客户端扫码屏幕上的二维码完成授权
这时会自动关闭弹窗并刷新账号列表,新添加的账号会显示为:已授权
打开 系统设置-STRM设置,根据自己的需要修改其中的设置,如果不明白也可以什么都不改,默认值都是可用的。
打开 同步-同步目录,然后添加右上方的 添加同步目录 按钮,如图进行添加
添加完成后,新添加的同步目录会出现在列表中,如图:
如果需要关闭或打开定时任务直接点击卡片的开关即可
如果开启了定时任务,可以等待自动同步;或者手动点击全量同步
开始同步后,可以打开 同步-同步记录 来查看同步状态,如图:
如果有需要可以配置302
emby的配置就很简单去媒体库把/data这个目录刮削就行了,这里就不展开说了
方案二:SmartStrm
一个媒体库 STRM 文件生成工具。
和 Emby 优雅配合,媒体资源丝滑入库,支持 302 直链播放,支持同步删除远端文件。
配合 Quark-Auto-Save/CloudSaver, OpenList, Emby 力求即存即看
介绍:
- 支持 OpenList、WebDAV、Quark、115、天翼云盘 等网络驱动
- 任务管理
- 基于 Crontab 的定时任务
- 单个任务独立日志
- 任务工具箱:内容替换、一键清理
- STRM 生成
- 目录时间检查
- 增量/同步生成:可清理远端已删文件
- 指定生成的媒体后缀、文件大小阈值
- 指定复制的文件后缀
- Webhook
- 联动 QAS、CloudSaver 转存即触发任务
- 配合油猴脚本,网页转存即触发任务
- Emby 中删除媒体,同步删除远端文件
- CloudDrive2 文件变更通知实时触发任务 (Pro)
- 粗糙但极其友好的管理页面
- 存储浏览、批量重命名
- 任务日志查看
- 一站式 Emby Jellyfin 302 直链播放 (Pro)
Docker Compose安装
- 创建
docker-compose.yml
文件(见下方示例)
version: "2.3"
services:
emby:
volumes:
- ./config/emby:/config
- ./strm:/strm
devices:
- /dev/dri:/dev/dri
ports:
- "8096:8096"
networks:
- all
environment:
- TZ=Asia/Shanghai
# 推荐:省略 UID/GID=0,以非特权用户运行
# user: "1000:1000" # 如果需要指定用户,请使用非0的ID
restart: always
container_name: emby
image: amilys/embyserver:4.9.0.46
smartstrm:
image: cp0204/smartstrm:latest
container_name: smartstrm
restart: unless-stopped
ports:
- "8024:8024"
- "8097:8097"
networks:
- all
volumes:
- ./config/smartstrm:/app/config # 挂载配置目录
- ./logs:/app/logs # 挂载日志目录,可选
- ./strm:/strm # 挂载 STRM 生成目录
environment:
- PORT=8024 # 管理端口,可选
- ADMIN_USERNAME=admin # 管理用户名
- ADMIN_PASSWORD=admin # 管理用户密码
- TZ=Asia/Shanghai
#- LICENSE= #购买付费pro服务可以填写凭证
networks:
all:
driver: bridge
- 运行以下命令:
# 启动服务
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
SmartStrm 配置详解
SmartStrm:http://宿主机IP:8024
Emby:http://宿主机IP:8096
1)开启 302 代理
系统设置 → 302 代理
服务端口:8097
媒体服务器地址:http://192.168.x.x:8096 这里填 emby 宿主机 的地址
需要 emby 外部播放器按钮可打开
重要: Emby 播放器需要通过代理端口 8097 访问,而不是直接访问 8096。
2)配置 STRM 规则
- 媒体后缀:mp4,mkv,mov,avi (可根据需要添加)
- 大小阈值: 建议 >= 20 MB 以排除过小的文件。
- 生成根目录:/strm (必须与 Emby 容器的映射路径一致)
- SmartStrm 地址: 填写 http://宿主机IP:8024
3)添加存储(夸克)
- 存储管理 → 添加存储
- 驱动:夸克网盘
- Cookie:浏览器登录后 F12 复制整段 Cookie 粘贴
- STRM 模式:智能回落(Pro)
创建任务并生成 STRM
1)任务管理 → + 添加任务
- 存储:选择 quark
- 路径:选择需要同步的文件夹(如 /来自:分享/电影、/来自:分享/电视剧 等)
- 定时:0 0 *(每天 00:00),或手动 “运行”
2)生成位置
- 容器内:/strm/任务名
- 宿主机对应:./strm/任务名
配置 Emby 媒体库
- Emby 后台 → 媒体库 → 添加
- 类型(电影 / 电视剧 / 音乐)
- 文件夹路径:容器内 /strm/任务名
- 保存并扫描刮削
- 排查:如库为空,确认已生成 .strm、路径映射一致、大小阈值不致过滤
播放验证
为了验证 302 直链播放是否成功,请确保您的播放器(如:TV Box)或客户端是通过代理地址 http://宿主机IP:8097 访问 Emby 服务器
可以尝试拖动进度条,如果是秒播且视频链接是 SmartStrm 的地址,观察日志是否命中,飞牛是否有高速网络波动来判断配置是否成功了!您现在可以尽情享受由夸克网盘直接提供的极速流畅的观影体验,无需再担心本地服务器的上行带宽瓶颈
高级操作
Quark-Auto-Save自动转存资源并 Emby 入库
Quark-Auto-Save 是一个强大的自动化工具,可以实现资源的自动转存和 Emby 入库,大大简化了资源管理流程,追番神器!
SmartStrm 插件配置:
webhook:http://192.168.x.x:8024/webhook/d74dc...
strmtask:国外动画,电视剧集,国漫等 (对应 SmartStrm 的任务名称)
xlist_path_fix:不用alist或者openlist这里不用填
Emby 插件配置:
token:88e7b11df00c47bd91... (Emby API Token)
企业微信推送:
Cloud Saver 手动转存资源并 Emby 入库(手动推送)
适用场景:临时 / 单次保存分享资源,保存后立即触发 SmartStrm 生成 STRM,并立刻让 Emby 入库,无需等待自动任务。
1)扩展 → 新建自定义推送(Webhook)
- Cloud Saver 侧边栏 → 扩展 → “+ 新建自定义推送”
- 参考下述配置(与截图一致):
- 接口地址(SmartStrm Webhook):
示例:http://192.168.x.x:8024/webhook/ 你的 WebhookToken
请求类型:POST
请求体格式:JSON
触发延迟时间(秒):1 - 字段(新增三项):
event:cs_strm
savepath:/{savePath}/{shareTitle}
strmtask:电影,电视剧,国漫,国外动画 - 保存后启用该推送卡片。
2)在资源卡片发起 “保存后推送”
进入 Cloud Saver 资源列表,点选要保存的条目。
在弹出的 “选择保存目录” 窗口中:
选择网盘保存路径(如:/ 根目录 / 来自:分享 / 电影)。
右下角选择 “保存后执行推送 → 夸克网盘”(自定义名称,见下一节配置)。
点击 “保存” 开始转存并等待推送执行
可以看到保存并推送的时间是 14:30