视频OCR

本文介绍视频理解(videorecog)类目下的视频OCR RecognizeVideoCastCrewList的语法及示例。

功能描述

视频OCR能力可以识别视频中的文本,可涵盖新闻、影视剧、娱乐、体育等多场景的中英文、繁简体、比分等识别,支持普通字幕、定常字幕、滚动字幕、部分自然场景文字、竖排文字及艺术字等多种类型。

说明
  • 您可以进入在线咨询获取在线人工帮助。
  • 当前能力可在视觉智能开放平台有完整的免费产品体验,您可以单击立即试用对该能力进行更直观试用以及在线购买。
  • 阿里云视觉智能开放平台视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。

应用场景

  • 影视字幕识别:对电影、电视剧等长视频中的配音字幕进行识别,包括时间戳与对应文本内容,从而实现外挂字幕生成、敏感内容识别审核等需求。
  • 演职员表识别:识别影视剧内容片尾滚动字幕中的演职员表信息,用于视频信息校对、敏感人物查询等场景。
  • 体育文字识别:在体育赛事场景中识别文本内容,包括比分、广告文字等,实现赛事状态分析、广告查询监播等场景。

特色优势

  • 覆盖视频类型广:支持多种不同视频类型。
  • 支持文字种类多:支持普通字幕、定常字幕、滚动字幕、部分自然场景文字、竖排文字及艺术字等多种类型。
  • 识别准确性高:对低分辨率、复杂场景等均有较好的识别准确性。

接入指引

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

视频信息提取类型:

  • subtitles:字幕提取。
  • 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

文本类型。取值如下:

  • 0:正常字幕
  • 1:滚动字幕
  • 2:定长标识性字幕
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&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&amp;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&amp;OSSAccessKeyId=LTAI4FoLmvQ9urWXgSRp****&amp;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小时后会被系统自动清理删除。