# 新建视频解析任务 - CreateExtractTask
#### 功能介绍
创建视频解析任务，解析视频元数据。
#### 调用方法
请参见[如何调用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:extracTask:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/extract-metadata
表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参数 
| 参数         | 是否必选 | 参数类型                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| input      | 否    | [ObsObjInfo] object | 源文件信息。 说明： - 在转动图、同步解析、同步截图等场景，暂不支持m3u8格式的视频。                                                                                                                                                                     |
| output     | 否    | [ObsObjInfo] object | 输出文件信息。                                                                                                                                                                                                                                                                                                                                                                                        |
| user_data  | 否    | String                                                | 用户自定义数据。                                                                                                                                                                                                                                                                                                                                                                                       |
| sync       | 否    | Integer                                               | 是否同步处理, - 0：排队处理   - 1：同步处理    默认值：0 |
| encryption | 否    | [Encryption] object | 视频加密控制参数。                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表4ObsObjInfo 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| 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，否则会导致播放失败。    |
   
 表5Encryption 
| 参数          | 是否必选 | 参数类型                                                  | 描述        |
|:---|:---|:---|:---|
| hls_encrypt | 否    | [HlsEncrypt] object | 视频加密控制参数。 |
   
 表6HlsEncrypt 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| key       | 是    | String | 使用base64编码的内容加密密钥                                                                                                                                                                                                                                                                                                                                                                                                |
| url       | 是    | String | 密钥获取服务的地址，用于播放hls分片时解密使用。                                                                                                                                                                                                                                                                                                                                                                                        |
| iv        | 否    | String | 初始向量，base64binary，随机数                                                                                                                                                                                                                                                                                                                                                                                            |
| algorithm | 否    | String | 加密算法。 - AES-128-CTR   - AES-128-CBC    默认值：AES-128-CTR |
   
#### 响应参数
**状态码：200**
表7响应Body参数 
| 参数               | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| task_id          | String                                                 | 任务ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| status           | String                                                 | 任务执行状态。 取值如下： - INIT：初始状态   - WAITING：等待启动   - PREPROCESSING：处理中   - SUCCEED：处理成功   - FAILED：处理失败   - CANCELED：已取消    |
| create_time      | String                                                 | 任务创建时间                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| output           | [ObsObjInfo] object | 输出文件信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| output_file_name | String                                                 | 解析文件名称                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| description      | String                                                 | 任务描述，如当任务异常时，此字段为异常的具体信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| metadata         | [MetaData] object     | 视频文件元数据                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表8ObsObjInfo 
| 参数        | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| 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，否则会导致播放失败。    |
   
 表9MetaData 
| 参数          | 参数类型                                                           | 描述                                                |
|:---|:---|:---|
| size        | Long                                                           | 文件大小。 单位：byte。     |
| duration_ms | Double                                                         | 视频时长，带小数位显示。 单位：秒。 |
| duration    | Long                                                           | 视频时长。 单位：秒。        |
| format      | String                                                         | 文件封装格式。                                           |
| md5         | String                                                         | 视频的 md5 值。 说明： 仅转码和解析接口会返回当前字段，且默认不开放，需通过工单申请开通   |
| bitrate     | Long                                                           | 总码率。 单位：bit/秒      |
| video       | Array of [VideoInfo] objects | 视频流元数据。                                           |
| audio       | Array of [AudioInfo] objects | 音频流元数据。                                           |
   
 表10VideoInfo 
| 参数          | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|
| width       | Integer | 视频宽度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| height      | Integer | 视频高度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| bitrate     | Integer | 视频码率。 单位: kbit/s 说明： 视频解析接口2024年8月7日做了如下变更： - 变更前：视频解析任务，如果为同步解析，即sync参数配置为1时，解析响应VideoInfo中的参数bitrate单位实际为bit/s。   - 变更后：视频解析任务同步解析响应VideoInfo中的参数bitrate单位变更为kbit/s。    上述更新，可能会影响历史用户的转码业务判断，请关注并及时调整业务。 |
| bitrate_bps | Long    | 视频码率。 单位: bit/s                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| frame_rate  | Integer | 帧率。 取值范围：0或\[5,60\]，0表示自适应。 单位：帧每秒。 说明： 若设置的帧率不在取值范围内，则自动调整为0，若设置的帧率高于片源帧率，则自动调整为片源帧率。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| codec       | String  | 视频编码格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| duration    | String  | 视频流时长，单位：秒 说明： 仅转码和解析接口会返回当前字段，且解析接口默认不开放，需通过工单申请开通                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| duration_ms | String  | 视频流时长，单位：毫秒 说明： 仅转码和解析接口会返回当前字段，且解析接口默认不开放，需通过工单申请开通                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| rotate      | Float   | 视频拍摄时的选择角度，单位：度。 说明： 仅转码和解析接口会返回当前字段，且解析接口默认不开放，需通过工单申请开通                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
 表11AudioInfo 
| 参数          | 参数类型    | 描述                                                   |
|:---|:---|:---|
| codec       | String  | 音频编码格式                                               |
| sample      | Integer | 音频采样率                                                |
| channels    | Integer | 音频信道                                                 |
| bitrate     | Integer | 音频码率。 单位: kbit/s      |
| bitrate_bps | Long    | 音频码率。 单位: bit/s       |
| duration    | String  | 音频流时长，单位：秒 说明： 仅转码和解析接口会返回当前字段，且解析接口默认不开放，需通过工单申请开通  |
| duration_ms | String  | 音频流时长，单位：毫秒 说明： 仅转码和解析接口会返回当前字段，且解析接口默认不开放，需通过工单申请开通 |
   
**状态码：400**
表12响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
创建视频解析任务，解析视频元数据。
```
POST https://{endpoint}/v1/{project_id}/extract-metadata
{
  "input" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/input.flv"
  },
  "output" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/output"
  },
  "sync" : 0
}
```
#### 响应示例
**状态码：200**
无
**状态码：400**
```
{
  "error_code" : "MPC.10202",
  "error_msg" : "Invalid request parameter."
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | 新建视频解析任务成功。 |
| 400 | 新建视频解析任务失败。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-mpc/ErrorCode.html)。
