云点播 如何为视频添加字幕

云点播支持为 转自适应码流 输出的 HLS 视频添加(或删除)多种语言的标准字幕文件。播放时,可以切换选择不同语言的字幕进行显示,以提升观看体验。

相关产品
云点播 产品页,含版本规格、价格与购买入口。

使用流程包括两个步骤:对媒体文件添加字幕和对媒体文件关联字幕。

为便于描述,这篇假设如下具体场景:对 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.1. 登录 云点播控制台,进入目标应用后,单击媒体处理设置 > 模板设置 > 智能识别模板,单击创建智能识别模板。

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

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

1.2. 服务端 API 创建模板

1.2.1. 调用服务端 API 创建音视频内容识别模板,输入参数 AsrTranslateConfigure 指定语音翻译任务参数:

"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.1. 登录 云点播控制台,进入目标应用的音视频管理页面,选中要智能识别生成字幕的 FileId,单击智能识别。

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. 对存量文件关联字幕

对已经生成的转自适应码流输出文件关联字幕,请调用服务端 API 关联媒体字幕,输入参数示例如下:

{ "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"] } ]}

任务完成时,转自适应码流的输出文件即关联了字幕。

十四、三、播放效果

关联字幕成功后,播放视频时可选择不同语言的字幕展示,参考效果如下:

赞 (0)
上一篇 4天前
下一篇 4天前