视频点播 OCR 提取字幕功能依托于光学字符识别技术,能够自动识别您输入的视频文件中的所有视觉文本(如硬字幕、海报文字、LOGO 文字等),输出为一份带时间戳的结构化文本数据。这帮助您将原本固化在视频画面中、无法访问的文字信息,转化为可搜索、可编辑的结构化数据。该功能有助于实现硬字幕翻译、视频内容合规审核以及构建视频内容搜索引擎等功能。
本文档将指导您如何通过调用视频点播 OpenAPI 实现 OCR 提取字幕功能。
项目 | 说明 |
|---|---|
输入文件格式 | 支持 MP4、FLV、ASF、RM、RMVB、MPEG、MOV、AVI、MPEGTS、M4S、WMV、3GP、TS、MPG、WEBM、MKV、WM、MPE、VOB、DAT、MP4V、M4V、F4V、MXF、QT 等主流视频格式。 |
输入分辨率 | 支持 240p~4k。 |
输入文件时长 | 单文件时长不得超过 2 小时。 说明 任务处理时长约为输入时长的 1.5 倍。例如,处理一段 10 分钟的视频,约需 15 分钟。 |
支持语言 | 支持中文和英文。 |
输出产物 | 结构化文本数据(JSON 格式),包含识别出的文字内容和对应的时间戳。 |
使用 OCR 提取字幕功能会产生以下费用:
调用 StartExecution 接口提交 OCR 提取字幕任务。以下为任务的核心参数配置。关于完整的请求参数列表和详细说明,请参见 StartExecution API 参考。
Input: 指定输入文件。
Type: 设置为 Vid 或 DirectUrl。Vid / DirectUrl: 提供待处理文件的 Vid 或 FileName 信息。Operation.Task.Type: 必须设置为 Ocr。以下为提交任务的示例:
POST https://vod.volcengineapi.com?Action=StartExecution&Version=2025-01-01 { "Input": { "Type": "Vid", "Vid": "your_video_id" }, "Operation": { "Type": "Task", "Task": { "Type": "Ocr", "Ocr": {} } } }
成功提交后,系统将返回任务的唯一标识 RunId。请务必保存好此 ID,以便后续查询结果。
任务提交后,系统会在后台进行异步处理。您可通过以下方式获取任务结果:
RunId 来获取任务结果。当返回结果中的 Status 字段值为 Success 时,表示任务已成功完成。EventType 为 ExecutionComplete 的 HTTP POST 请求。请求体中的 Data 对象即为任务结果。您可以根据 Data.Status 字段判断任务是否成功,并解析 Data.Output.Task.Ocr 获取产物信息。核心结果字段解析:
Duration: 处理的视频总时长(秒)。Texts: 识别出的文本片段数组。每个片段都是一个对象,包含了:
Text: 识别出的文本内容。如果画面上有多行文本,将用换行符 \n 分隔。Start / End: 该文本在视频中出现的起止时间(秒)。GetExecution 获取成功结果的示例:
{ "ResponseMetadata": { "RequestId": "20251110210932ABCDE****FGHIJ", "Action": "GetExecution", "Version": "2025-01-01", "Service": "vod", "Region": "cn-north-1" }, "Result": { "RunId": "qb:f26953726eb6****ff0431e7b", "Status": "Success", "Input": { "Type": "Vid", "Vid": "v02399g10001xxxxxxxxxxxxxxxxxxxx" }, "Operation": { "Type": "Task", "Task": { "Type": "Ocr", "Ocr": {} } }, "Output": { "Type": "Task", "Task": { "Type": "Ocr", "Ocr": { "Duration": 152.085, "Texts": [ { "Text": "从车马邮路", "Start": 1.44, "End": 2.64 }, { "Text": "到万物互联", "Start": 3.12, "End": 4.0 }, { "Text": "信息传递改变着我们的生活方式", "Start": 8.08, "End": 10.36 } // ... more texts ] } } } } }