
# 新建转封装任务 - CreateRemuxTask
#### 功能介绍
创建转封装任务，转换音视频文件的格式，但不改变其分辨率和码率。
待转封装的媒资文件需要存储在与媒体处理服务同区域的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:remuxTsk:create | Write | -           | -   | -  | -      |
     
  
 
#### URI
POST /v1/{project_id}/remux
表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 | 否    | [RemuxOutputParam] 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，否则会导致播放失败。    |
   
 表5RemuxOutputParam 
| 参数               | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| format           | 否    | String  | 输出格式。取值范围： - HLS   - MP4    |
| segment_duration | 否    | Integer | 分片时长，仅当"format"为"HLS"时有效。 参考取值范围：\[2，10\]。 默认值： 5。 单位：秒。 说明： 若设置的分片时长不在取值范围内，则自动调整为5。                                                                                                       |
| remove_meta      | 否    | Boolean | 输出媒体是否去除片源的中metadata自定义信息。默认值：false                                                                                                                                                                                                                                                                                     |
   
#### 响应参数
**状态码：200**
表6响应Body参数 
| 参数      | 参数类型   | 描述   |
|:---|:---|:---|
| task_id | String | 任务ID |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
   
#### 请求示例
创建转封装任务，转换音视频文件的格式，但不改变其分辨率和码率。
```
POST https://{endpoint}/v1/{project_id}/remux
{
  "input" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/input.flv"
  },
  "output" : {
    "bucket" : "example-bucket",
    "location" : "region01",
    "object" : "example-path/output",
    "file_name" : "test.m3u8"
  },
  "output_param" : {
    "format" : "HLS",
    "segment_duration" : 7
  }
}
```
#### 响应示例
**状态码：200**
新建转封装任务成功。
```
{
  "task_id" : 100211
}
```
**状态码：400**
新建转封装任务失败。
```
{
  "error_code" : "MPC.10202",
  "error_msg" : "Invalid request parameter."
}
```
#### 状态码
| 状态码 | 描述         |
|:---|:---|
| 200 | 新建转封装任务成功。 |
| 400 | 新建转封装任务失败。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-mpc/ErrorCode.html)。
