身份与权限
多角色模型 + 库级 ACL;管理端与用户端权限分离;OAuth 客户端凭证支持第三方系统对接,令牌可撤销。
媒体处理采用成熟引擎,自研部分聚焦任务调度、缓存治理与授权控制。
| 后端 | Go 1.25+ · Gin · 统一任务控制面 · 资源调度器 |
| 前端 | React 19 · TypeScript · Ant Design 6 · Vite 8 |
| 媒体引擎 | FFmpeg / FFprobe · Shaka Packager |
| 数据存储 | SQLite · PostgreSQL · MySQL · 达梦 DM8 · 金仓 KingbaseES(方言抽象层统一) |
| 缓存与协调 | 本地文件缓存 · Redis(可选,用于分布式转码与调度) |
| 鉴权 | JWT · OAuth 客户端凭证 · Bearer / Query Token 双模式 |
| 部署 | Windows / Linux / macOS / Docker,默认端口 8200 |
| 接口 | REST API(JSON)· Webhook 回调 · 嵌入播放器 |
下表列出常用指标及其统计边界,验收时可据此统一口径。
| 指标 | 数值 | 统计边界 |
|---|---|---|
| 起播时延(热态) | < 1 s | 服务端收到播放清单请求 → 播放器完成首帧渲染;切片已命中缓存或预热产物 |
| 起播时延(冷启动) | < 3 s | 同上,但需现场生成首个分片,不含首次刮削与整片转码 |
| 集群任务分发延迟 | ≤ 500 ms | 协调者决策完成 → 目标节点收到任务 |
| 协调者故障转移 | ≤ 60 s | 原协调者失联 → 新协调者接管并继续派发 |
| 单机并发转码 | 2(GPU)/ 4(CPU) | 默认值,可按硬件与业务调整;播放通道独立计 |
| 播放密钥有效期 | 15 min | AES-128 密钥签发后的可用时长,过期需重新申请 |
| 缓存沉降 / 回收 | 7 天 / 30 天 | 闲置 7 天转沉降层,30 天为硬上限;删除保留 24 小时软删宽限 |
| 元数据一致窗口 | 5 s | 写入完成到各读取路径可见的最长间隔 |
| 预转码试用额度 | 10 个文件 | 未携带能力位时的试用上限,超出需开启授权 |
上表为产品级目标值,实际表现与片源码率、硬件配置、网络条件相关,建议以你的片源实测为准。
从个人验证到多节点集群,部署形态可以随业务演进切换,不要求重做数据迁移方案。
# 单机启动(示意,实际以交付包为准) services: powermedia: image: powermedia/server:latest ports: ["8200:8200"] volumes: - ./data:/app/data - ./media:/media - ./cache:/app/cache environment: DB_DRIVER: sqlite TZ: Asia/Shanghai # 首次启动后访问 http://localhost:8200 # 生产环境请立即修改默认账号与密钥
方言抽象层统一处理查询、事务与分页差异,业务代码无需因更换数据库而修改。迁移工具逐表校验,减少数据遗漏风险。
零依赖,适合单机与试点;社区版默认。
功能完整,适合中大型部署与只读扩展。
运维体系成熟,便于纳入既有数据库平台。
国产化环境交付,随信创版授权提供。
支持 SQLite → PostgreSQL / MySQL / DM8 / KingbaseES 的全量与增量迁移,逐表校验行数与关键字段, 迁移前后可对比摘要。迁移期间原库保持只读,失败可回滚到切换点。
默认账号、密钥、跨域与分享策略采用偏安全的初始配置,再按业务需要逐项调整。
多角色模型 + 库级 ACL;管理端与用户端权限分离;OAuth 客户端凭证支持第三方系统对接,令牌可撤销。
播放令牌随会话签发、短期有效;Query Token 模式便于播放器与嵌入场景,可配合域名白名单收紧。
落盘静态加密;DRM 打包与许可证服务分离;密钥单独存储、15 分钟过期,不随媒体文件下发。
管理操作变更留痕;分享访问可查;播放并发按授权配额门禁,超限返回明确错误码而非静默失败。
未授权能力不注册、不暴露;离线授权采用签名验签与机器指纹绑定,防止授权文件被复制到其他节点。
支持内网 / 离线部署;管理端口与播放入口分离;提供反向代理与边缘缓存配置建议。
# 1. 申请播放会话 POST /api/v1/media/{id}/play { "quality": "auto", "subtitle": "zh-CN" } # 2. 返回清单与短期凭证 { "playlist": "/hls/{id}/master.m3u8", "token": "...", "expires_in": 900 } # 3. 转码 / 预热任务查询 GET /api/v1/tasks?type=prewarm GET /api/v1/license/features
上层平台通过 REST API 完成媒体入库、播放授权、任务查询与授权状态读取;前端可完全替换为自有界面。
左侧为接口形态示意,完整字段与错误码以交付版接口文档为准。
提供部署清单、容器编排示例与反向代理配置建议;信创环境提供数据库与中间件适配说明。
按本页指标口径制定测试方案,配合你用真实片源完成起播、并发与故障转移的验收。
商业版本按版本节奏提供功能更新与安全修复;社区版可用于提前验证新能力。