FFmpeg 媒体处理 · FFmpeg
多音轨时间轴混流NEW
📌 这是什么:把多条音频按各自的时间偏移贴进视频,一次调用完成整条音轨的摆位与合流。
💡 什么时候用:想把 N 条音频(如多句配音、多段音效)各自锚定在视频的不同时刻时用。mux 只能从 0 秒贴单条音频,这里每条音频带一个秒数偏移。
接口地址
| 用途 | 方法 | 路径 |
|---|---|---|
| 提交任务 | POST | /v1/ffmpeg/mux_timeline |
| 查询结果 | GET | /v1/ffmpeg/info?id={taskId} |
⏱ 建议轮询时间:建议每 3~5 秒轮询一次(响应含 progress 0→100),直到 status = succeeded / failed。status = queued 表示已入队、排队等待执行(尚未扣费),继续轮询即可。单任务超时 300 秒、超时退款。
请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| inputUrl | string | 必填 | 输入媒体 URL,须为受信白名单域名(平台 CDN 或受信来源 CDN);可先用 upload 上传获取,或直接用已在受信 CDN 上的素材 URL |
| audioUrls | string[] | 必填 | 音频 URL 数组,1~100 条,均为白名单域名 |
| offsets | number[] | 必填 | 每条音频的起始偏移(秒),长度须与 audioUrls 相等,非负且单调不减 |
| mode | string | — | replace 丢弃原音轨(默认)/ add 与原音轨混音(原视频无音轨时自动按 replace 处理) |
| keepVideoLength | boolean | — | 输出是否恒等于视频时长:true(默认)音轨短则补静音、长则裁掉;false 不约束 |
| webhookUrl | string | — | 完成回调地址(可选) |
请求示例
curl -X POST https://api.cqtai.com/v1/ffmpeg/mux_timeline \
-H 'Authorization: Bearer <API_KEY>' \
-H 'Content-Type: application/json' \
-d '{ "inputUrl": "https://cdn.novapi.ai/veo31/1788164205419_de868f9d69d445baaf577d42e87a236f.mp4", "audioUrls": ["https://cdn.novapi.ai/tmp/l1.mp3", "https://cdn.novapi.ai/tmp/l2.mp3"], "offsets": [0, 4.2], "mode": "replace", "keepVideoLength": true }'
# -> { "code":200, "data":"<taskId>" }响应示例
{
"code": 200,
"msg": "success",
"data": {
"taskId": "<taskId>",
"operation": "transcode",
"status": "succeeded",
"progress": 100,
"resultUrl": "https://cdn.novapi.ai/ffmpeg/xxx.mp4",
"costPoints": 3,
"errorMsg": null
}
}