工作流原理
工作流(即定义处理一个对象文件的所有计算能力),支持在控制台自定义任务处理的流程,产出一个符合业务需求的输出。
本文为您介绍工作流的使用场景、设计、示例、使用方式。
简介
工作流旨在将大部分多媒体处理功能流程化、实例化,用户可提前编排任务处理流程,对多媒体文件按照特定工作流进行处理,避免用户重复、繁琐的调用接口,提供一站式的多媒体处理服务。同时,工作流提供了条件判断机制,可自定义下一节点处理的触发条件,便于灵活组建场景化处理流程。
适用哪些场景?
如果您有以下多媒体处理需求时,或者您期望实现一个 弹性、易用、低成本、灵活支持处理逻辑 的多媒体处理系统,那么工作流则是您期待的最佳解决方案。
-
您有大量并发处理需求,需要同时对一批多媒体文件做多种处理。
- 比如转码成不同规格的视频,适配不同终端设备播放。
-
您有更高级的自定义处理需求。
- 比如仅对>=1080p的视频做转码,需要通过执行条件来判断对哪些视频做处理,从而减少不必要的处理。
- 比如先对原视频进行内容审核,对审核结果正常的视频进行转码,对违规视频进行封禁,来规避风险和减少不必要的处理开销。
-
您需要经过多个步骤的计算处理,得到一个想要的结果。
- 比如先锐智转码、加水印,再对转码后的文件添加固定的片头/片尾。
-
您需要对上传到 kodo 空间的文件,自动触发工作流,发起任务处理请求。
-
您不太清楚如何根据自己的业务场景进行配置,工作流提供了多种推荐配置方案,降低了使用难度。
工作流特点
工作流具有的以下特点:
- 支持大量的并发处理。
- 提供丰富的计算处理原子服务,如转码、拼接、截图、水印,后期将接入内容审核、智能标签等AI能力。
- 条件判断机制的引入,可自定义下一节点处理的触发条件。
- 子节点可以对父节点的输出做再加工计算处理,通过多个步骤的计算处理,从而将源文件转化成符合业务需求的输出。
- 工作流配置可视化,可增强进度可观测性。
- 模板可固化工作流,减少重复工作,统一业务处理流程标准。
工作流示例
1. 创建多个并发处理的工作流
- 示例:普通转码 + 锐智转码 + 视频拼接 + 截图处理
- 此流程表示:同时对源文件进行普通转码、锐智转码、视频拼接、截图处理。
- 输入源说明:
- 所有节点的输入源: 源文件
2. 创建多个原子服务串联处理的工作流
- 示例:锐智转码 -> 视频拼接 -> 输出
- 此流程表示:先对源文件进行锐智转码处理,然后对锐智转码后的结果进行视频拼接处理。
- 输入源说明:
- 锐智转码节点的输入源:源文件
- 视频拼接节点的输入源:锐智转码后的处理结果
3. 创建有条件判断的工作流
1)示例:视频审核 -> 执行条件(结果违规) -> 封禁 、视频审核 -> 执行条件(结果正常)-> 普通转码 -> 输出
- 此流程表示:先对源文件进行内容审核,根据执行条件对【违规视频】进行封禁,对【正常视频】进行普通转码处理。
- 输入源说明:
- 视频审核节点的输入源是: 源文件
- 执行条件节点的输入源是 : 视频审核后的处理结果
- 普通转码节点的输入源是 :源文件
2)示例:音视频元信息 -> 执行条件 -> 普通转码 -> 输出
- 此流程表示:先对源文件获取音视频元信息,判断原视频分辨率范围,在范围内的视频,进行普通转码处理;不在范围内的视频,不再流转到下一步处理。
- 输入源说明:
- 音视频元信息节点的输入源: 源文件
- 执行条件节点的输入源 : 音视频元信息处理后的处理结果
- 普通转码节点的输入源 :源文件
4.串行工作流子节点输入源说明
父节点类型 | 输入源 | 下一节点可选处理类型 |
---|---|---|
普通转码 | 默认处理结果,作为下一节点输入源 注意:当转码格式为 m3u8 时,不支持继续添加处理节点 |
- 普通转码 - 锐智转码 - 截图 - 视频拼接 |
锐智转码 | 默认处理结果,作为下一节点输入源 注意:当转码格式为 m3u8 时,不支持继续添加处理节点 |
- 普通转码 - 锐智转码 - 截图视频 - 视频拼接 - 截图 |
视频拼接 | 默认处理结果,作为下一节点输入源 | - 普通转码 - 锐智转码 - 截图视频 - 视频拼接 - 截图 |
音视频信息 | 默认处理结果,作为下一节点输入源 | - 条件判断 - 输出 |
视频审核 | 默认处理结果,作为下一节点输入源 | - 条件判断 - 输出 - 封禁 |
执行条件 | 作为下一节点处理的前置判断条件,当前支持的有: 1、音视频元信息 2、视频审核 |
- 普通转码 - 锐智转码 - 截图视频 - 视频拼接 - 截图 - 输出 |
截图 | 当前版本,处理结果不支持作为下一节点的输入源 | - 输出 |
封禁 | 当前只适用于视频审核场景,为结束节点 | |
输出 | 为结束节点 |
-
父节点为【音视频元信息】,执行条件介绍如下:
条件 条件描述 分辨率 判断视频分辨率范围,对范围内的视频做下一步处理。 -
父节点为【视频审核】,执行条件介绍如下:
执行条件 条件描述 视频审核结果为【正常】 父节点审核结果为正常时,执行下一节点处理 视频审核结果为【违规】 父节点审核结果为违规时,执行下一节点处理 视频审核结果为【疑似】 父节点审核结果为疑似时,执行下一节点处理 视频审核结果不是【正常】 父节点审核结果为【违规】或【疑似】,执行下一节点处理 视频审核结果不是【违规】 父节点审核结果为【正常】或【疑似】,执行下一节点处理
5.输出对节点的处理结果进行保存时,需要点击【输出】节点进行配置,不同的处理类型的输出会有差异。
-
单输出,普通转码->mp4。
-
输出空间:必填项,处理完成后新生成文件将存储在该空间中。
-
输出文件名,支持以下两种命名方式:
a. 前缀+后缀 : 至少填写1个
b. 魔法变量:点击【切换自定义文件名】
- 支持魔法变量或自定义字符串。魔法变量引用格式为 {{.var}} ,魔法变量仅支持 bucket、key、fname、fprefix、ext、count。
-
-
多输出,普通转码->m3u8。
-
输出空间:必填项,处理完成后新生成文件将存储在该空间中。
-
输出文件名,支持以下两种命名方式:
a. 前缀+后缀 :至少填写1个
b. 魔法变量:点击【切换自定义文件名】
- 支持魔法变量或自定义字符串。魔法变量引用格式为 {{.var}} ,魔法变量仅支持 bucket、key、fname、fprefix、ext、count。
-
处理流程
工作流的处理流程如下:
-
用户在智能多媒体平台,配置工作流。
-
用户上传多媒体文件。
-
任务发起方式
- 指定文件,选择工作流。
- 创建任务触发器,上传完成后自动触发工作流。
-
工作流引擎根据工作流配置,自动发起多媒体处理请求。
创建工作流
登录【智能多媒体控制台】,进入【导航栏->工作流】页面。如何创建工作流,详细的控制台操作,请参考 工作流。