FluxDown 受管组件 — ffmpeg、yt-dlp 按需下载自动 jail 化
为什么需要受管组件
ffmpeg 和 yt-dlp 是下载后处理的标配工具——DASH 下载完音视频需要 ffmpeg 合并、某些视频转码或去水印需要 ffmpeg、yt-dlp 用来解析复杂视频页。但让用户手动装这俩、配 PATH、应对版本更新、处理系统权限问题……太折腾。
FluxDown 的「受管组件」机制把这事儿包了:
- 在「设置 → 扩展 → 受管组件」里点「安装 ffmpeg」「安装 yt-dlp」。
- FluxDown 从可信源下载指定版本到自己管理的目录(比如
%APPDATA%\FluxDown\managed\下)。 - 下载完自动校验 sha256 哈希。
- 引擎内部按需调用——DASH 自动合并时、插件调用时都直接用受管版本。
- 不污染系统 PATH,不影响你已有的 ffmpeg/yt-dlp。
ffmpeg — DASH 自动合并的刚需
FluxDown 下载 DASH 流媒体时,如果系统里有 ffmpeg 就自动做 stream copy 合并(不重编码,几秒钟)。如果没 ffmpeg,音视频各留一个文件。
受管组件装完后 DASH 自动合并就开箱即用了——不用手动装 ffmpeg 到系统里。
yt-dlp — 视频页解析
yt-dlp 是社区最通用的视频下载解析工具。FluxDown 插件系统里的 Resolver 可以直接调用受管 yt-dlp 来把复杂视频页转换成直链——插件不用自己实现解析逻辑,调 yt-dlp 就行。
版本与安全
| 问题 | FluxDown 的处理 |
|---|---|
| 下载源 | 固定源(GitHub Releases),不走第三方镜像 |
| 版本 | 引擎锁定一个经过测试的版本号,不随便跟随 latest |
| 哈希 | 每个版本下载后校验 sha256 |
| 升级 | 在设置里手动触发,或允许自动升级 |
| 隔离 | 放在自己的 managed/ 目录,不进系统 PATH |
| 卸载 | FluxDown 卸载或手动删目录即可,不影响系统其他工具 |
Jail 化调用
虽然受管组件是原生二进制,但引擎调用时仍然做了隔离:
- 只能访问它的安装目录和指定的输出目录(不会读到其他系统路径)。
- 调用参数由引擎构造,插件无法传任意 shell 参数。
- ffmpeg 的
-i输入文件只能是 FluxDown 下载出来的文件路径(经过白名单)。
这避免了恶意插件通过受管组件执行危险命令。
手动管理
如果你已经在系统里装了 ffmpeg/yt-dlp,FluxDown 也能自动发现并使用——但建议用受管版本,这样 DASH 合并和 yt-dlp Resolver 在 FluxDown 各形态(桌面/Server/NAS)上行为一致。