You need to enable JavaScript to run this app.
导航
调用方式
最近更新时间:2023.09.20 11:46:11首次发布时间:2023.06.05 17:20:47

说明

该服务为异步调用,分为任务提交任务结果查询两步骤。

接口简介

对输入视频进行多维度画质评分,包括清晰度、亮度、噪声、色彩、美观度、有无边框等。

限制条件

名称内容
视频要求1.视频格式:h264编码格式,非该格式会造成服务内部错误
2.视频大小不超过380MB

任务提交

名称内容
接口地址https://visual.volcengineapi.com
请求方式POST
Content-Typeapplication/json

请求参数

(1)header请求参数

公共请求参数

以下请求参数列表仅列出了接口请求参数和必要公共参数,完整公共参数列表见 公共参数

名称类型是否必填描述
X-DateString使用UTC时间,精确到秒。请使用格式:YYYYMMDD'T'HHMMSS'Z' ,例如:20201103T104027Z

Authorization

String

HMAC-SHA256:签名方法
-Credential为签名凭证,其中:
-AccessKeyId为访问密钥ID,可在 访问密钥(Access Key) 获取;
-ShortDate为请求的短时间,使用UTC时间,精确到日。请使用格式:YYYYMMDD,例如:20180201
-Region为请求地区,国内一般为为cn-north-1
-Service为请求的服务,一般为cv
-SignedHeaders为参与签名计算的头部信息,content-typehost 为必选头部;
-Signature为签名,可在 签名方法 获取。
注:我们提供了SDK及签名示例供您实现服务快速接入,具体可参考 快速接入
例如:HMAC-SHA256 Credential={AccessKeyId}/{ShortDate}/{Region}/{Service}/request, SignedHeaders={SignedHeaders}, Signature={Signature}

X-Security-TokenString指安全令牌服务(Security Token Service,STS) 颁发的临时安全凭证中的SessionToken,使用长期密钥时无需填写该参数。

(2)Query参数

业务请求参数

参数类型可选/必选说明
Actionstring必选接口名,取值:LensVidaVideoSubmitTaskV2
Versionstring必选版本号,取值:2022-08-31

(3)Body参数

业务请求参数

参数类型可选/必选说明

req_key

string

必选

算法名称,取固定值为"lens_vida_video"

url

string

必选

需要打分的视频的url,必须可以直接访问

vida_mode

string

必选

对输出结果的维度进行控制 目前支持两种
  1. vida_simple: 精简配置,只输出维度分数和总分
  2. vida_full: 完整配置,输出所有打分项目,包括客观指标,检测结果,维度分数和总分

输出说明

(1)通用输出参数

通用输出参数具体见通用返回字段及错误码

(2)业务输出参数

data字段说明

字段类型说明
task_idString任务编号,用于查询任务运行状态和结果

(3)输出示例

{
    "code": 10000,
    "data": {
        "task_id": "7241566624445808696"
    },
    "message": "Success",
    "request_id": "2023060621365868E916E0C7C24D070E2A",
    "status": 10000,
    "time_elapsed": "7.633228ms"
}

错误码

(1)通用错误码

请参考通用返回字段及错误码

(2)业务错误码

http code错误码错误信息说明
20010000Success成功
40050201Missing Input Parameters: {param}缺少输入参数param,param可能为video、result_duration
40050200Invalid Input Parameters: {param}输入参数param不合规,param可能为video、result_duration、result_width
40050200Invalid Input Parameters: Video Unchanged输入参数不合规,视频不需要任何处理
40050211Video Size Exceeds Maximum Limit: please compress the video输入视频过大,超过限制
50050500Internal Error服务内部错误

任务结果查询

名称内容
请求方式POST
Content-Typeapplication/json
是否需要鉴权

请求参数

(1)Query参数

参数类型可选/必选说明
ActionString必选接口名,取值:LensVidaVideoGetResultV2
VersionString必选版本号,取值:2022-08-31

(2)Body参数

参数类型可选/必选说明
req_keystring必选算法名称,取固定值为"lens_vida_video"
task_idstring必选任务ID

输出说明

(1)通用输出参数

通用输出参数具体见通用返回字段及错误码

(2)业务输出参数

data字段说明


字段

类型

参数范围

说明

描述

score_total

float


总分输出

拟合大众主观上对图片、视频的画质感受,分值越高表示画质越清晰。

is_sandwitch_video

int

0/1

是否三明治视频

判断视频是否添加模糊边或者黑边。

is_pure_background

int

0/1

画面较为平坦,几乎无纹理或者无实质内容。

is_night

int

0/1

白天/夜晚

检测白天/夜晚场景。

has_black_edge

int

0/1

视频是否有黑边

视频是否添加黑边。

score_luma

float


亮度总分

