使用任务流处理视频

最近更新时间:2019-07-12 15:43:03

接口名称

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. fileId14508071098244959037的文件按视频区间[30,100]剪辑,fileId14508071098244966759的文件按视频区间[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. streamId12345的所有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. streamId12345的视频流和streamId23456的视频流拼接成目标文件。
    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"
    }

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