视频转码
ffprobe 抽关键帧、IDR 对齐切点、-ss 精确 seek;分片并行转码后 concat demuxer 无损拼接,并与单机基线实测对比。
下面是「切片 → 派发 → 校验 → 合并 → 结算」的 SVG 演示。它不连后端、不需要登录, 勾选故障注入还能看到节点掉线后租约回收重派的全过程。
动画与事件日志为流程示意(故障分支按同一格式模拟);加速比、墙钟与容错结论取自仓库 README 及
scripts/fault-test.sh 的实测记录。
切片单位和执行命令不同,但「切片 → 派发 → 校验 → 合并 → 结算」是同一套。
ffprobe 抽关键帧、IDR 对齐切点、-ss 精确 seek;分片并行转码后 concat demuxer 无损拼接,并与单机基线实测对比。
按帧切片,节点回传 PNG 压缩包,Broker 排序后由 ffmpeg 编码成片;进度从 Fra: 行真实解析。
解析剪辑点按秒切片,本地 concat;编码参数不一致时自动转码兜底,接缝不花屏。
OpenAI 兼容 API,按模型做低价路由、token 计量与 90/10 分成;上游可接 llama.cpp / vLLM / Ollama。
卖方发布配置,买方下单后 Agent 用 QEMU 拉起镜像、生成 cloud-init、按 IPv6/端口映射接入,按秒结算与自动停机。
上传源码 zip,节点解压执行构建命令,产物打包回传;按实际墙钟分钟计费,失败不结算,带能力匹配与用户白名单。
编码器交给 ffmpeg,平台真正要解决的是「谁来做、做完算不算数、跑了半路掉线怎么办、钱怎么记」。
Worker 用 HTTP 长轮询领任务,家庭 / 宿舍机器在 NAT 后没有公网 IP 也能接入;启动时自检 CPU、内存、显卡与实际可用编码器,按白名单上报能力。
score = 实测吞吐 × 信誉 × (池均价 ÷ 单价)^CostWeight ÷ (1 + 占用)。派发即占槽,并把当时的报价冻进分片,之后改价不影响已在飞的任务。
按最贵可行节点保守预扣;每片经双 SHA-256 校验一致后按视频秒数 × 冻结价结算,任务结束退还差额。按节点与按账户两套贡献口径分开记账。
25s 无心跳立即回收分片,重派时把原节点写进该分片的 Excluded 名单;老节点迟到的回传一律 409,不会二次结算。SQLite write-through,重启后在飞分片自动重派。
Windows 桌面、Android、微信小程序、HarmonyOS 与算力节点程序,全部由 GitHub Actions 构建并发布到 Releases。 安装包托管在 GitHub,不走 Workers 静态资源——那边单文件上限 25 MiB,装不下自包含桌面端。
v* 标签即会自动编译四端产物并发布。眼下也可以从当前线上 Broker 直接取节点程序。
打开 Releases 页面
StarStack.Desktop.exe,双击即用、无需 .NET 运行时,约 70–90 MB。内嵌 React 控制台,不依赖远程网页。https://starstack.run,可在登录页改服务器地址。touristappid 是测试号;正式发布需域名备案与合法域名配置。rawfile/web。每个 Release 附 SHA256SUMS.txt,覆盖全部二进制、安装包与源码包。节点程序跑起来只需一个地址:
starstack-worker --id dorm-pc --server https://starstack.run --slots 2
更省事的方式:登录控制台 →「一键提供算力」→ 下载启动脚本,填单价与槽数后双击,节点会自动认领。
apps/desktop/build.cmd → out/StarStack.Desktop.execd apps && npm run apk,或 apps/android/apk.shapps/miniappapps/harmony(不是仓库根目录)四端默认共用同一套 apps/mobile React 产物与后端接口,详见仓库 apps/README.md。
# 1. Broker + 2 节点 + 60s 测试片 + 提交任务
bash scripts/run-demo.sh
# 浏览器打开 http://127.0.0.1:8787/
# 2. 故障注入:跑到一半杀掉一个节点,看分片被回收重派
bash scripts/fault-test.sh
# 3. 端到端验收(注册→认领→结算→账单→越权检查,11 步)
bash scripts/smoke.sh
# 4. 调度与结算单元测试(不需要 ffmpeg)
go test ./internal/hub/