从亮度,对比度,过欠曝程度等多角度对图像亮度维度做出评价。分值越高表示亮度越适中。

brightness

float


全局亮度

全局亮度的衡量指标,分值越小代表越黑。

under_exposure

float


欠曝程度

欠曝区域的衡量指标,分值越小代表欠曝区域越小。

over_exposure

float


过曝程度

过曝区域的衡量指标,分值越小代表过曝区域越小。

contrast

float


全局对比度

对比度的衡量指标,分值越小代表对比度越低。

score_detail

float

全局细节

从artifact角度对图像的细节失真程度做出评价,例如模糊、振铃、快效应。分值越小代表清晰度越差。

noise_sigma

float

噪声强度

整体时域噪声(视频)的抖动程度或空间噪声(图像)的强度,值越大表示噪声越强。

brightness_weight_y

float


y强度权重

Y 通道的噪声在总体噪声估计中的权重。

brightness_weight_u

float


u强度权重

U 通道的噪声在总体噪声估计中的权重。

brightness_weight_v

float


v强度权重

V 通道的噪声在总体噪声估计中的权重。

movement_weight_y

float


y运动权重

衡量视频运动强度的指标,值越大表示运动位移越大。此数值使用 Y 通道计算。

movement_weight_u

float


u运动权重

意义同上,但使用 U 通道计算。

movement_weight_v

float


v运动权重

意义同上,但使用 V 通道计算。

score_aesthetics

float


美学打分

拟合大众对图像美观度的主观感受,分值越高表示图像越美观。

score_face

float


人脸打分

依据人脸清晰度、有无遮挡、偏转角度等综合评价人脸质量,人脸越易于辨识质量越高。

(3)输出示例

{
    "code": 10000,
    "data": {
        "binary_data_base64": [],
        "resp_data": "{\"status_code\": 0, \"status_message\": \"success\", \"process_time\": null, \"time_elapsed\": 5744, \"data\": {\"vid\": null, \"url\": \"https://xxxx\", \"vida_result\": {\"score_total\": 69.71670532226562, \"is_sandwitch_video\": 0, \"is_pure_background\": 0, \"is_night\": 0, \"has_black_edge\": 0, \"score_luma\": 79.53770446777344, \"brightness\": 59.86982727050781, \"under_exposure\": 4.443576335906982, \"over_exposure\": 1.9685474634170532, \"contrast\": 39.437530517578125, \"score_detail\": 74.9420166015625, \"noise_sigma\": 7.091580390930176, \"brightness_weight_y\": 0.19034281373023987, \"brightness_weight_u\": 0.9974112510681152, \"brightness_weight_v\": 0.9989843368530273, \"movement_weight_y\": 0.7880885601043701, \"movement_weight_u\": 0.895035982131958, \"movement_weight_v\": 0.8960858583450317, \"score_aesthetics\": 84.43596649169922, \"score_aesthetics_v2\": 0.7165119647979736, \"score_face\": 0.08322300016880035, \"sandwitch_top\": 0, \"sandwitch_bottom\": 0, \"sandwitch_left\": 0, \"sandwitch_right\": 0}, \"extra\": null, \"media_info\": {\"media_name\": \"https://xxxxxxx\", \"is_HDR\": \"SDR\", \"bit_depth\": \"8bit\", \"EOTF\": \"others\", \"video_codec_name\": \"h264\", \"video_profile\": \"Main\", \"video_width\": 720, \"video_height\": 1280, \"video_avg_frame_rate\": 25.0, \"video_duration\": \"4.960000\", \"video_bit_rate\": \"6304008\", \"video_nb_frames\": \"124\", \"video_codec_tag_string\": \"avc1\", \"video_pix_fmt\": \"yuv420p\", \"video_level\": 32, \"video_color_range\": \"tv\", \"video_color_space\": \"bt709\", \"video_color_transfer\": \"bt709\", \"video_color_primaries\": \"bt709\", \"audio_codec_name\": \"aac\", \"audio_profile\": \"LC\", \"audio_channel_layout\": \"stereo\", \"audio_bit_rate\": \"102966\", \"audio_sample_rate\": \"44100\", \"media_bit_rate\": 6406974, \"media_size\": \"3.97MB\"}}}",
        "status": "done"
    },
    "message": "Success",
    "request_id": "2023060621505145E2B69F347CE50745F0",
    "status": 10000,
    "time_elapsed": "5.128922ms"
}

错误码

(1)通用错误码

请参考通用返回字段及错误码

(2)业务错误码

http code错误码错误信息说明
20010000Success成功
40050201Missing Input Parameters: task_id缺少输入参数task_id
40050200Invalid Input Parameters: task_id输入参数task_id无效
50050500Internal Error服务内部错误
50050502Processing time is too long, exceeding the limit服务处理超时