多音轨与多字幕任务指南

1. 概述

本指南提供使用 API 参数创建多音轨和多字幕任务的完整说明。

  • 多音轨任务:允许您在视频输出中包含多个音频轨道,适用于多语言配音场景。
  • 多字幕任务:允许您在视频输出中包含多个字幕轨道,适用于多语言字幕场景。

您可以单独创建多音轨或多字幕任务,也可以同时配置多音轨和多字幕。

2. 前提条件

在继续之前,请确保您具备以下条件:

  • 访问 API 文档的权限
  • 创建任务的必要权限
  • 了解音频格式和配置
  • 了解字幕格式,如 WebVTT 和 SRT

3. 操作步骤

3.1 第一步:输入配置

  • "input" 字段中提供您要处理的视频文件的 URL
  • "output" 字段中指定所需的输出路径
  • "storage_id" 字段中为存储位置分配唯一标识符
  • "template_name" 字段中选择视频编码模板,模板的输出格式需要是HLS或DASH

3.2 第二步:音轨配置(多音轨任务)

"extra_options" 部分中定义音频轨道的输入源。

3.2.1 音频选择器配置

通过指定以下内容配置每种语言的音频选择器:

  • source_file:音频文件的 URL
  • source_type:源类型("track" 从视频提取音轨 或 "file" 使用外部音频文件)
  • tracks:当 source_type"track" 时,需要设置此参数选择音频轨道序号
  • selector_name:音频选择器的名称(用于后续关联)

3.3 第三步:字幕配置(多字幕任务)

"extra_options.inputs" 部分中定义字幕轨道的输入源。

3.3.1 字幕选择器配置

