首页/技术规格

技术规格与
验收口径

技术栈、部署形态、性能口径与安全机制。所有指标均注明统计边界,便于在验收时逐条对照。

01 / 技术栈

基于成熟组件构建

媒体处理采用成熟引擎,自研部分聚焦任务调度、缓存治理与授权控制。

后端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 回调 · 嵌入播放器
02 / 性能口径

指标与统计边界同步说明

下表列出常用指标及其统计边界,验收时可据此统一口径。

指标数值统计边界
起播时延(热态) < 1 s 服务端收到播放清单请求 → 播放器完成首帧渲染;切片已命中缓存或预热产物
起播时延(冷启动) < 3 s 同上,但需现场生成首个分片,不含首次刮削与整片转码
集群任务分发延迟 ≤ 500 ms 协调者决策完成 → 目标节点收到任务
协调者故障转移 ≤ 60 s 原协调者失联 → 新协调者接管并继续派发
单机并发转码 2(GPU)/ 4(CPU) 默认值,可按硬件与业务调整;播放通道独立计
播放密钥有效期 15 min AES-128 密钥签发后的可用时长,过期需重新申请
缓存沉降 / 回收 7 天 / 30 天 闲置 7 天转沉降层,30 天为硬上限;删除保留 24 小时软删宽限
元数据一致窗口 5 s 写入完成到各读取路径可见的最长间隔
预转码试用额度 10 个文件 未携带能力位时的试用上限,超出需开启授权

上表为产品级目标值,实际表现与片源码率、硬件配置、网络条件相关,建议以你的片源实测为准。

03 / 部署要求

四种形态,
同一套数据模型

从个人验证到多节点集群,部署形态可以随业务演进切换,不要求重做数据迁移方案。

  • 运行环境:主流 Linux 发行版 / Windows Server / macOS;容器化部署推荐 Docker
  • 外部依赖:FFmpeg 与 Shaka Packager;商业版可配 Redis;对象存储可选 S3 兼容服务
  • 存储规划:媒体源、转码缓存、预览与字幕缓存建议分卷;缓存容量按最长 30 天保留周期规划
  • 网络:播放与转码节点建议同机房;对外仅暴露播放与接口端口,管理端口限内网
docker-compose · 最小可用
# 单机启动(示意,实际以交付包为准)
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
# 生产环境请立即修改默认账号与密钥
04 / 数据库与迁移

支持五种数据库,提供可控迁移

方言抽象层统一处理查询、事务与分页差异,业务代码无需因更换数据库而修改。迁移工具逐表校验,减少数据遗漏风险。

DEFAULT

SQLite

零依赖,适合单机与试点;社区版默认。

STANDARD

PostgreSQL

功能完整,适合中大型部署与只读扩展。

STANDARD

MySQL

运维体系成熟,便于纳入既有数据库平台。

XINCHUANG

DM8 / KingbaseES

国产化环境交付,随信创版授权提供。

迁移工具 cmd/db-migrate

支持 SQLite → PostgreSQL / MySQL / DM8 / KingbaseES 的全量与增量迁移,逐表校验行数与关键字段, 迁移前后可对比摘要。迁移期间原库保持只读,失败可回滚到切换点。

05 / 安全机制

默认收紧,按需放开

默认账号、密钥、跨域与分享策略采用偏安全的初始配置,再按业务需要逐项调整。

身份与权限

多角色模型 + 库级 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
06 / 接口与集成

接口支持完整业务集成

上层平台通过 REST API 完成媒体入库、播放授权、任务查询与授权状态读取;前端可完全替换为自有界面。

  • 能力探测:/api/v1/license/features 便于前端根据授权隐藏入口,避免用户操作后才收到错误提示
  • 异步任务:转码、预热、刮削均为可查询任务,带状态与失败原因,便于接入自有告警
  • 回调:Webhook 在入库、发布、任务结束时通知,需开启对应能力位

左侧为接口形态示意,完整字段与错误码以交付版接口文档为准。

07 / 交付与支持

覆盖部署、验收与升级的支持

部署支持

提供部署清单、容器编排示例与反向代理配置建议;信创环境提供数据库与中间件适配说明。

验收协助

按本页指标口径制定测试方案,配合你用真实片源完成起播、并发与故障转移的验收。

持续升级

商业版本按版本节奏提供功能更新与安全修复;社区版可用于提前验证新能力。

需要完整的接口文档或部署清单?

留下你的邮箱与项目背景,我们会发送对应版本的文档包,并安排技术同事对接。