跳转到内容
搜索文档

添加额外音轨

最后更新 查看 MarkdownAgent 设置

视频必须先上传,然后才能附加额外音轨。在以下示例 URL 中,视频的 UID 引用为 VIDEO_UID

要向视频添加音轨,需要 Cloudflare API Token

API 将尽力处理上传音频文件时长与视频时长之间的任何不匹配,但我们建议上传与视频时长匹配的音频文件。如果音频文件时长超过视频,额外音轨将被截断以匹配视频时长。如果音频文件时长短于视频,将在音轨末尾追加静音以匹配视频时长。

通过链接上传

如果您将音频文件存储在云存储桶中,可以简单地传递文件的 HTTP 链接。Stream 将获取文件并使其可供流式传输。

label 是必需的,必须在指定视频的其他音轨标签中唯一标识该音轨。

curl -X POST \
 -H 'Authorization: Bearer <API_TOKEN>' \
 -d '{"url": "https://www.examplestorage.com/audio_file.mp3", "label": "Example Audio Label"}' \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/audio/copy
添加额外音轨的示例响应json
{
 "result": {
   "uid": "<AUDIO_UID>",
   "label": "Example Audio Label",
   "default": false
   "status": "queued"
 },
 "success": true,
 "errors": [],
 "messages": []
}

uid 唯一标识音轨,可用于编辑或删除音轨。请参阅下面的说明了解如何执行这些操作。

default 字段表示音轨是否将在播放器中默认播放。额外音轨的 default 状态为 false,但可按照下面的说明进行编辑。

status 字段将在音轨成功上传并编码后更改为 ready。如果此过程中发生错误,状态将显示 error

通过 HTTP 上传

发送 HTTP 请求并将音频文件作为名为 file 的输入包含在内。

音频文件上传大小不能超过 200 MB。如果您的音频文件更大,请在上传前压缩文件。

表单输入 label 是必需的,必须在指定视频的其他音轨标签中唯一标识该音轨。

注意 cURL 的 -F 标志会自动配置 content-type 头,并将 audio_file.mp3 映射到名为 file 的表单输入。

curl -X POST \
 -H 'Authorization: Bearer <API_TOKEN>' \
 -F file=@/Desktop/audio_file.mp3 \
 -F label='Example Audio Label' \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/audio
添加额外音轨的示例响应json
{
 "result": {
   "uid": "<AUDIO_UID>",
   "label": "Example Audio Label",
   "default": false
   "status": "queued"
 },
 "success": true,
 "errors": [],
 "messages": []
}

列出视频上的额外音轨

要查看添加到视频的额外音轨:

curl \
 -H 'Authorization: Bearer <API_TOKEN>' \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/audio
获取与视频关联的音轨的示例响应json
{
  "result": {
    "audio": [
      {
        "uid": "<AUDIO_UID>",
        "label": "Example Audio Label",
        "default": false,
        "status": "ready"
      },
      {
        "uid": "<AUDIO_UID>",
        "label": "Another Audio Label",
        "default": false,
        "status": "ready"
      }
    ]
  },
  "success": true,
  "errors": [],
  "messages": []
}

注意此 API 不会返回附加到视频上传的音频信息。

编辑额外音轨

要编辑额外音轨的 default 状态或 label

curl -X PATCH \
 -H 'Authorization: Bearer <API_TOKEN>' \
 -d '{"label": "Edited Audio Label", "default": true}' \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/audio/<AUDIO_UID>

将音轨的 default 状态编辑为 true 会将视频上所有其他音轨的 default 状态标记为 false

编辑与视频关联的音轨的示例响应json
{
  "result": {
    "uid": "<AUDIO_UID>",
    "label": "Edited Audio Label",
    "default": true
    "status": "ready"
  },
  "success": true,
  "errors": [],
  "messages": []
}

删除额外音轨

要删除与视频关联的额外音轨:

curl -X DELETE \
 -H 'Authorization: Bearer <API_TOKEN>' \
https://api.cloudflare.com/client/v4/accounts/<ACCOUNT_ID>/stream/<VIDEO_UID>/audio/<AUDIO_UID>

不允许删除 default 音轨。删除前必须将另一个音轨指定为 default

如果 errors 响应字段中有条目,音轨尚未被删除。

删除音轨的示例响应json
{
  "result": "ok",
  "success": true,
  "errors": [],
  "messages": []
}

这篇文档对您有帮助吗?