
# 新建转动图任务 - CreateAnimatedGraphicsTask
#### 功能介绍
创建动图任务，用于将完整的视频文件或视频文件中的一部分转换为动态图文件，暂只支持输出GIF文件。
待转动图的视频文件需要存储在与媒体处理服务同区域的OBS桶中，且该OBS桶已授权。
#### 调用方法
请参见[如何调用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:animatedGraphicsTask:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/animated-graphics
表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                                                                                  | 用户自定义数据。                                                                                                                                                                                                                      |
| output_param | 否    | [AnimatedGraphicsOutputParam] 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，否则会导致播放失败。    |
   
 表5AnimatedGraphicsOutputParam 
| 参数         | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| format     | 是    | String  | 动图格式，目前仅支持取值 gif                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| width      | 是    | Integer | 输出动图的宽。 取值范围：0，-1或\[32,3840\]之间2的倍数。 说明： - 若设置为-1， 则宽根据高来自适应，此时"height"不能取-1或0。   - 若设置为0，则取原始视频的宽，此时"height"只能取0。    |
| height     | 是    | Integer | 输出动图的高。 取值范围：0，-1或\[32,2160\]之间2的倍数。 说明： - 若设置为-1， 则高根据宽来自适应，此时"width"不能取-1或0。   - 若设置为0，则取原始视频的高，此时"width"只能取0。      |
| start      | 是    | Integer | 起始时间。 单位：毫秒                                                                                                                                                                                                                                                                                                                                                                                                       |
| end        | 是    | Integer | 结束时间。 单位：毫秒。 end、start差值最多60秒。                                                                                                                                                                                                                                                                                                                                                     |
| frame_rate | 否    | Integer | 动图帧率。 取值范围：\[1,75\]                                                                                                                                                                                                                                                                                                                                                                                               |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| task_id | String | 任务ID |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
创建动图任务，用于将完整的视频文件或视频文件中的一部分转换为动态图文件，暂只支持输出GIF文件。
```
POST https://{endpoint}/v1/{project_id}/animated-graphics
{
  "input" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/input.mp4"
  },
  "output" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/output",
    "file_name" : "test_mpc.gif"
  },
  "output_param" : {
    "format" : "gif",
    "width" : 480,
    "height" : 360,
    "frame_rate" : 15,
    "start" : 100,
    "end" : 250
  }
}
```
#### 响应示例
**状态码：200**
新建动图任务成功。
```
{
  "task_id" : 100211
}
```
**状态码：400**
新建动图任务失败。
```
{
  "error_code" : "MPC.10202",
  "error_msg" : "Invalid request parameter."
}
```
#### 状态码
| 状态码 | 描述        |
|:---|:---|
| 200 | 新建动图任务成功。 |
| 400 | 新建动图任务失败。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-mpc/ErrorCode.html)。
