使用流程包括两个步骤:对媒体文件添加字幕和对媒体文件关联字幕。
为便于描述,本文假设如下具体场景:对 FileId(1397757888586312345)的 转自适应码流模板 ID(10) 输出的文件添加中文(zh)和英文(en)字幕,使得播放该文件时,可以选择添加的中文或英文字幕进行显示。
一、对媒体文件添加字幕
此步骤实现将字幕添加到 FileId(1397757888586312345)的媒资中,并得到字幕 ID。下一步将使用该字幕 ID 进行字幕关联。
云点播提供两种方式为媒体文件添加字幕:上传字幕和智能识别自动生成字幕。
上传字幕
上传已有的字幕文件,上传成功后自动添加字幕信息到媒资。支持两种方式上传:控制台上传、服务端 API 上传。
控制台上传
1. 登录 云点播控制台,进入目标应用的音视频管理页面,对 FileId(1397757888586312345)媒资单击管理。


2. 单击字幕信息 > 添加字幕。


3. 上传所需要的字幕文件,并编辑好语言类型和字幕流名称(用于播放器展示),单击确定。


4. 得到中文、英文字幕 ID 分别为 DCx7UT 和 FxxUKR。


服务端 API 上传
1. 调用服务端 API 修改媒体文件属性,输入参数 AddSubtitles 指定需要上传的字幕:
"AddSubtitles": [{"Name": "demo_zh.vtt","Language": "zh","Format": "vtt","Content": "V0VCVlRUCgowMDowMDowMC4wMDAgLS0+IDAwOjAwOjAyLjA0MArkvaDlpb3lkJfvvJ8KCjAwOjAwOjAyLjEwMCAtLT4gMDA6MDA6MDQuOTUwCuaIkeW+iOWlve+8jOiwouiwou+8jOS9oOWRou+8nwoKMDA6MDA6MDQuOTgwIC0tPiAwMDowMDowNi45MDAK5oiR5Lmf5b6I5aW944CCCg=="},{"Name": "demo_en.vtt","Language": "en","Format": "vtt","Content": "V0VCVlRUCgowMDowMDowMC4wMDAgLS0+IDAwOjAwOjAyLjA0MApIb3cgYXJlIHlvdT8KCjAwOjAwOjAyLjEwMCAtLT4gMDA6MDA6MDQuOTUwCkZpbmUsIHRoYW5rIHlvdSwgYW5kIHlvdT8KCjAwOjAwOjA0Ljk4MCAtLT4gMDA6MDA6MDYuOTAwCkknbSBmaW5lIHRvby4K"}]
2. 接口输出示例(省略了其他字段),从中得到中文、英文字幕 ID 分别为 DCx7UT 和 FxxUKR。
{"Response": {"AddedSubtitleSet": [{"Id": "DCx7UT","Name": "demo_zh","Language": "en","Format": "vtt","Url": "http://123.vod2.myqcloud.com/vodgzp123/1397757888586312345/subtitles/DCx7UT.vtt"},{"Id": "FxxUKR","Name": "demo_en","Language": "en","Format": "vtt","Url": "http://123.vod2.myqcloud.com/vodgzp123/1397757888586312345/subtitles/FxxUKR.vtt"}],"RequestId": "90b40581-bf44-4455-a238-c8fe614c20ca"}}
智能识别自动生成字幕
1. 准备音视频内容识别模板
支持两种方式创建模板:控制台创建模板及服务端 API 创建模板。
1.1. 控制台创建模板


1.1.2. 支持选择“语音全文识别”输出源语言字幕文件,或选择“语音翻译”输出目标翻译语言的字幕文件。以下截图场景为将源视频语音内容识别并翻译为目标语言字幕文件。


1.1.3. 创建后,在模板列表可以看到新建的模板 ID 为 102270。


1.2. 服务端 API 创建模板
"AsrTranslateConfigure": {"Switch": "ON","SrcLanguage": "zh","DstLanguage": "en","SubtitleFormats": ["vtt"]}
注意,如果不需要翻译字幕,可以使用语音全文识别(AsrFullTextConfigure),指定生成视频源语言的字幕:
"AsrFullTextConfigure": {"Switch": "ON","SrcLanguage": "zh","SubtitleFormats": ["vtt"]}
1.2.2. 根据本文场景,我们指定语音翻译(AsrTranslateConfigure),接口输出示例(省略了其他字段),从中得到模板 ID(10089)。
{"Response": {"Definition": 10089,"RequestId": "12ae8d8e-dce3-4151-9d4b-5594145287e1"}}
2. 任务发起
支持多种方式发起智能识别任务:
调用服务端 API
控制台发起任务流
上传时指定任务流
服务端上传
客户端上传
控制台上传


