本指南提供使用 API 参数创建多音轨和多字幕任务的完整说明。
您可以单独创建多音轨或多字幕任务,也可以同时配置多音轨和多字幕。
在继续之前,请确保您具备以下条件:
"input" 字段中提供您要处理的视频文件的 URL"output" 字段中指定所需的输出路径"storage_id" 字段中为存储位置分配唯一标识符"template_name" 字段中选择视频编码模板,模板的输出格式需要是HLS或DASH在 "extra_options" 部分中定义音频轨道的输入源。
通过指定以下内容配置每种语言的音频选择器:
source_file:音频文件的 URLsource_type:源类型("track" 从视频提取音轨 或 "file" 使用外部音频文件)tracks:当 source_type 为 "track" 时,需要设置此参数选择音频轨道序号selector_name:音频选择器的名称(用于后续关联)在 "extra_options.inputs" 部分中定义字幕轨道的输入源。
通过指定以下内容配置每个字幕轨道的字幕选择器:
source_file:字幕文件的 URLsource_type:源类型("webvtt" 或 "srt")selector_name:字幕选择器的名称(用于后续关联)定义输出组以组织音频和字幕描述。
在输出组中指定每种语言的音频描述,包括:
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在输出组中包含每个字幕轨道的字幕描述,指定:
selector_name:字幕选择器的名称(与输入配置对应)language:字幕轨道的语言,建议使用 ISO 639 和 BCP 47 语言代码description:字幕轨道的描述(显示名称)场景:为视频添加三个独立的音频轨道。
{"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"}]}}]}}
场景:为视频添加三个独立的字幕轨道,不配置额外音轨。
{"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"}]}}]}}
场景:为视频同时配置多音轨和多字幕轨道。
{"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"}]}}]}}
| 参数 | 用途 | 适用场景 |
|---|---|---|
audio_selector | 定义音频输入源 | 多音轨任务 |
source_type: track | 从视频提取音轨 | 使用视频自带音轨 |
source_type: file | 使用外部音频文件 | 上传独立音频文件 |
caption_selector | 定义字幕输入源 | 多字幕任务 |
audio_description | 配置音频输出参数 | 多音轨任务 |
caption_description | 配置字幕输出参数 | 多字幕任务 |
language_code | ISO 639-2 三位代码 | 音轨语言标识 |
language | ISO 639/BCP 47 代码 | 字幕语言标识 |
Q: 可以在一个任务中同时配置多音轨和多字幕吗?
A: 可以。参考用例 2,在 extra_options.inputs 中同时配置 audio_selector 和 caption_selector,在 output_groups.outputs 中同时配置 audio_description 和 caption_description 即可。
Q: 可以包含超过三个音轨或字幕轨道吗?
A: 可以。您可以在 audio_selector 和 caption_selector 数组中添加任意数量的选择器,只需确保每个选择器有唯一的 selector_name。
Q: 如何确保音轨、字幕与视频正确对齐?
A: 确保为每个音轨指定 language_code,为每个字幕指定 language,使用标准的语言代码格式,以确保播放期间正确同步。
Q: 可以自定义音频轨道的比特率和采样率吗?
A: 可以。在 audio_description 配置中,根据您的要求调整 bitrate(比特率)和 sample_rate(采样率)参数。
Q: source_type: track 和 source_type: file 有什么区别?
A:
track:从输入视频文件中提取指定序号的音轨(需配合 tracks 参数)file:使用外部音频文件的 URL(需配合 source_file 参数)Q: 语言代码应该使用什么格式?
A:
eng、cmn、jpn)en、zh-CN、ja)selector_name,如语言代码缩写(eng、cmn、jpn)group_id,便于播放器识别