工作流

最近更新时间:2023-09-21 16:28:24

我的收藏
工作流表示对一个源文件(音视频文件)发起的一系列作业任务的集合,这些任务以流水线的形式向前执行,因此称为“工作流”。工作流中的作业任务可以是并行的,也可以是串行的,作业任务在媒体处理中一般简称“任务”,工作流示意图如下:


符号
含义
圆形
表示任务的开始和结束
菱形
表示任务的分解
圆角矩形
表示具体任务的执行单元
圆点
表示任务的组合或合成
箭头
表示不同任务或相同任务的不同阶段的执行路径
以媒体处理为例,工作流包含转码、采样截图、时间点截图、转动图、雪碧图以及水印等作业任务。典型的媒体处理任务工作流示例如下:

转码开始后,如果包含多个规格的转码任务,如标清、高清转码以及多尺寸截图等,则这些任务会被分解,然后并行执行,各转码子任务完成后再将结果进行合并,最后任务结束。

工作流原理

以媒体处理为例,工作流程主要包括配置工作流、触发转码、转码任务处理以及发送事件通知等。工作流原理图如下:


1. 配置工作流:管理员通过控制台配置工作流。前置工作包括申请 CMQ 和 COS Bucket,并对媒体处理服务角色进行相应授权。
2. 触发转码:上传者通过 SDK 或控制台将音视频文件上传到申请的 COS Bucket,此时会触发绑定到该 Bucket 上的工作流任务,即触发转码任务,开发者也可以通过 API ProcessMedia 来对单个文件发起转码任务。
3. 转码任务处理:在工作流处理任务的过程中,会对 COS 文件进行读写操作,如下载源文件、上传转码后的文件等。
4. 发送事件通知:工作流处理结束后,媒体处理会将任务完成消息发送到上述 CMQ,然后开发者可通过 CMQ 接口接收该事件消息。
说明
工作流简介请参见 工作流,工作流设置请参见 设置工作流
在确认文件转码成功后,您可以继续进行后续的业务逻辑,如通过 CDN 分发转码后的视频等。

配置工作流

如果您要实现文件上传时自动触发转码任务,则需要预先配置工作流。工作流会对指定 COS Bucket 中上传的文件自动发起特定的转码任务,并将转码结果文件上传到指定的相同或不同 COS Bucket。
如果您不需要上传时自动触发转码任务,则可以通过调用 API 的方式主动触发单个文件转码任务,此时无需配置工作流。

触发转码

触发转码任务包括自动触发和主动触发两种方式:
自动触发:通过配置工作流,文件上传时会自动触发转码任务。



主动触发:通过调用 API 发起转码任务,然后通过 CMQ 接收完成事件通知或通过 TaskId 主动查询任务完成状态。详细请参见 主动发起转码



说明
图中第5步表示开发者可通过调用 API 查询任务状态,参数为发起任务返回的 TaskId。
图中红色框区域表示可选,即在主动触发转码的情况下,开发者可选择通过 CMQ 接收事件通知,也可以如图中第5步通过 API 查询任务状态信息。

转码任务处理

转码任务处理包括转码、截图、水印等任务处理以及转码结果文件上传。在任务具体执行过程中,任务会分解成多个子任务,子任务间以并行或串行的方式进行处理,从而加快处理速度。
如果任务处理完成,则媒体处理服务会将转码结果文件上传到您指定的 COS Bucket。如果转码结果文件上传失败,则任务最终状态为失败。

发送事件通知

在转码任务处理完成后(成功或失败),媒体处理服务会将该文件的转码结果信息返回给您,您需要接收该消息通知并作出适当处理。