2.2. 单击选择模板。


2.3. 选中要使用的识别模板然后单击确定。


页面会提示创建任务成功:


2.4. 在任务中心页面可以看到智能识别任务的任务 ID及任务状态。


当任务状态为已完成,则智能识别字幕已经成功,并且生成的字幕信息已经自动添加到媒资。
3. 结果获取
使用上一步『任务发起』得到的任务 ID,结合开发指南 结果获取,可以得到智能识别结果,位于 ProcedureTask 结构 里的 AiRecognitionResultSet(类型为AiRecognitionResult 数组):
Type 为 AsrFullTextRecognition 时,表示语音全文翻译结果保存在 AsrFullTextTask。
Type 为 AsrTranslateRecognition 时,表示语音翻译结果保存在 AsrTranslateTask。
AsrTranslateTask 示例:
{"Status": "SUCCESS","ErrCode": 0,"ErrCodeExt": "","Message": "SUCCESS","Progress": 100,"BeginProcessTime": "2024-10-16T12:21:04Z","FinishTime": "2024-10-16T12:21:47Z","Input": {"Definition": 102270},"Output": {"SegmentSet": [{"Text": "您好吗?","Translation": "How are you?","StartTimeOffset": 0,"EndTimeOffset": 2.04,"Confidence": 100},{"Text": "我很好,谢谢,您呢?","Translation": "Fine, thank you, and you?","StartTimeOffset": 2.1,"EndTimeOffset": 4.95,"Confidence": 100},{"Text": "我也很好。","Translation": "I'm fine too.","StartTimeOffset": 4.98,"EndTimeOffset": 6.9,"Confidence": 100}],"SegmentSetFileUrl": "http://251000800.vod2.myqcloud.com/6c0f30dfvodgzp251000800/397dbd234424135347904691234/75a7a19e-abaa-4af4-affb-04e76b3bc9bd.txt","SegmentSetFileUrlExpireTime": "2024-10-19T12:21:44.525Z","SubtitleSet": [{"Id": "DCx7UT","Name": "zh","Language": "zh","Format": "vtt","Url": "https://123.vod-qcloud.com/vodgzp123/1397757888586312345/subtitles/DCx7UT.vtt"},{"Id": "FxxUKR","Name": "en","Language": "en","Format": "vtt","Url": "https://123.vod-qcloud.com/vodgzp123/1397757888586312345/subtitles/FxxUKR.vtt"}]}}
上面示例可以看到生成的中英文字幕 ID 分别为 DCx7UT 和 FxxUKR。
任务成功时,生成的字幕信息已经自动添加到媒资。
二、对媒体文件关联字幕
支持两种方式对媒体文件关联字幕:控制台关联字幕和服务端 API 关联字幕。前者只支持对已经生成的转自适应码流输出文件关联字幕,后者同时支持对存量和增量文件关联字幕。
控制台关联字幕
1. 登录 云点播控制台,进入目标应用的音视频管理页面。对 FileId(1397757888586312345)媒资单击管理 > 字幕信息,关联自适应码流下方的列表展示了已经生成转自适应码流的模板,选择需要关联的模板输出,单击操作列的编辑,按如下图示操作:




2. 单击确定后,页面右上方弹出操作成功提示。即表示关联字幕成功。


此外,转自适应码流列表里相应模板对应的关联状态变为已关联:


服务端 API 关联字幕
包括对存量文件和增量文件关联字幕。
1. 对存量文件关联字幕
{"Action": "AttachMediaSubtitles","Version": "2018-07-17","FileId": "1397757888586312345","Operation": "Attach","AdaptiveDynamicStreamingDefinition": 10,"SubtitleIds": ["DCx7UT", "FxxUKR"]}
2. 对增量文件关联字幕
发起 转自适应码流 任务时,在转自适应码流任务输入参数里指定字幕 ID 列表:MediaProcessTask -> AdaptiveDynamicStreamingTaskSet ->
SubtitleSet
。输入参数 MediaProcessTask 示例如下:
{"AdaptiveDynamicStreamingTaskSet": [{"Definition": 10,"SubtitleSet": ["DCx7UT", "FxxUKR"]}]}
任务完成时,转自适应码流的输出文件即关联了字幕。
三、播放效果
关联字幕成功后,播放视频时可选择不同语言的字幕展示,参考效果如下图:

