
# 新建剪辑任务 - CreateEditingJobs
#### 功能介绍
创建剪辑任务，对音视频进行剪切、拼接，生成一个新的文件。
应用场景包括：
1.对单个音视频进行剪切，生成一个新的文件；
2.对单个音视频进行剪切多个片段，然后拼接成一个新的文件；
3.对多个音视频进行拼接，生成一个新的文件；
待剪辑的音视频需要存储在与媒体处理服务同区域的OBS桶中，且该OBS桶已授权。
备注：不支持opengop片源的剪辑功能，如果输入opengop片源，不保证输出效果。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-mpc/mpc_04_0047.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-mpc/mpc_04_0002.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                    | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | mpc:editingTask:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST /v2/{project_id}/editing/jobs
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                              |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID。获取方法请参考[获取项目ID](https://support.huaweicloud.com/api-mpc/mpc_04_0064.html)。 |
   
#### 请求参数
表2请求Header参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                             |
|:---|:---|:---|:---|
| X-Auth-Token  | 否    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| Authorization | 否    | String | 使用AK/SK方式认证时必选，携带的鉴权信息。                                                                        |
| X-Project_Id  | 否    | String | 使用AK/SK方式认证时必选，携带项目ID信息, 与路径参数中的项目ID相同。                                                        |
| X-Sdk-Date    | 否    | String | 使用AK/SK方式认证时必选，请求的发生时间。                                                                        |
   
表3请求Body参数 
| 参数               | 是否必选 | 参数类型                                                                      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| inputs           | 否    | Array of [EditingInput] objects | 指定片源多个剪切时间段                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| output           | 否    | [ObsObjInfo] object               | 输出地址。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| editing_settings | 否    | [EditingSetting] object       | 媒体处理配置，根据该参数配置，对input参数指定的源文件进行处理。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| metadata         | 否    | Array of [FileMetaData] objects | metadata设置，默认只支持AIGC                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| user_data        | 否    | String                                                                    | 用户自定义数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| editing_type     | 否    | Integer                                                                   | 剪辑类型。推荐用户配置为1，如果配置为0，则性能和剪辑能力未满足商用条件。 取值如下： - 0：表示多个文件直接拼接或同一个文件不同时间剪辑拼接。默认值为0，不推荐使用0，因为性能和能力还不满足商用条件。   - 1：表示支持多个文件剪辑，并按顺序拼接。    |
   
 表4EditingInput 
| 参数             | 是否必选 | 参数类型                                                        | 描述                                                 |
|:---|:---|:---|:---|
| input          | 是    | [ObsObjInfo] object | 输入文件存储地址                                           |
| timeline_start | 否    | String                                                      | 剪切开始时间。 单位：秒。 |
| timeline_end   | 否    | String                                                      | 剪切结束时间。 单位：秒。 |
   
 表5ObsObjInfo 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| bucket    | 是    | String | OBS的bucket名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| location  | 是    | String | OBS桶所在的区域，且必须与使用的MPC区域保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| object    | 是    | String | OBS对象路径，遵守OSS Object定义。 - 当用于指示input时，需要指定到具体对象。   - 当用于指示output时，只需指定到转码结果期望存放的路径。    在字幕场景下，字幕文件名称中禁止携带特殊符号，否则会导致转码任务失败，如：\[ - 正确示例: demo.srt   - 错误示例: \[demo.srt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| file_name | 否    | String | 文件名，文件名长度不能超过180个字符。 - 当指定了此参数时，输出的对象名为object/file_name。   - 当不指定此参数时，输出的对象名为object/xxx，其中xxx由MPC指定。    在作为输出文件名时： - 在转封装场景有效，需要指定输出文件名称   - 在转码场景下，如果需要指定输出的文件名称，请使用output_filenames参数   - 在解析场景有效，解析场景如果指定文件名，则将解析参数写入指定文件名，通过查询接口响应json数据获取文件元数据信息   - 在截图场景无效   - 在转动图场景无效   - 输出文件为HLS格式时，文件名称不能命名为index，示例：index.m3u8，否则会导致播放失败。    |
   
 表6EditingSetting 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| resolution_adaptation | 否    | String  | 分辨率自适应策略。取值包括：OPEN、CLOSE。默认值：OPEN。输入为OPEN时，width表示长边，height表示短边；输入为CLOSE时，width表示宽度，height表示长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| resolution_upsample   | 否    | String  | 分辨率上采样开关。取值：ON、OFF（默认OFF）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| format                | 否    | String  | 输出封装格式。取值：HLS、MP4、FLV、MOV、AVI（默认MP4），FLV格式不支持多音频，AVI格式不支持H265编码                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| width                 | 否    | Integer | 输出宽或长边，整型，输入小数向下取整，默认值为0 - 当 width、height 均为 0，则分辨率取片源分辨率；   - 当 width 为 0，height 非 0，则 width 按片源分辨率比例缩放；   - 当 width 非 0，height 为 0，则 height 按片源分辨率比例缩放；   - 当 width、height 均非 0，则分辨率按用户指定。    |
| height                | 否    | Integer | 输出高或短边，整型，输入小数向下取整，默认值为0 - 当 Width、Height 均为 0，则分辨率取片源分辨率；   - 当 Width 为 0，Height 非 0，则 Width 按片源分辨率比例缩放；   - 当 Width 非 0，Height 为 0，则 Height 按片源分辨率比例缩放；   - 当 Width、Height 均非 0，则分辨率按用户指定。    |
| reference             | 否    | String  | 输出参考基准，可选，默认值为NONE - NONE 输出分辨率按输入的第一个片源为主，码率按输出分辨率自适应，帧率固定输出25fps   - MAX_BITRATE 按码率最大的输入片源参数为基准   - MAX_RESOLUTION 按分辨率最大的输入片源参数为基准                                                                                                                                                                                           |
| video_codec           | 否    | Integer | 视频编码格式。 取值如下： - 1：VIDEO_CODEC_H264   - 2：VIDEO_CODEC_H265                                                                                                                                                                                                                                                                                                                                                                    |
   
 表7FileMetaData 
| 参数    | 是否必选 | 参数类型   | 描述         |
|:---|:---|:---|:---|
| name  | 否    | String | metadata名称 |
| value | 否    | String | metadata值  |
   
#### 响应参数
**状态码：200**
表8响应Header参数 
| 参数           | 参数类型   | 描述                                                              |
|:---|:---|:---|
| X-Request-Id | String | 这个字段作为一个请求的唯一标识，用于任务流程追溯。格式：request_id(uuid)-timestamp-hostname |
   
表9响应Body参数 
| 参数     | 参数类型   | 描述            |
|:---|:---|:---|
| job_id | String | 接受任务后产生的任务ID。 |
   
**状态码：400**
表10响应Header参数 
| 参数           | 参数类型   | 描述                                                              |
|:---|:---|:---|
| X-Request-Id | String | 这个字段作为一个请求的唯一标识，用于任务流程追溯。格式：request_id(uuid)-timestamp-hostname |
   
表11响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
**状态码：500**
表12响应Header参数 
| 参数           | 参数类型   | 描述                                                              |
|:---|:---|:---|
| X-Request-Id | String | 这个字段作为一个请求的唯一标识，用于任务流程追溯。格式：request_id(uuid)-timestamp-hostname |
   
表13响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
创建剪辑任务，对音视频进行剪切、拼接，生成一个新的文件。
```
POST https://{endpoint}/v2/{project_id}/editing
{
  "inputs" : [ {
    "input" : {
      "bucket" : "example-bucket",
      "location" : "region01",
      "object" : "example-path/input.ts"
    },
    "timeline_start" : "0",
    "timeline_end" : "10"
  }, {
    "input" : {
      "bucket" : "example-bucket",
      "location" : "region01",
      "object" : "example-path/input.ts"
    },
    "timeline_start" : "30",
    "timeline_end" : "40"
  }, {
    "input" : {
      "bucket" : "example-bucket",
      "location" : "region01",
      "object" : "example-path/input.ts"
    },
    "timeline_start" : "50",
    "timeline_end" : "0"
  } ],
  "output" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/output",
    "file_name" : "output.m3u8"
  },
  "editing_settings" : {
    "resolution_adaptation" : "OPEN",
    "reference" : "MAX_RESOLUTION",
    "format" : "HLS",
    "width" : 0,
    "height" : 720
  },
  "user_data" : "example_user_data"
}
```
#### 响应示例
无
#### 状态码
| 状态码 | 描述                 |
|:---|:---|
| 200 | 新建剪辑任务成功。          |
| 400 | 新建剪辑任务失败或请求参数校验失败。 |
| 500 | 服务器内部错误            |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-mpc/ErrorCode.html)。
