使用任务流处理视频

最近更新时间:2019-05-10 18:55:02

接口名称

RunProcedure

功能说明

该接口可以对视频文件按照指定的任务流模板发起任务流处理,进行视频鉴黄、转码、截图和生成雪碧图等操作。

待处理的视频既可以是点播中某个已存在的视频,也可以依据一定的流程来生成,包括:

  • 对单个文件进行剪辑后生成的视频。
  • 对多个文件进行拼接;或者对多个文件先剪辑,再拼接生成的视频。
  • 对单个视频流进行剪辑生成的视频。
  • 对多个视频流进行拼接;或者对多个视频流先剪辑,再拼接生成的视频。
  • 从一个 URL 拉取到的视频。

该接口为异步接口,即:调用该接口只是发起一系列视频处理任务。任务流中的任务状态变更(包括结束)可以通过 事件通知 机制感知。

任务执行完毕之后,每项异步任务的执行结果(例如转码输出文件 URL)可以通过 GetVideoInfo 接口获得。
本接口只支持点播4.0

事件通知

任务流状态变更(或者处理完成)会触发 事件通知 - 任务流状态变更通知。App 后台可据此监听任务流的执行状态。

更多参见 服务端事件通知简介

请求方式

请求域名

vod.api.qcloud.com

最高调用频率

100次/分钟

参数说明

参数名称 必填 类型 说明
inputType String 输入视频的方式,可以取的值为 SingleFile,MultiFile,Stream,MultiStream 和 PullFile
  • SingleFile:直接指定要处理的文件 ID
  • MultiFile:指定文件列表和剪辑参数生成操作的文件 ID
  • Stream:指定流 ID 和剪辑参数生成操作的文件 ID
  • MultiStream:指定视频流列表和剪辑参数生成操作的文件 ID
  • PullFile:指定要拉取的视频文件 URL
file Object 参见 处理的视频文件信息,inputType 为 SingleFile 时有效
fileList Array 处理的视频文件列表,元素为 file 类型,inputType 为 MultiFile 时有效
stream Object 参见 处理的流 ID 信息,inputType 为 Stream时有效
streamList Array 处理的视频流列表,元素为 stream 类型,inputType 为 MultiStream 时有效
pull Object 参见 拉取视频的信息,inputType 为 PullFile 时有效
procedure String 任务流模板,参考 点播预置任务流模板
notifyMode String 任务流状态变更通知模式。
  • Finish:只有当任务流全部执行完毕时,才发起一次事件通知;
  • Change:只要任务流中每个子任务的状态发生变化,都进行事件通知;
  • None:不接受该任务流回调。
默认为 Finish。
priority Integer 任务流优先级,取值范围为 [-10, 10],默认为0
COMMON_PARAMS 参见 公共参数

file(处理的视频文件信息)

参数名称 必填 类型 说明
id String 处理的视频文件的 ID
startTimeOffset Float 剪辑的文件内起始偏移
endTimeOffset Float 剪辑的文件内结束偏移

stream(处理的流ID信息)

参数名称 必填 类型 说明
streamId String 录制的流 ID
startTimeStamp Integer 剪辑的录制开始时间
endTimeStamp Integer 剪辑的录制结束时间

pull(拉取视频的信息)

参数名称 必填 类型 说明
url String 需要拉取的视频文件的 URL
fileName String 视频文件的名称
fileMd5 String 视频文件的 MD5
classId Integer 视频的分类 ID

请求示例

指定单个 fileId 请求示例

以下示例的含义是:
对指定 fileId 的文件剪辑后发起任务流。

https://vod.api.qcloud.com/v2/index.php?Action=RunProcedure
&inputType=SingleFile
&file.id=14508071098244959037
&file.startTimeOffset=10.0
&file.endTimeOffset=25.0
&procedure=SomeProcedure
&COMMON_PARAMS

通过指定剪辑文件 ID 列表请求示例

以下示例的含义是:

  1. 把 fileId 为14508071098244959037的文件按视频内区间(30,100)剪辑,fileId 为14508071098244966759的文件按视频内区间(300,400)剪辑;
  2. 然后再把剪辑的结果拼接成目标文件,格式是 MP4;
  3. 最后对目标文件发起任务流。
https://vod.api.qcloud.com/v2/index.php?Action=RunProcedure
&inputType=MultiFile
&fileList.0.id=14508071098244959037
&fileList.0.startTimeOffset=30.0
&fileList.0.endTimeOffset=100.0
&fileList.1.id=14508071098244966759
&fileList.1.startTimeOffset=300.0
&fileList.1.endTimeOffset=400.0
&procedure=SomeProcedure
&COMMON_PARAMS

通过录制流信息请求示例

以下示例的含义是:

  1. 把 streamId 为12345的所有 fileId 按录制时间区间(15020876530,15020876650)剪辑;
  2. 然后再把剪辑的结果拼接成目标文件,格式是 MP4;
  3. 最后对目标文件发起任务流。
https://vod.api.qcloud.com/v2/index.php?Action=RunProcedure
&inputType=Stream
&stream.streamId=12345
&stream.startTimeStamp=15020876530
&stream.endTimeStamp=15020876650
&procedure=SomeProcedure
&COMMON_PARAMS

通过拼接多个录制流信息请求示例

以下示例的含义是:

  1. 把 streamId 为12345的视频流和 streamId 为23456的视频流拼接成目标文件;
  2. 对目标文件发起任务流。
https://vod.api.qcloud.com/v2/index.php?Action=RunProcedure
&inputType=MultiStream
&streamList.0.streamId=12345
&streamList.1.streamId=23456
&procedure=SomeProcedure
&COMMON_PARAMS

通过拉取视频信息请求示例

以下示例的含义是:
拉取指定 URL 的文件(拉取后命名为 testVideo)后,对目标文件发起任务流。

https://vod.api.qcloud.com/v2/index.php?Action=RunProcedure
&inputType=PullFile
&url=http://cloud.tencent.com/sample_video/sample.mp4
&fileName=testVideo
&procedure=SomeProcedure
&COMMON_PARAMS

接口应答

参数说明

参数名称 类型 说明
code Integer 错误码,0:成功;其他值:失败
message String 错误信息
vodTaskId String 任务 ID

错误码说明

错误码 含义说明
4000 - 7000 参见 公共错误码
1 内部错误
1000 无效参数
1001 内部错误
1003 内部错误
2000 内部错误
10008 文件不存在
10022 内部错误
50005 Procedure 重复任务已存在
50006 Procedure 任务创建失败
50007 Procedure 参数无效

应答示例

{
    "code": 0,
    "message": "",
    "vodTaskId": "procedure-7a2229a8f1957bfce08ba733fbfd4a3c"
}

如果开启了回调通知,每个任务完成后会单独回调,参见 服务端事件通知简介