云端压制 API
将项目提交到我们的高性能渲染集群,以生成带有专业样式的硬字幕视频。
/api/v1/burncurl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"resolution": "1080p"
}'参数
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
| 核心参数 | |||
projectId | String | Yes | 包含视频和字幕的项目唯一标识符。 |
resolution | String | No | 期望的输出视频分辨率。 选项: original, 1080p, 720p, 480p | 默认: 原始分辨率 |
fileName | String | No | 生成的 MP4 文件的自定义名称。 |
language | String | No | 压制字幕的目标语言。 默认: 项目当前活动语言 |
| 多语言支持 (双语字幕) | |||
languages | Array | No | 单个视频中多个字幕轨道的配置。 限制:最多 3 种语言 |
- language | String | Yes* | 此语言插槽的代码 (例如 'zh' 或 'original')。 |
- lineBreakRules | Object | No | 每种语言的特定分段覆盖。 |
- styleSettings | Object | No | 每种语言的特定样式 (对于双语字幕定位至关重要)。 |
| 换行规则 (lineBreakRules) | |||
lineBreakRules | Object | No | 字幕分段逻辑的嵌套对象。 |
- maxChars | Number | No | 每行允许的最大字符数。 范围: 5 - 100 | 默认: 45 |
- maxWords | Number | No | 每行字幕允许的最大单词数。 范围: 1 - 20 | 默认: 10 |
- balanceLines | Boolean | No | 平衡多行字幕中的行长度。 默认: true |
- sentenceSplit | Boolean | No | 优先在句子末尾断行。 默认: true |
- gapThreshold | Number | No | 一行中单词之间的最大间隔 (秒)。 范围: 0.1 - 2.0 | 默认: 0.4 |
| 样式基础 (styleSettings) | |||
uppercase | Boolean | No | 强制所有转录文本大写。 |
styleSettings | Object | No | 用于视觉样式覆盖的嵌套对象。 |
- preset | String | No | 应用内置样式预设作为基础。 选项: standard-stream, classic-apple, etc. |
- fontSize | Number | No | 字体大小占视频高度的比例。 默认: 0.045 |
- fontFamily | String | No | 用于渲染的标准字体名称。 默认: Arial |
- bold | Boolean | No | 对文本应用加粗。 默认: false |
- italic | Boolean | No | 对文本应用斜体。 默认: false |
| 颜色与边框 | |||
- primaryColor | Hex | No | 主文本颜色的十六进制代码。 默认: #FFFFFF |
- secondaryColor | Hex | No | 辅助颜色 (用于卡拉 OK 效果)。 默认: #00FFFF |
- outlineColor | Hex | No | 文本轮廓颜色。 默认: #000000 |
- outline | Number | No | 轮廓厚度 (高度比例)。 默认: 0.002 |
- shadow | Number | No | 阴影深度 (高度比例)。 默认: 0.001 |
| 定位 (比例 0-1) | |||
- alignment | Number | No | ASS 对齐代码 (1-9)。底端居中为 2。 范围: 1 - 9 | 默认: 2 |
- posX | Number | No | 水平位置 (0 = 左, 1 = 右)。 默认: 0.5 |
- posY | Number | No | 垂直位置比例 (0 = 顶, 1 = 底)。默认: 0.88。 |
- marginV | Number | No | 距离底部/顶部的垂直边距比例。默认: 0.056。 |
| 动画与效果 | |||
- fadeIn | Number | No | 淡入时长 (毫秒)。 |
- fadeOut | Number | No | 淡出时长 (毫秒)。 |
- karaoke | String | No | 卡拉 OK 标签类型 (k, kf, ko, ks)。 |
curl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"resolution": "1080p",
"styleSettings": {
"preset": "standard-stream",
"fontSize": 0.055,
"bold": true
}
}'curl -X POST https://api.srtgen.com/api/v1/burn \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"projectId": "proj_8k2n9m1b",
"languages": [
{
"language": "original",
"styleSettings": {
"preset": "classic-apple",
"posY": 0.85
}
},
{
"language": "es",
"styleSettings": {
"preset": "classic-apple",
"posY": 0.75,
"primaryColor": "#FFFF00"
}
}
]
}'状态与响应
1. 异步初始化
云端压制作业是异步的。一旦任务被渲染集群接受,API 将立即返回一个 burnId。
使用 导出状态端点 来轮询进度和最终视频 URL。
{ "success": true, "burnId": "brnc_abc123", "status": "running" }
2. 跟踪与检索
要获取最终结果,请使用初始化期间收到的 burnId 轮询项目状态:
curl -X POST https://api.srtgen.com/api/v1/export/proj_xxx \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"output": "mp4",
"burnId": "brnc_abc123"
}'完成后,状态将变为 completed,并提供一个 resultUrl (可下载的视频)。
{ "status": "completed", "resultUrl": "https://cdn.b2.com/video.mp4" }
错误代码
| 状态 | 错误代码 | 描述 |
|---|---|---|
| 400 | missing_parameter | projectId 是必填项。 |
| 400 | missing_video | 项目未附带源视频。 |
| 401 | unauthorized | API 密钥缺失或无效。 |
| 403 | insufficient_balance | 额度不足以支付视频时长。 |
| 404 | not_found | 项目 ID 不存在。 |
| 500 | burn_submission_failed | 渲染集群已满或无法访问。 |
| 500 | export_error | 字幕处理过程中发生错误。 |
| 500 | server_error | 发生意外的内部服务器错误。 |