通过指定以下内容配置每个字幕轨道的字幕选择器:

  • source_file:字幕文件的 URL
  • source_type:源类型("webvtt""srt"
  • selector_name:字幕选择器的名称(用于后续关联)

3.4 第四步:输出组配置

定义输出组以组织音频和字幕描述。

3.4.1 音频描述配置

在输出组中指定每种语言的音频描述,包括:

  • selector_name:音频选择器的名称(与输入配置对应)
  • codec:音频编解码器(如 "aac"
  • bitrate:音频轨道的比特率(如 64000
  • sample_rate:音频轨道的采样率(如 "44.1k"
  • channels:音频通道数(如 2
  • group_id:音频组的唯一标识符
  • language_code:音频轨道的语言代码,使用 ISO 639-2 三位小写字母代码
  • language_code_control:语言代码控制配置,可选:use_configured(使用配置)、follow_input(跟随输入)。默认值:use_configured

3.4.2 字幕描述配置

在输出组中包含每个字幕轨道的字幕描述,指定:

  • selector_name:字幕选择器的名称(与输入配置对应)
  • language:字幕轨道的语言,建议使用 ISO 639 和 BCP 47 语言代码
  • description:字幕轨道的描述(显示名称)

4. 示例和用例

用例 1:创建纯多音轨任务(英语、泰米尔语、泰卢固语)

场景:为视频添加三个独立的音频轨道。

{
"input": "https://example.com/sample_video.mp4",
"output": "output/sample_output.m3u8",
"storage_id": "unique_storage_id",
"template_name": "h264_hls_1080p",
"extra_options": {
"inputs": {
"audio_selector": [
{
"source_type": "track",
"tracks": [1],
"selector_name": "original"
},
{
"source_file": "https://example.com/audio/tamil.wav",
"source_type": "file",
"selector_name": "tam"
},
{
"source_file": "https://example.com/audio/telugu.wav",
"source_type": "file",
"selector_name": "tel"
}
]
},
"output_groups": [
{
"outputs": {
"audio_description": [
{
"selector_name": "original",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "original",
"language_code": "eng",
"language_code_control": "use_configured"
},
{
"selector_name": "tam",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "tam",
"language_code": "tam",
"language_code_control": "use_configured"
},
{
"selector_name": "tel",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "tel",
"language_code": "tel",
"language_code_control": "use_configured"
}
]
}
}
]
}
}

用例 2:创建纯多字幕任务(英语、中文、日语)

场景:为视频添加三个独立的字幕轨道,不配置额外音轨。

{
"input": "https://example.com/sample_video.mp4",
"output": "output/sample_output.m3u8",
"storage_id": "unique_storage_id",
"template_name": "h264_hls_1080p",
"extra_options": {
"inputs": {
"caption_selector": [
{
"source_type": "webvtt",
"file_setting": {
"source_file": "https://example.com/captions/english.vtt"
},
"selector_name": "eng"
},
{
"source_type": "srt",
"file_setting": {
"source_file": "https://example.com/captions/chinese.srt"
},
"selector_name": "cmn"
},
{
"source_type": "webvtt",
"file_setting": {
"source_file": "https://example.com/captions/japanese.vtt"
},
"selector_name": "jpn"
}
]
},
"output_groups": [
{
"outputs": {
"caption_description": [
{
"selector_name": "eng",
"language": "en",
"description": "English"
},
{
"selector_name": "cmn",
"language": "zh-CN",
"description": "Chinese"
},
{
"selector_name": "jpn",
"language": "ja",
"description": "Japanese"
}
]
}
}
]
}
}

用例 3:创建多音轨+多字幕任务

场景:为视频同时配置多音轨和多字幕轨道。

{
"input": "https://example.com/sample_video.mp4",
"output": "output/sample_output.m3u8",
"storage_id": "unique_storage_id",
"template_name": "h264_hls_1080p",
"extra_options": {
"inputs": {
"audio_selector": [
{
"source_type": "track",
"tracks": [1],
"selector_name": "eng"
},
{
"source_file": "https://example.com/audio/tamil.wav",
"source_type": "file",
"selector_name": "tam"
},
{
"source_file": "https://example.com/audio/telugu.wav",
"source_type": "file",
"selector_name": "tel"
}
],
"caption_selector": [
{
"source_type": "webvtt",
"file_setting": {
"source_file": "https://example.com/captions/english.srt"
},
"selector_name": "eng"
},
{
"source_type": "webvtt",
"file_setting": {
"source_file": "https://example.com/captions/tamil.vtt"
},
"selector_name": "tam"
},
{
"source_type": "webvtt",
"file_setting": {
"source_file": "https://example.com/captions/telugu.vtt"
},
"selector_name": "tel"
}
]
},
"output_groups": [
{
"outputs": {
"audio_description": [
{
"selector_name": "eng",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "english_group",
"language_code": "eng",
"language_code_control": "use_configured"
},
{
"selector_name": "tam",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "tamil_group",
"language_code": "tam",
"language_code_control": "use_configured"
},
{
"selector_name": "tel",
"codec": "aac",
"bitrate": 64000,
"sample_rate": "44.1k",
"channels": 2,
"group_id": "telugu_group",
"language_code": "tel",
"language_code_control": "use_configured"
}
],
"caption_description": [
{
"selector_name": "eng",
"language": "en",
"description": "English"
},
{
"selector_name": "tam",
"language": "ta",
"description": "Tamil"
},
{
"selector_name": "tel",
"language": "te",
"description": "Telugu"
}
]
}
}
]
}
}

5. 配置参数速查表

参数用途适用场景
audio_selector定义音频输入源多音轨任务
source_type: track从视频提取音轨使用视频自带音轨
source_type: file使用外部音频文件上传独立音频文件
caption_selector定义字幕输入源多字幕任务
audio_description配置音频输出参数多音轨任务
caption_description配置字幕输出参数多字幕任务
language_codeISO 639-2 三位代码音轨语言标识
languageISO 639/BCP 47 代码字幕语言标识

6. 常见问题(FAQ)

Q: 可以在一个任务中同时配置多音轨和多字幕吗?
A: 可以。参考用例 2,在 extra_options.inputs 中同时配置 audio_selectorcaption_selector,在 output_groups.outputs 中同时配置 audio_descriptioncaption_description 即可。

Q: 可以包含超过三个音轨或字幕轨道吗?
A: 可以。您可以在 audio_selectorcaption_selector 数组中添加任意数量的选择器,只需确保每个选择器有唯一的 selector_name

Q: 如何确保音轨、字幕与视频正确对齐?
A: 确保为每个音轨指定 language_code,为每个字幕指定 language,使用标准的语言代码格式,以确保播放期间正确同步。

Q: 可以自定义音频轨道的比特率和采样率吗?
A: 可以。在 audio_description 配置中,根据您的要求调整 bitrate(比特率)和 sample_rate(采样率)参数。

Q: source_type: tracksource_type: file 有什么区别?
A:

  • track:从输入视频文件中提取指定序号的音轨(需配合 tracks 参数)
  • file:使用外部音频文件的 URL(需配合 source_file 参数)

Q: 语言代码应该使用什么格式?
A:

  • 音轨使用 ISO 639-2 三位小写字母代码(如 engcmnjpn
  • 字幕建议使用 ISO 639 或 BCP 47 代码(如 enzh-CNja

7. 最佳实践

  1. 命名规范:使用有意义的 selector_name,如语言代码缩写(engcmnjpn
  2. Group ID:为不同语言使用独立的 group_id,便于播放器识别
  3. 文件格式:外部音频文件建议使用 WAV 或 AAC 格式,字幕文件使用 VTT 或 SRT 格式
  4. 同步检查:确保外部音频文件与原视频时间轴对齐
  5. 语言代码:始终指定正确的语言代码,提升用户体验