本文介绍了利用智能媒体管理(IMM)媒体转码接口来实现视频字幕提取的能力。
功能简介
视频字幕提取是指从视频文件中将字幕信息分离出来的技术能力。通过提取字幕,用户可以单独访问和编辑视频中的文本信息,这对于多语言支持、无障碍观影以及字幕创作均具有重要意义。
 
使用场景
- 多语言支持:字幕提取技术能够有效地支持多语言字幕的制作,从而便利不同语言观众对视频内容的理解。 
- 翻译与本地化:通过提取字幕,翻译人员能够迅速获取视频中的文本信息并进行翻译,从而高效地创建本地化版本,使其符合特定地区的文化和语言习惯。 
- 配音和语音识别:字幕提取为配音工作提供了重要的文本基础,配音人员能够依据提取的字幕进行录制。同时,语音识别技术可以借助字幕文本进行训练与优化。 
- 视频编辑与制作:视频编辑人员能够提取并整理音频内容的字幕,从而便于对文本内容进行编辑、校对和改进,以提升最终产品的质量。 
使用限制
视频字幕提取仅支持提取文字字幕和图形字幕,不支持提取嵌入视频流图像中的字幕。如您有其他需求,请联系我们。
如何使用
前提条件
- 已创建并获取AccessKey。具体操作,请参见创建AccessKey。 
- 已开通OSS服务、创建存储空间。具体操作,请参见创建存储空间。 
- 已开通智能媒体管理服务。具体操作,请参见开通产品。 
- 已通过智能媒体管理控制台创建项目。具体操作,请参见创建项目。 说明- 您也可以调用API接口创建项目。具体操作,请参见CreateProject - 创建项目。 
- 您可以调用ListProjects - 列出所有项目信息的列表接口列出指定地域下已创建的所有项目信息。 
 
步骤一:上传文件
请使用OSS管理控制台将媒体文件上传至IMM项目所在地域的Bucket。

步骤二:使用IMM字幕提取
调用CreateMediaConvertTask - 创建媒体转码任务接口创建视频字幕提取任务。
视频字幕提取的过程通常包括以下几个步骤:
- 字幕格式识别:识别视频文件中嵌入的字幕格式,包括常见的 SRT、ASS、WebVTT 以及嵌入式字幕流。 
- 字幕数据提取:从视频文件中提取字幕文本及其时间戳。提取过程确保所有字幕内容,包括发言者名称、时间标记和格式,能够被准确获取。 
- 文本处理:对提取的字幕文本进行必要的处理或编辑,这可能包括去除冗余信息、调整格式、进行语言翻译,以及校对拼写和语法。 
- 输出与保存:将处理后的字幕文本以指定格式(如srt、ass等)保存,以便于后续的使用、编辑或上传至视频平台。 
参数示例
以下示例使用IMM项目test-project,文件oss://test-bucket/video-demo/test.mp4来进行视频字幕提取处理。
更多有关媒体处理各功能介绍和使用,请参见媒体转码。
- 您可以通过OpenAPI 门户使用媒体转码接口对视频文件进行处理,可参考SDK代码。 
- 视频字幕提取请勿设置Target.URI和Target.Container参数。 
- 推荐配置字幕输出URI为"oss://test-bucket/objectPrefix-{streamindex}.{autoext}",若不设置streamindex变量则可能导致字幕相互覆盖。 
提取视频中的所有字幕为webvtt格式字幕
- 字幕格式:webvtt 
- 输出字幕文件保存路径: - oss://test-bucket/video-demo/subtitle-%d.vtt
- 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic” 
SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。
请求参数如下
{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/test.mp4"
    }
  ],
  "Targets": [
    {
      "Subtitle": {
        "ExtractSubtitle": {
          "Format": "webvtt",
          "URI": "oss://test-bucket/video-demo/subtitle-{streamindex}.{autoext}"
        }
      }
    }
  ]
}提取视频中的所有字幕为srt格式字幕
- 字幕格式:srt 
- 输出字幕文件保存路径: - oss://test-bucket/video-demo/subtitle-%d.srt
- 转码完成消息通知:发送MNS消息到MNS主题“test-mns-topic” 
SDK示例请参见OpenAPI门户,已为您自动填充示例的参数,请您按需修改后再进行调试。
请求参数如下
{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/test.mp4"
    }
  ],
  "Targets": [
    {
      "Subtitle": {
        "ExtractSubtitle": {
          "Format": "srt",
          "URI": "oss://test-bucket/video-demo/subtitle-{streamindex}.{autoext}"
        }
      }
    }
  ]
}计费说明
在视频字幕提取的过程中, IMM 侧会产生以下计费项,详细定价请参见IMM计费项。OSS 和 IMM 两侧会产生以下计费项:
- OSS 侧: 详细定价请参见OSS产品定价 - API - 计费项 - 说明 - GetObject - GET 类型请求 - 根据成功的请求次数计算请求费用。 - 低频访问数据取回容量 - 如果取回的数据是低频访问数据,会产生低频访问数据取回容量的费用,按数据取回量计费。 - 归档直读数据取回容量 - 如果读取的是归档的Object且Bucket开启了归档直读,会产生归档直读数据取回容量费用,根据取回的数据容量大小计费。 - 传输加速 - 如果开启了传输加速功能且使用传输加速域名访问您的Bucket会产生传输加速费用,根据数据容量大小计费。 - PutObject - PUT类型请求 - 根据成功的请求次数计算请求费用。 - 存储费用 - 根据Object的存储类型、大小和时长收取存储费用。 - HeadObject - GET 类型请求 - 根据成功的请求次数计算请求费用。 
- IMM 侧: 详细定价请参见IMM计费项。 重要- 自北京时间 2025 年 7 月 28 日 11:00 起,IMM 视频字幕提取服务将由原来的免费模式升级为计费模式。更多信息,请参见IMM计费调整公告。 - API - 计费项 - 说明 - CreateMediaConvertTask - ExtractSubtitleText - 根据成功提取的字幕流数量计算视频文字字幕提取的请求费用。 - CreateMediaConvertTask - ExtractSubtitleImage - 根据成功提取的字幕流总时长计算视频图片字幕提取的请求费用。