视频OCR
本文介绍视频理解(videorecog)类目下的视频OCR RecognizeVideoCastCrewList的语法及示例。
功能描述
视频OCR能力可以识别视频中的文本,可涵盖新闻、影视剧、娱乐、体育等多场景的中英文、繁简体、比分等识别,支持普通字幕、定常字幕、滚动字幕、部分自然场景文字、竖排文字及艺术字等多种类型。
应用场景
- 影视字幕识别:对电影、电视剧等长视频中的配音字幕进行识别,包括时间戳与对应文本内容,从而实现外挂字幕生成、敏感内容识别审核等需求。
- 演职员表识别:识别影视剧内容片尾滚动字幕中的演职员表信息,用于视频信息校对、敏感人物查询等场景。
- 体育文字识别:在体育赛事场景中识别文本内容,包括比分、广告文字等,实现赛事状态分析、广告查询监播等场景。
特色优势
- 覆盖视频类型广:支持多种不同视频类型。
- 支持文字种类多:支持普通字幕、定常字幕、滚动字幕、部分自然场景文字、竖排文字及艺术字等多种类型。
- 识别准确性高:对低分辨率、复杂场景等均有较好的识别准确性。
接入指引
1. 注册阿里云账号:打开阿里云官网,在阿里云官网右上角,单击立即注册,按照操作提示完成账号注册。
2. 开通能力:请确保您已开通视频理解服务,若未开通服务请立即开通。
3. 创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权。
4. 在线调试(可选):您可以通过OpenAPI Explorer在线调试能力,查看完整的调用示例代码及SDK依赖信息,也可以下载完整的工程。
5. 开发接入步骤:
- 在SDK总览中选择您要接入使用的SDK语言。
- 在对应语言的SDK文档中找到AI类目为视频理解(videorecog)类目的SDK包进行安装。
- 参考文档中提供的示例代码进行适当修改后调用。
6. 示例代码:该能力常用语言的示例代码,请参见视频OCR示例代码,常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码。
7. 客户端直接调用:该能力常用的客户端调用方式包括以下几种。
输入限制
- 视频格式:AVI、FLV、MKV、MPG、MP4、TS、MOV、MXF。
- 编码格式:MPEG-2、MPEG-4、H.264、H.265/HEVC。
- 视频大小:不超过10 GB。
- 视频分辨率:不低于240P。
- URL地址中不能包含中文字符。
- 建议输入的视频长度不超过30分钟,否则会容易导致处理超时报错。
计费说明
关于视频OCR的计费方式及报价,请参见计费介绍。
调用步骤
该能力为异步能力,需分两步进行调用。
第一步调用RecognizeVideoCastCrewList接口提交任务,请求成功后,得到一个任务ID。
第二步调用GetAsyncJobResult接口查询结果,根据任务ID查询任务执行状态和结果。如果任务还在处理中,可稍等一段时间后再进行查询。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | RecognizeVideoCastCrewList | 系统规定参数。取值:RecognizeVideoCastCrewList。 |
VideoUrl | String | 是 | https://shanghai.oss-cn-shanghai.aliyuncs.com/download/xxxx.mp4 | 视频URL地址。推荐使用上海地域的OSS链接,对于文件在本地或者非上海地域OSS链接的情况,请参见文件URL处理。 |
Params | Array | 否 | 场景结果输出功能参数控制。 |
|
Type | String | 否 | cast | 视频信息提取类型:
|
返回数据
名称 |
类型 |
示例值 |
描述 |
RequestId | String | EE5B1A95-064F-1C5E-A6FE-FEE0D734A632 | 请求ID。 |
Data | Object | 返回的数据内容。 该数据需要在异步任务执行成功后,通过调用GetAsyncJobResult接口,对其Result字段进行JSON反序列化之后得到。 |
|
OcrResults | Array of ocrResults | 3帧/秒文本识别结果。 |
|
DetailInfo | Array of detailInfo | 详细内容。 |
|
Boxes | Array of Integer | [452,27,505,46] | 文本位置矩形框坐标,坐标顺序为[xmin,ymin,xmax,ymax]。 |
CharProbs | Array | 文本单个字符对应识别置信度,取值范围0~1.0。 |
|
Array of Float | 0.9405716061592102 | 文本单个字符对应识别置信度,取值范围0~1.0。 |
|
FrameIndex | Long | 17 | 视频帧序号。 |
Position | Array of position | 文本位置矩形框点坐标[左上,右上,右下,左下]。 |
|
X | Long | 266 | 水平方向坐标,对应视频宽度,单位:像素。 |
Y | Long | 440 | 垂直方向坐标,对应视频高度,单位:像素。 |
Score | Float | 92.07685702563117 | 文本识别结果置信度,取值范围:0~100。 说明 Score=100×TextProb。 |
TextProb | Float | 0.9207685702563116 | 文本识别结果置信度,取值范围:0~1.0。 |
TimeStamp | Float | 0.28 | 视频帧时间戳,单位:秒。 |
TrackId | Long | 1 | 跟踪分配ID序号。 |
Text | String | 总策划 | 文本识别结果。 |
EndTime | Float | 0.28 | 视频帧截止时间戳,单位:秒。 |
StartTime | Float | 0.28 | 视频帧开始时间戳,单位:秒。 |
VideoOcrResults | Array of videoOcrResults | 视频clip级文本识别结果。 |
|
DetailInfo | Array of detailInfo | 详细内容。 |
|
Boxes | Array of Long | [266,440,314,476] | 文本位置矩形框坐标,坐标顺序为[xmin,ymin,xmax,ymax]。 |
Position | Array of position | 文本位置矩形框点坐标[左上,右上,右下,左下]。 |
|
X | Long | 269 | 水平方向坐标,对应视频宽度,单位:像素。 |
Y | Long | 423 | 垂直方向坐标,对应视频高度,单位:像素。 |
Score | Float | 92.07685702563117 | 文本识别结果置信度,取值范围:0~100。 |
Text | String | 总顾问 | 文本识别结果。 |
TextType | Long | 0 | 文本类型。取值如下:
|
EndTime | Float | 0.92 | 视频帧截止时间戳,单位:秒。 |
StartTime | Float | 0.92 | 视频帧开始时间戳,单位:秒。 |
SubtitlesResults | Array of subtitlesResults | 字幕识别结果。 |
|
SubtitlesAllResults | Map | 字幕识别中英文全部识别结果。 |
|
String | [] | 字幕识别中英文全部识别结果。 |
|
SubtitlesAllResultsUrl | String | url | 中英文字幕识别对应的标准SRT格式文件下载地址。 |
SubtitlesChineseResults | Map | 字幕识别中文识别结果。 |
|
String | 你好 | 字幕识别中文识别结果。 |
|
SubtitlesChineseResultsUrl | String | url1 | 中文字幕识别对应的标准SRT格式文件下载地址。 |
SubtitlesEnglishResults | Map | 字幕识别英文识别结果。 |
|
SubtitlesEnglishResultsUrl | String | url2 | 英文字幕识别对应的标准SRT格式文件下载地址。 |
CastResults | Array of castResults | 演职员表识别结果。 |
|
DetailInfo | Map | 详细内容。 |
|
String | cast | 详细内容。 |
|
EndTime | Float | 0.6 | 视频帧截止时间戳,单位:秒。 |
StartTime | Float | 0.6 | 视频帧截止时间戳,单位:秒。 |
OcrResultsUrl | String | http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_bGHMygKsFw.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=6KQb9OXQldsg30w%2FNurHwAbjiJs%3D | OcrResults结果的详细完整内容,即3帧/秒的识别结果。 说明 该字段废弃,返回为空。 |
OcrVideoResultsUrl | String | http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_VSRvetTHon.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=wfQviVVSyVRLPVlHDKXi6cTefHY%3D | OcrVideoResults结果的详细完整内容。 说明 该字段废弃,返回为空。 |
Message | String | 该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。 | 提交异步任务后的提示信息。 |
查询结果
该接口为异步接口,当前并未返回真实的请求结果,您需要通过返回的RequestId调用GetAsyncJobResult接口来获取该接口的真实请求结果。详情请参见GetAsyncJobResult。
SDK参考
阿里云视觉AI视频理解类目下的视频OCR能力推荐使用SDK调用,支持多种编程语言,调用时请选择AI类目为视频理解(videorecog)的SDK包,文件参数通过SDK调用可支持本地文件及任意URL,具体可参见SDK总览。
示例代码
该能力常用语言的示例代码,请参见视频OCR示例代码,常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码。
示例
请求示例
http(s)://videorecog.cn-shanghai.aliyuncs.com/?Action=RecognizeVideoCastCrewList //更多关于访问域名(Endpoint)信息,请参见:https://help.aliyun.com/document_detail/143103.html
&VideoUrl=https://shanghai.oss-cn-shanghai.aliyuncs.com/download/xxxx.mp4
&Params=[{"Type":"cast"}]
&公共请求参数
正常返回示例
XML
格式
HTTP/1.1 200 OK
Content-Type:application/xml
<RecognizeVideoCastCrewListResponse>
<RequestId>EE5B1A95-064F-1C5E-A6FE-FEE0D734A632</RequestId>
<Data>
<OcrResults>
<DetailInfo>
<CharProbs>
<0>0.9405716</0>
</CharProbs>
<FrameIndex>17</FrameIndex>
<Position>
<X>266</X>
<Y>440</Y>
</Position>
<Score>92.07686</Score>
<TextProb>0.92076856</TextProb>
<TimeStamp>0.28</TimeStamp>
<TrackId>1</TrackId>
<Text>总策划</Text>
</DetailInfo>
<EndTime>0.28</EndTime>
<StartTime>0.28</StartTime>
</OcrResults>
<VideoOcrResults>
<DetailInfo>
<Position>
<X>269</X>
<Y>423</Y>
</Position>
<Score>92.07686</Score>
<Text>总顾问</Text>
<TextType>0</TextType>
</DetailInfo>
<EndTime>0.92</EndTime>
<StartTime>0.92</StartTime>
</VideoOcrResults>
<SubtitlesResults>
<SubtitlesAllResults>
<key>[]</key>
</SubtitlesAllResults>
<SubtitlesAllResultsUrl>url</SubtitlesAllResultsUrl>
<SubtitlesChineseResults>
<key>你好</key>
</SubtitlesChineseResults>
<SubtitlesChineseResultsUrl>url1</SubtitlesChineseResultsUrl>
<SubtitlesEnglishResultsUrl>url2</SubtitlesEnglishResultsUrl>
</SubtitlesResults>
<CastResults>
<DetailInfo>
<key>cast</key>
</DetailInfo>
<EndTime>0.6</EndTime>
<StartTime>0.6</StartTime>
</CastResults>
<OcrResultsUrl>http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_bGHMygKsFw.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=6KQb9OXQldsg30w%2FNurHwAbjiJs%3D</OcrResultsUrl>
<OcrVideoResultsUrl>http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_VSRvetTHon.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=wfQviVVSyVRLPVlHDKXi6cTefHY%3D</OcrVideoResultsUrl>
</Data>
<Message>该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。</Message>
</RecognizeVideoCastCrewListResponse>
JSON
格式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "EE5B1A95-064F-1C5E-A6FE-FEE0D734A632",
"Data" : {
"OcrResults" : [ {
"DetailInfo" : [ {
"Boxes" : [ ],
"CharProbs" : [ [ 0.9405716 ] ],
"FrameIndex" : 17,
"Position" : [ {
"X" : 266,
"Y" : 440
} ],
"Score" : 92.07686,
"TextProb" : 0.92076856,
"TimeStamp" : 0.28,
"TrackId" : 1,
"Text" : "总策划"
} ],
"EndTime" : 0.28,
"StartTime" : 0.28
} ],
"VideoOcrResults" : [ {
"DetailInfo" : [ {
"Boxes" : [ ],
"Position" : [ {
"X" : 269,
"Y" : 423
} ],
"Score" : 92.07686,
"Text" : "总顾问",
"TextType" : 0
} ],
"EndTime" : 0.92,
"StartTime" : 0.92
} ],
"SubtitlesResults" : [ {
"SubtitlesAllResults" : {
"key" : "[]"
},
"SubtitlesAllResultsUrl" : "url",
"SubtitlesChineseResults" : {
"key" : "你好"
},
"SubtitlesChineseResultsUrl" : "url1",
"SubtitlesEnglishResultsUrl" : "url2"
} ],
"CastResults" : [ {
"DetailInfo" : {
"key" : "cast"
},
"EndTime" : 0.6,
"StartTime" : 0.6
} ],
"OcrResultsUrl" : "http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_bGHMygKsFw.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=6KQb9OXQldsg30w%2FNurHwAbjiJs%3D",
"OcrVideoResultsUrl" : "http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_VSRvetTHon.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=wfQviVVSyVRLPVlHDKXi6cTefHY%3D"
},
"Message" : "该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。"
}
返回示例补充说明
//查询结果:请求示例
http(s)://videorecog.cn-shanghai.aliyuncs.com/?Action=GetAsyncJobResult
&JobId=E75FE679-0303-4DD1-8252-1143B4FA8A27
&<公共请求参数>
//查询结果:返回示例
{
"RequestId" : "43A0AEB6-45F4-4138-8E89-E1A5D63200E3",
"Data" : {
"Status" : "PROCESS_SUCCESS",
"JobId" : "186AC396-0EEC-46F1-AAA1-BF3585227427",
"Result" : "{\"OcrResults\" : \"DetailInfo\" : \"Boxes\" : [452,27,505,46],\"CharProbs\" : 0.9405716061592102,\"FrameIndex\" : 17,\"Position\" : \"X\" : 266,\"Y\" : 440,\"Score\" : 92.07685702563117,\"TextProb\" : 0.9207685702563116,\"TimeStamp\" : 0.28,\"TrackId\" : 1,\"Text\" : \"总策划\",\"EndTime\" : 0.28,\"StartTime\" : 0.28,\"VideoOcrResults\" : \"DetailInfo\" : \"Boxes\" : [266,440,314,476],\"Position\" : \"X\" : 269,\"Y\" : 423,\"Score\" : 92.07685702563117,\"Text\" : \"总顾问\",\"TextType\" : 0,\"EndTime\" : 0.92,\"StartTime\" : 0.92,\"SubtitlesResults\" : \"SubtitlesAllResults\" : \"[]\",\"SubtitlesAllResultsUrl\" : \"url\",\"SubtitlesChineseResults\" : \"SubtitlesChineseResults\" : \"你好\",\"SubtitlesChineseResultsUrl\" : \"url1\",\"SubtitlesEnglishResultsUrl\" : \"url2\",\"CastResults\" : \"DetailInfo\" : \"cast\",\"EndTime\" : 0.6,\"StartTime\" : 0.6,\"OcrResultsUrl\" : \"http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_bGHMygKsFw.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=6KQb9OXQldsg30w%2FNurHwAbjiJs%3D\",\"OcrVideoResultsUrl\" : \"http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_VSRvetTHon.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=wfQviVVSyVRLPVlHDKXi6cTefHY%3D\"}"
}
}
//Result反序列化
{
"OcrResults" : [ {
"DetailInfo" : [ {
"Boxes" : [452,27,505,46],
"CharProbs" : 0.9405716061592102,
"FrameIndex" : 17,
"Position" : [ {
"X" : 266,
"Y" : 440
} ]
"Score" : 92.07685702563117,
"TextProb" : 0.9207685702563116,
"TimeStamp" : 0.28,
"TrackId" : 1,
"Text" : "总策划"
} ]
"EndTime" : 0.28,
"StartTime" : 0.28
} ]
"VideoOcrResults" : [ {
"DetailInfo" : [ {
"Boxes" : [266,440,314,476],
"Position" : [ {
"X" : 269,
"Y" : 423
} ]
"Score" : 92.07685702563117,
"Text" : "总顾问",
"TextType" : 0
} ]
"EndTime" : 0.92,
"StartTime" : 0.92
} ]
"SubtitlesResults" : [ {
"SubtitlesAllResults" : "[]",
"SubtitlesAllResultsUrl" : "url",
"SubtitlesChineseResults" : "你好",
"SubtitlesChineseResultsUrl" : "url1",
"SubtitlesEnglishResultsUrl" : "url2"
} ]
"CastResults" : [ {
"DetailInfo" : "cast",
"EndTime" : 0.28,
"StartTime" : 0.28
} ]
"OcrResultsUrl" : "http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_bGHMygKsFw.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=6KQb9OXQldsg30w%2FNurHwAbjiJs%3D",
"OcrVideoResultsUrl" : "http://vibktprfx-prod-prod-media-ai-cn-shanghai.oss-cn-shanghai.aliyuncs.com/video-ocr/1665475907_VSRvetTHon.json?Expires=1665477707&OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&Signature=wfQviVVSyVRLPVlHDKXi6cTefHY%3D"
}
错误码
关于视频OCR的错误码,详情请参见常见错误码。
安全声明
- 请确保上传的图片或文件来源符合相应的法律法规。
- 通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除。