本文为您介绍工作流执行完成事件。
WorkflowComplete
配置了工作流执行完成事件通知后,工作流任务执行完成时您将收到通知。您可以从接收到的回调结果中获取到转码任务的状态及转码后的视频地址等信息。配置方法详见事件通知概览。关联接口:触发工作流。
参数 | 类型 | 示例值 | 是否必传 | 说明 |
|---|---|---|---|---|
RequestId | String |
| 是 | 请求的唯一 ID |
Version | String |
| 是 | 回调版本 |
EventType | String |
| 是 | 事件名称 |
EventTime | String |
| 是 | 事件产生时间,UTC 时间,精度为秒 |
Data |
| 是 | 回调内容,JSON 格式 |
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Code | String | 是 | 状态码 |
Message | String | 是 | 信息 |
Vid | String | 是 | 视频 ID |
RunId | String | 是 | 工作流任务 ID |
SpaceName | String | 是 | 点播空间名称 |
TemplateId | String | 是 | 工作流 ID |
CallbackArgs | String | 否 | 您在触发工作流时设置的自定义信息。仅当您在触发工作流时设置了 |
SourceInfo | 是 | 片源信息 | |
PosterUri | String | 否 | 封面图存储地址 |
TranscodeInfos | Array of TranscodeInfo | 否 | 转码产物信息。仅当工作流中包含视频转码、音频转码或机智超清转码时返回。 |
AdaptBitrateTranscodeInfos | Array of AdaptBitrateTranscodeInfos | 否 | 自适应码流转码产物信息。仅当工作流中包含自适应码流任务时返回。完整介绍请见自适应码流转码和播放。 |
Snapshots | Array of Snapshot | 否 | 截图结果。仅当工作流中包含截图任务时返回。完整介绍请见视频截图。 |
SmartSubtitles | Array of SubtitleInfo | 否 | 智能字幕结果。仅当工作流中包含智能字幕任务时返回。完整介绍请见生成和使用字幕。 |
HiddenWatermarkExtract | Array of HiddenWatermarkExtract | 否 | 暗水印提取结果。仅当工作流中包含暗水印提取任务时返回。完整介绍请见暗水印(数字水印)。 |
片源信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
FileId | String | 是 | 文件 ID |
Md5 | String | 否 | 文件 MD5 值 |
FileType | String | 否 | 文件类型:
|
Codec | String | 否 | 编码类型 |
Height | Integer | 否 | 视频高度,单位为 px |
Width | Integer | 否 | 视频宽度,单位为 px |
Format | String | 否 | 封装格式 |
Duration | Float | 否 | 视频时长,单位为秒 |
Size | Integer | 否 | 文件大小,单位为字节 |
FileName | String | 是 | 文件路径 |
StoreUri | String | 是 | 文件存储地址 |
Definition | String | 否 | 视频分辨率 |
Bitrate | Integer | 否 | 视频码率,单位为 bps |
Fps | Float | 否 | 视频帧率,单位为 fps |
CreateTime | String | 是 | 创建时间 |
Inspection | 否 | 片源检测结果。仅当工作流中包含片源检测任务时返回。 | |
SourceAdjustResult | 否 | 片源调整结果。仅当工作流中包含片源调整任务时返回。 | |
RepairResult | 否 | 片源修复结果。仅当工作流中包含片源修复任务时返回。 |
片源检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
BlackFrames | Array of BlackFrameInfo | 否 | 黑帧检测结果 |
interlace | Boolean | 否 | 水波纹检测结果 |
Quality | 否 | 视频质量检测结果 | |
DeLogo | Array of DeLogoInfo | 否 | 去水印检测结果 |
Suffix | 否 | 后贴片检测结果 |
黑帧检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Start | Float | 否 | 黑帧开始时间,单位为秒 |
End | Float | 否 | 黑帧结束时间,单位为秒 |
Duration | Float | 否 | 黑帧持续时间,单位为秒 |
视频质量检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Visual | 否 | 图像质量信息 | |
VolumeInfo | 否 | 音量信息 |
图像质量信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
VQScore | Float | 否 | 画质检测-VQScore 视频质量评分 |
Contrast | Float | 否 | 对比度 |
Colorfulness | Float | 否 | 色彩 |
Brightness | Float | 否 | 亮度 |
Texture | Float | 否 | 纹理 |
Noise | Float | 否 | 噪声 |
音量信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Loudness | Float | 否 | 响度, 单位为 LUFS |
Peak | Float | 否 | 峰值, 取值范围为 (0, 1.0],峰值归一化 |
MeanVolume | Float | 否 | 均值, 单位为 dB |
MaxVolume | Float | 最大值, 单位为 dB |
去水印检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
AnchorWidth | Integer | 否 | Anchor 宽度 |
AnchorHeight | Integer | 否 | Anchor 高度 |
PosX | Integer | 否 | 水印左上角 X 坐标 |
PosY | Integer | 否 | 水印左上角 Y 坐标 |
SizeX | Integer | 否 | 水印宽度 |
SizeY | Integer | 否 | 水印高度 |
后贴片检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
StartTime | Float | 否 | 后贴片开始时间,单位为秒 |
EndTime | Float | 否 | 后贴片结束时间,单位为秒 |
片源调整结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
AdjustType | String | 否 | 片源调整类型:
|
Vid | String | 否 | 片源新的视频 ID。仅 |
片源修复结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
BlackFrames | Integer | 否 | 黑帧去除结果:
|
Interlace | Integer | 否 | 水波纹去除结果:
|
DeLogo | Integer | 否 | 去水印去除结果:
|
Suffix | Integer | 否 | 后贴片去除结果:
|
转码产物信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
FileId | String | 否 | 文件 ID |
Md5 | String | 否 | 文件 MD5 值 |
FileType | String | 否 | 文件类型:
|
LogoType | String | 否 | 水印贴片标签。即您在视频点播控制台创建水印贴片模板时设置的自定义水印贴片标签,详见水印贴片模板。 |
Encrypt | Boolean | 否 | 是否加密 |
Format | String | 否 | 封装格式 |
Duration | Float | 否 | 转码流时长,单位为秒 |
Size | Integer | 否 | 文件大小,单位为字节 |
FileName | String | 否 | 文件路径 |
StoreUri | String | 否 | 文件存储地址 |
VideoStreamMeta | 否 | 视频流元信息 | |
AudioStreamMeta | 否 | 音频流元信息 | |
Quality | 否 | 转码流检测结果。仅当工作流中包含转码流检测任务时返回。 | |
RepairResult | 否 | 转码流修复结果。仅当工作流中包含转码流修复任务时返回。 | |
CreateTime | String | 否 | 创建时间 |
Height | Integer | 否 | 视频高度,单位为 px |
Width | Integer | 否 | 视频宽度,单位为 px |
Fps | Float | 否 | 视频帧率,单位为 fps |
Bitrate | Integer | 否 | 视频码率,单位为 bps |
视频流元信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Duration | Float | 否 | 视频流时长,单位为秒 |
Definition | Float | 否 | 清晰度 |
Codec | String | 否 | 编码类型 |
Bitrate | Integer | 否 | 视频码率,单位为 bps |
音频流元信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Codec | String | 否 | 编码类型,仅在纯音频时返回 |
Duration | Float | 否 | 音频流时长,单位为秒 |
SampleRate | Float | 否 | 音频采样率,仅在纯音频时返回 |
Bitrate | Integer | 否 | 音频码率,仅在纯音频时返回 |
转码流质量检测结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Visual | 否 | 转码流图像质量信息。 | |
VolumeInfo | 否 | 转码流音量信息。 | |
PSNR | 否 | 峰值信噪比结果(PSNR,Peak Signal-to-Noise Ratio) | |
SSIM | 否 | 结构相似性结果(SSIM,Structural SIMilarity)。仅转码后视频可计算,有则返回 | |
VMAF | Float | 否 | 视频多方法评估融合结果(Video Multi-method Assessment Fusion,VMAF) |
峰值信噪比结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
PSNR_Y | Float | 否 | y 分量 psnr |
PSNR_U | Float | 否 | u 分量 psnr |
PSNR_V | Float | 否 | v 分量 psnr |
PSNR_G | Float | 否 | Global psnr 默认推荐用 psnr_g |
结构相似性结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
SSIM_Y | Float | 否 | y 分量 ssim |
SSIM_U | Float | 否 | u 分量 ssim |
SSIM_V | Float | 否 | v 分量 ssim |
SSIM_G | Float | 否 | Global ssim 默认推荐用 ssim_g |
自适应码流信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
FileId | String | 否 | 文件 ID |
Encrypt | Boolean | 否 | 是否加密 |
LogoType | String | 否 | 水印贴片标签。即您在视频点播控制台创建水印贴片模板时设置的自定义水印贴片标签,详见水印贴片模板。 |
Format | String | 否 | 封装格式 |
Size | Integer | 否 | 文件大小,单位为字节 |
StoreUri | String | 否 | 文件存储地址 |
SubAdaptBitrateStreamMetas | Array of SubAdaptBitrateStreamMeta | 子流元信息 | |
CreateTime | String | 否 | 创建时间 |
子流元信息
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
FileType | String | 否 | 文件类型。取值如下:
|
Codec | String | 否 | 编码格式。 说明
|
Height | Integer | 否 | 视频高度,单位为 px 说明 仅当 |
Width | Integer | 否 | 视频宽度,单位为 px 说明 仅当 |
Duration | Float | 否 | 文件时长,单位为秒 |
Definition | String | 否 | 视频清晰度 说明 仅当 |
Bitrate | Integer | 否 | 码率,单位为 bps |
Fps | Float | 否 | 视频帧率,单位为 fps 说明 仅当 |
Size | Integer | 否 | 文件大小,单位为字节 |
截图结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Type | String | 否 | 截图类型。取值如下:
|
Params | Object | 否 | 不同类型的截图返回不同的结果,详见以下: |
静态图
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUri | String | 否 | 图片存储地址 |
Width | Integer | 否 | 图片宽度,单位为 px |
Height | Integer | 否 | 图片高度,单位为 px |
动图
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUri | String | 否 | 图片存储地址 |
Width | Integer | 否 | 图片宽度,单位为 px |
Height | Integer | 否 | 图片高度,单位为 px |
反复循环动图
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUri | String | 否 | 图片存储地址 |
Width | Integer | 否 | 图片宽度,单位为 px |
Height | Integer | 否 | 图片高度,单位为 px |
雪碧图
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUris | Array of String | 否 | 雪碧图存储地址 |
CellWidth | Integer | 否 | 图片宽度,单位为 px |
CellHeight | Integer | 否 | 图片高度,单位为 px |
ImgXLen | Integer | 否 | 水平方向缩略小图个数 |
ImgYLen | Integer | 否 | 垂直方向缩略小图个数 |
Interval | Integer | 否 | 截图间隔,单位为秒 |
CaptureNum | Integer | 否 | 截取的缩略小图总数量 |
采样截图
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUris | Array of String | 否 | 多张采样截图的存储地址。当您在截图模板中将采样截图的输出方式设定为截图 Uri 时,系统会通过 |
IndexUri | String | 否 | 截图 Index 文件 URI 地址。当您在截图模板中将采样截图的输出方式设定为截图地址文件时,系统将返回一个包含所有截图 URI 的截图 Index 文件。具体参数配置请参见配置采样截图参数。
说明 若您在调用 StartWorkflow 接口时,通过设置 |
Width | Integer | 否 | 图片宽度,单位为 px |
Height | Integer | 否 | 图片高度,单位为 px |
Interval | Float | 否 | 截图间隔,单位为秒 |
CaptureNum | int32 | 否 | 截图数量 |
Duration | Float | 否 | 片源时长,单位为秒 |
Offsets | Array of Float | 否 | 采样截图的时间点。仅当您在调用 StartWorkflow 接口时,通过设置 |
智能封面(AI 动图)
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Format | String | 否 | 图片格式 |
StoreUri | String | 否 | 图片存储地址 |
Width | Integer | 否 | 图片宽度,单位为 px |
Height | Integer | 否 | 图片高度,单位为 px |
智能字幕结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Language | String | 否 | 字幕语言 |
Source | String | 否 | 字幕来源:
|
Format | String | 否 | 字幕格式 |
FileName | String | 否 | 字幕产物文件路径 |
Size | Int64 | 否 | 字幕文件大小,单位为字节 |
暗水印提取结果
参数 | 类型 | 是否必传 | 说明 |
|---|---|---|---|
Content | String | 否 | 暗水印内容 |
错误码 | 说明 |
|---|---|
Success | 成功 |
InvalidParameter.InvalidMediaStream | 解析音视频流失败 |
InvalidParameter.MissingMediaStream | 缺少音视频流 |
InvalidParameter.InvalidUriError | 用户地址非法 |
InvalidParameter.InvalidVidOrUri | 输入源不存在 |
InternalError | 内部错误 |
InternalError.DownloadError | 系统下载错误 |
InternalError.UploadError | 系统上传错误 |
InternalError.ExecutionTimeout | 任务执行超时 |
Vid 模式下,工作流执行完成事件的回调示例如下所示。
{ "Version": "1.0", "Data": { "Code": "Success", "Snapshots": [ { "Params": { "OffsetTime": 0, "StoreUri": "tos***/cbe797357ecf439291dbec4a26b69dd5", "Width": 360, "Height": 640, "Format": "jpeg" }, "Type": "Poster" }, { "Params": { "OffsetTime": 0, "StoreUri": "tos***/c5d95e55fdbb46709b62c8c5f7e4a6aa", "Width": 360, "Height": 640, "Format": "gif" }, "Type": "Dynpost" }, { "Params": { "Width": 540, "Height": 960, "Format": "webp", "Uri": "tos***/89523e5554a74***9c6898761055a83" }, "Type": "AIDynpost" }, { "Params": { "StoreUri": "tos***/250f70a8010945f5b1ca005d315bc889", "Width": 360, "Height": 640, "Format": "webp" }, "Type": "AnimatedPoster" }, { "Params": { "StoreUris": [ "tos***/14437a144eb149f7a8a38b8b731f8a96" ], "CellHeight": 240, "ImgXLen": 5, "CaptureNum": 1, "Interval": 10, "ImgYLen": 5, "Format": "jpeg", "CellWidth": 136 }, "Type": "Sprite" }, { "Params": { "StoreUris": [ "tos***/fd5856116d7c454daa44b906f37fabee" ], "CaptureNum": 1, "Width": 540, "Height": 960, "Format": "jpeg", "Duration": 14.933333, "Interval": 10, "Offsets": [1] }, "Type": "Sample" } ], "TemplateId": "995745b286fc4be***3cf6f65877df72", "SpaceName": "test", "SourceInfo": { "Bitrate": 2240042, "Definition": "unknown", "FileName": "111", "RepairResult": {}, "StoreUri": "tos**/111", "Width": 720, "FileType": "video", "SourceAdjustResult": {}, "Format": "MP4", "Codec": "h264", "Inspection": { "Quality": {} }, "Md5": "4ee56e0d8a687***173a65dc73b7", "FileId": "v0ccfeg7007a***3c77ucpfe19890", "Duration": 15.093, "Size": 4226121, "Height": 1280, "Fps": 30, "CreateTime": "2023-04-10T11:05:31Z" }, "Vid": "v0ccfeg7007acg***c77ucpfe19890", "TranscodeInfos": [ { "Quality": { "Visual": { "Noise": 0, "Contrast": 0, "Colorfulness": 0, "Texture": 0, "Brightness": 0 } }, "AudioStreamMeta": { "Bitrate": 64701, "SampleRate": 44100, "Duration": 15.046, "Codec": "aac" }, "FileName": "owzbee1ls6pzUnZQok2Q0lkgZiDfZIfgecJnQ7", "CreateTime": "2023-04-10T11:06:59Z", "VideoStreamMeta": { "Bitrate": 430977, "Definition": "360p", "Duration": 14.933, "Codec": "h264" }, "StoreUri": "tos***/owzbee1ls6pzUnZQok2Q0lkgZiDfZIfgecJnQ7", "Width": 360, "FileType": "video", "Format": "MP4", "Duration": 15.047, "Bitrate": 501844, "LogoType": "", "Encrypt": false, "FileId": "e5f487ef36cb47a***1212f8086070", "Size": 943907, "Height": 640, "Fps": 30 }, { "Quality": { "Visual": { "Noise": 0, "Contrast": 0, "Colorfulness": 0, "Texture": 0, "Brightness": 0 } }, "AudioStreamMeta": { "Bitrate": 64000, "Duration": 15.073, "Codec": "mp3", "SampleRate": 44100 }, "FileName": "oIIAzkUPzBf2jH59MwUrIfhCa7z2oMBkyNS6hM", "CreateTime": "2023-04-10T11:08:09Z", "VideoStreamMeta": { "Definition": "", "Bitrate": 0, "Duration": 0 }, "StoreUri": "tos***/oIIAzkUPzBf2jH59MwUrIfhCa7z2oMBkyNS6hM", "Width": 0, "FileType": "audio", "Format": "MP3", "Duration": 15.073, "Bitrate": 64134, "LogoType": "", "Encrypt": false, "FileId": "24a57db262ec41***3d33577db4e1362", "Size": 120834, "Height": 0, "Fps": 0 } ], "SubAdaptBitrateStreamMetas": [ { "Height": 480, "Size": 1307500, "Fps": 25, "Duration": 40.16, "Codec": "h264", "Definition": "480p", "FileType": "Video", "Width": 854, "Bitrate": 355019 } ], "FileId": "cb8873e4cbe5***023b6fb80a8ba", "CreateTime": "2023-10-25T08:37:34Z", "Format": "DASH", "LogoType": "watermark", "Encrypt": true } ], "PosterUri": "tos***/0f2cd3c43e8346d096a42ce8f58b466d", "CallbackArgs": "", "Message": "Success", "RunId": "bb:d5d9c4581b238***2a08ccb73457e24" }, "EventType": "WorkflowComplete", "RequestId": "20230410190649D***4BE92C2507504B", "EventTime": "2023-04-10T11:08:38Z" }
DirectUrl 模式下,工作流执行完成事件的回调示例如下所示。
{ "Version": "1.0", "Data": { "Code": "Success", "Snapshots": [ { "Params": { "OffsetTime": 0, "StoreUri": "tos/f3159cf887***be5815eecd0f429", "Width": 360, "Height": 640, "Format": "jpeg" }, "Type": "Poster" }, { "Params": { "OffsetTime": 0, "StoreUri": "tos/b56db927142***a8ca67e33d9a93", "Width": 360, "Height": 640, "Format": "gif" }, "Type": "Dynpost" }, { "Params": { "OffsetTime": 0, "StoreUri": "tos/5e1296c71af***68e7296e82175e77f", "Width": 540, "Height": 960, "Format": "webp" }, "Type": "AIDynpost" }, { "Params": { "OffsetTime": 0, "StoreUri": "tos/439201bda9a***b44d905504c6d578", "Width": 360, "Height": 640, "Format": "webp" }, "Type": "AnimatedPoster" }, { "Params": { "StoreUris": [ "tos/140b0807c2fe4***2e8d807f5bf3c22" ], "ImgXLen": 5, "Interval": 10, "CaptureNum": 1, "CellWidth": 136, "ImgYLen": 5, "Format": "jpeg", "CellHeight": 240 }, "Type": "Sprite" }, { "Params": { "StoreUris": [ "tos/e981ff2e41054a2b***63da3703d6ba4f" ], "CaptureNum": 1, "Width": 540, "Height": 960, "Format": "jpeg", "Duration": 14.933333, "Interval": 10, "Offsets": [1] }, "Type": "Sample" } ], "TemplateId": "995745b286f***3993cf6f65877df72", "SpaceName": "test", "SourceInfo": { "Md5": "4ee56e0d8a6***0d5173a65dc73b7", "StoreUri": "tos/111***", "Width": 720, "Height": 1280, "Size": 4226121, "Bitrate": 2240042, "Duration": 15.093, "Fps": 30 }, "Vid": "", "TranscodeInfos": [ { "AudioStreamMeta": { "Bitrate": 64701, "SampleRate": 44100, "Duration": 15.046, "Codec": "aac" }, "Quality": { "Visual": { "Noise": 0, "Contrast": 0, "Colorfulness": 0, "Texture": 0, "Brightness": 0 } }, "VideoStreamMeta": { "Bitrate": 430977, "Definition": "360p", "Duration": 14.933, "Codec": "h264" }, "StoreUri": "tos/d10f3838a86a4***8cdc9452305fb", "Width": 360, "FileType": "Video", "Format": "MP4", "Duration": 15.047, "Bitrate": 501827, "FileId": "15a01d88a6e64***b732f4f5006cf0b6", "Encrypt": false, "LogoType": "", "Size": 943875, "Height": 640, "Fps": 30 }, { "AudioStreamMeta": { "Bitrate": 64000, "Duration": 15.073, "Codec": "mp3", "SampleRate": 44100 }, "Quality": { "Visual": { "Noise": 0, "Contrast": 0, "Colorfulness": 0, "Texture": 0, "Brightness": 0 } }, "VideoStreamMeta": { "Definition": "", "Bitrate": 0, "Duration": 0 }, "StoreUri": "tos/62038dc1a***9718de3344a6d49502d", "Width": 0, "FileType": "Audio", "Format": "MP3", "Duration": 15.072653, "Bitrate": 64134, "FileId": "a3c1862cfe244***0fad9b692b91d", "Encrypt": false, "LogoType": "", "Size": 120834, "Height": 0, "Fps": 0 } ], "CallbackArgs": "", "Message": "Success", "RunId": "bb:f417ffeac602***738e334bffbef2fd" }, "EventType": "WorkflowComplete", "RequestId": "2023041019072***841FA060A92080760", "EventTime": "2023-04-10T11:08:46Z" }