该服务为异步调用,分为任务提交
和任务结果查询
两步骤。
对输入视频进行多维度画质评分,包括清晰度、亮度、噪声、色彩、美观度、有无边框等。
名称 | 内容 |
---|---|
视频要求 | 1.视频格式:h264编码格式,非该格式会造成服务内部错误 2.视频大小不超过380MB |
名称 | 内容 |
---|---|
接口地址 | https://visual.volcengineapi.com |
请求方式 | POST |
Content-Type | application/json |
请求参数
(1)header请求参数
公共请求参数
以下请求参数列表仅列出了接口请求参数和必要公共参数,完整公共参数列表见 公共参数
名称 | 类型 | 是否必填 | 描述 |
---|---|---|---|
X-Date | String | 是 | 使用UTC时间,精确到秒。请使用格式:YYYYMMDD'T'HHMMSS'Z' ,例如:20201103T104027Z |
Authorization | String | 是 | HMAC-SHA256:签名方法 |
X-Security-Token | String | 否 | 指安全令牌服务(Security Token Service,STS) 颁发的临时安全凭证中的SessionToken,使用长期密钥时无需填写该参数。 |
(2)Query参数
业务请求参数
参数 | 类型 | 可选/必选 | 说明 |
---|---|---|---|
Action | string | 必选 | 接口名,取值:LensVidaVideoSubmitTaskV2 |
Version | string | 必选 | 版本号,取值:2022-08-31 |
(3)Body参数
业务请求参数
参数 | 类型 | 可选/必选 | 说明 |
---|---|---|---|
req_key | string | 必选 | 算法名称,取固定值为"lens_vida_video" |
url | string | 必选 | 需要打分的视频的url,必须可以直接访问 |
vida_mode | string | 必选 | 对输出结果的维度进行控制 目前支持两种
|
(1)通用输出参数
通用输出参数具体见通用返回字段及错误码
(2)业务输出参数
data
字段说明
字段 | 类型 | 说明 |
---|---|---|
task_id | String | 任务编号,用于查询任务运行状态和结果 |
(3)输出示例
{ "code": 10000, "data": { "task_id": "7241566624445808696" }, "message": "Success", "request_id": "2023060621365868E916E0C7C24D070E2A", "status": 10000, "time_elapsed": "7.633228ms" }
(1)通用错误码
请参考通用返回字段及错误码
(2)业务错误码
http code | 错误码 | 错误信息 | 说明 |
---|---|---|---|
200 | 10000 | Success | 成功 |
400 | 50201 | Missing Input Parameters: {param} | 缺少输入参数param,param可能为video、result_duration |
400 | 50200 | Invalid Input Parameters: {param} | 输入参数param不合规,param可能为video、result_duration、result_width |
400 | 50200 | Invalid Input Parameters: Video Unchanged | 输入参数不合规,视频不需要任何处理 |
400 | 50211 | Video Size Exceeds Maximum Limit: please compress the video | 输入视频过大,超过限制 |
500 | 50500 | Internal Error | 服务内部错误 |
名称 | 内容 |
---|---|
请求方式 | POST |
Content-Type | application/json |
是否需要鉴权 | 是 |
(1)Query参数
参数 | 类型 | 可选/必选 | 说明 |
---|---|---|---|
Action | String | 必选 | 接口名,取值:LensVidaVideoGetResultV2 |
Version | String | 必选 | 版本号,取值:2022-08-31 |
(2)Body参数
参数 | 类型 | 可选/必选 | 说明 |
---|---|---|---|
req_key | string | 必选 | 算法名称,取固定值为"lens_vida_video" |
task_id | string | 必选 | 任务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 | 错误码 | 错误信息 | 说明 |
---|---|---|---|
200 | 10000 | Success | 成功 |
400 | 50201 | Missing Input Parameters: task_id | 缺少输入参数task_id |
400 | 50200 | Invalid Input Parameters: task_id | 输入参数task_id无效 |
500 | 50500 | Internal Error | 服务内部错误 |
500 | 50502 | Processing time is too long, exceeding the limit | 服务处理超时 |