接口说明
百炼轻应用-视频理解:基于这接口,可以传入一个视频,进行字幕提取、视频内容分析、视频总结、标题抽取、思维导图生成等任务,也可以通过自定义 prompt 来实现差异化的视频内容生成。
欢迎前往轻应用-影视传媒视频理解直接体验。
通过 SDK 方式调用 API 可参考视频理解控制台“API”下的示例。
API-SDK 调用说明
API 接口说明
调用前必看:!!!
调用前必看:!!!
调用前必看:!!!
调用视频理解 API 有 2 种方式,对应 2 个接口
-
调用离线异步 API(推荐):最多支持 10 并发,无需等待执行结束,异步调度,sdk 支持绝大部分开发语言,openapi 门户可以直接调试和使用,也可以到轻应用-影视传媒视频理解控制台,切换到“API” 页签下查看调用 demo。
-
调用在线同步 API(不推荐):本文档对应接口,全局只有 1 并发,需保持链接等待结果,sdk 支持的语言有限(java、python),openapi 门户页面不支持调试和调用(sse)(copy 出来代码无法直接使用),一般少量体验用,调用需到轻应用-影视传媒视频理解控制台,切换到“API” 页签下查看调用 demo。
在线同步 API 调用说明
可以通过 SDK 调用当前 API,因“调试”-OpenAPI 门户对 SSE 协议支持还不够完善,建议参考调用示例,详见轻应用-影视传媒视频理解-切换 API 页签下。
推荐Java(异步 sdk)、Python语言的 SDK,其中 Java(异步 sdk)依赖如下:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-quanmiaolightapp20240801</artifactId>
<version>取最新版本</version>
</dependency>
权限说明
前置条件
- 登录下百炼控制台,确认百炼是可以访问状态
- 主账号调用:默认有所有 API 调用权限。
- 子账号调用:子账号默认无权限(AccessForbid)调用当前 API,需要同时在 RAM 控制台和百炼控制台中做授权。
RAM 控制台授权说明
去 RAM 控制台授权,具体 RAM 授权操作,参考 RAM 文档,步骤如下:
1、自定义授权策略:菜单“权限管理-权限策略”下,创建权限策略,脚本编辑方式录入如下任意一个方案中 json。
- 方案一:授权子账号访问 quanmiaolightapp 下所有接口权限,包括视频理解 --建议
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "quanmiaolightapp:*",
"Resource": "*"
}
]
}
- 方案二:授权子子账号指定接口,比如视频理解“RunVideoAnalysis”
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "quanmiaolightapp:RunVideoAnalysis",
"Resource": "*"
}
]
}
2、给子账号授权:菜单“身份管理-用户”下,找到对应用户,新增授权,切换自定义授权,添加上面自定义的授权策略。
百炼控制台授权说明
使用主账号或有百炼管理员权限的子账号,登录百炼控制台,在权限管理-用户管理页面添加子账号,并进行授权管理员权限。
接口部分入参取值说明
抽帧配置字段(frameSampleMethod)
用于调整抽帧的参数,包括抽帧间隔、抽帧像素。抽帧方式默认为标准方式,目前共提供三种方式可供选择,标准、快速/更低成本、自定义。
- 使用“标准”方式进行抽帧时,应用系统内置参数进行抽帧,抽帧间隔与抽帧像素无需用户自定义。标准方式抽帧间隔和抽帧像素取值规则为:
- 根据视频时长取分不同档位,见视频理解控制台,“效果调试”tab 下 -> 高级功能 -> 抽帧方式 -> 自定义中的?提示
- 视频时长和档位映射关系为:取视频时长和档位时长举例最近的档,如果相同,取档位时长大的
- 使用“快速/更低成本”方式进行抽帧时,应用系统内置参数系数运算后的结果进行抽帧,抽帧间隔与抽帧像素无需用户自定义。
- 使用“自定义”方式时,则需要用户传入抽帧间隔、抽帧像素两个参数,参数的取值范围对不同时长的视频存在不同的限制,取值范围具体计算规则如下:
- 最小抽帧间隔 = max("标准"方式对应抽帧间隔 - 0.2,1)
- 最大抽帧间隔 = "标准"方式对应抽帧间隔 + 5
- 最小抽帧像素 = max("标准"方式对应抽帧像素 - 50,300)
- 最大抽帧像素 = "标准"方式对应抽帧像素 + 50
流控信息
请求语法
POST /{workspaceId}/quanmiao/lightapp/runVideoAnalysis HTTP/1.1
路径参数
字段名称 | 字段详情 |
---|---|
workspaceIdstring | 百炼业务空间唯一标识:获取 workspaceId 示例值:llm-xxx |
请求参数
字段名称 | 字段详情 |
---|---|
videoUrlstring | 视频链接 示例值:http://xxxx.mp4 |
videoModelIdstring | 视频 vl 任务模型唯一标识,支持的模型:展开详情 示例值:qwen-vl-max-latest |
videoModelCustomPromptTemplatestring | 视频 vl 任务 prompt 模版:必须包含{videoAsrText}变量,{videoAsrText}是视频的 ASR 文本信息,不传默认取页面看到的默认值。 示例值:# 角色
你是一名视频分析师,擅长对各种视频片段进行理解。
# 任务描述
给你一个视频片段的多张关键帧图片,请你完成以下任务。
- 输出每张图片的画面信息,包括人物、物体、动作、文字、字幕、镜头语言等。
- 把每张图片的信息串联起来,生成视频的详细概述,还原该片段的剧情。
# 限制
- 分析范围严格限定于提供的视频子片段,不涉及视频之外的任何推测或背景信息。
- 总结时需严格依据视频内容,不可添加个人臆测或创意性内容。
- 保持对所有视频元素(尤其是文字和字幕)的高保真还原,避免信息遗漏或误解。
# 输入数据
## 视频片段ASR信息 (如果输入为空则忽略ASR信息)
{videoAsrText}
# 输出格式
直接按照任务目标里即可,先输出每张图片的描述,再串联起来输出整个视频片段的剧情。 |
modelIdstring | 视频总结(文本加工)依赖的大模型唯一标识,支持的模型,如果文本加工阶段想跑多任务,可以走 textProcessTasks 字段,如果传入了 textProcessTasks,则当前字段和当前字段对应的 prompt 模版 id,prompt 模版将不再生效。展开详情 示例值:qwen-max-latest |
modelCustomPromptTemplateIdstring | 视频总结依赖的大模型 prompt 模版唯一标识:展开详情 示例值:PlotDetail |
modelCustomPromptTemplatestring | 视频总结依赖的大模型 prompt 模版:必须同时包含{videoAsrText} 和 {videoAnalysisText}变量,{videoAsrText}是视频的 ASR 文本信息,{videoAnalysisText}是视频的各个子镜头的 VL 视觉信息,不传默认取页面看到的默认值。 示例值:# 角色
你是一个专业的视频标注专员,擅长结合视频镜头信息来分析处理各种视频任务。
# 任务目标
请你结合输入数据串联、还原出整个视频的详细剧情。
# 限制
1.如出现语法上错误,或逻辑不通,请直接修改
2.在视频分镜中,如果包含台词,可能会出现说话者与其所说内容不匹配的情况。因此,必须根据剧情的进展,准确判断每段台词的真实说话者
3.如果视频分镜中无台词,请根据视频音频文字为其匹配台词
4.修改后的故事请适当保留视频分镜中对人物、场景的描写
5.帮忙润色一下故事,使其更具逻辑性
6.结合视频分镜中的人物外观特点,如果有外观相近的人物是同一个角色。因此,需要将不同分镜中的人物角色统一。
# 输入数据
## 资料一:视频分镜信息(视频各镜头的视觉描述信息)
{videoAnalysisText}
## 资料二:视频ASR转录信息(未标注出说话者,可能有错误和遗漏,如果没有输入ASR,则忽略此信息)
{videoAsrText}
# 输出格式
直接输出视频剧情,不要输出其他信息。 |
generateOptionsarray<string> | 视频理解生成任务选项。 |
taskIdstring | 生成任务唯一标识:不传会默认生成 示例值:a3d1c2ac-f086-4a21-9069-f5631542f5a2 |
originalSessionIdstring | 源任务唯一标识:如果要基于历史任务重跑某个子任务(generateOptions 字段指定的),可以传入历史任务 taskId+originalSessionId,后台会加载历史任务已生成数据,跳过前置步骤,提升生成效率,如果后台数据过久,比如超过 7 天,查询失败,会默认重跑前置依赖子任务。 示例值:a3d1c2ac-f086-4a21-9069-f5631542f5ax |
videoExtraInfostring | 自定义扩展文本素材:应用到生成中,需要手动调整 prompt 模版,增加{videoExtraInfo}变量 示例值:视频描述了:xx |
snapshotIntervalnumber<double> | 抽帧间隔:X 秒一帧,取值范围[1, 10],间隔越大模型能提取到的信息越少,耗时越短,成本越低,分析结果的细腻度越底,默认已是最佳实践,一般无需修改,如果要修改,请根据视频时长来定,建议[1~3]。 示例值:2 |
languagestring | 语音识别语言:展开详情 示例值:english |
frameSampleMethodobject | 抽帧配置 |
videoRolesarray<object> | 人物 |
textProcessTasksarray<object> | 视频总结(文本加工)任务列表:最多支持 3 个 |
faceIdentitySimilarityMinScorenumber<float> | 人物识别相似度阈值:(0~1) 示例值:0.7 |
videoShotFaceIdentityCountinteger<int32> | 人物匹配时,单镜头(分镜),参与匹配的抽帧(图片)数量:[1~5] 示例值:3 |
返回参数
字段名称 | 字段详情 |
---|---|
headerobject | 流式输出 header 头,包含返回通用信息 |
payloadobject | 生成结果数据 |
requestIdstring | 请求唯一标识 示例值:117F5ABE-CF02-5502-9A3F-E56BC9081A64 |
返回示例
错误码
变更历史
变更时间 | 变更内容概要 | 操作 | |
---|---|---|---|
2025-03-13 | |||
2025-01-15 | |||
2025-01-14 | |||
2024-12-05 | |||
2024-09-26 | |||
2024-09-05 |