# 示例2：提交视频转码任务
#### 场景描述
若您需要将存储在OBS桶中的视频文件进行转码，并添加图片水印，您可以调用MPC API进行转码处理。
本章节指导用户如何使用API调用的方式提交视频转码任务。
#### 接口约束
不支持处理跨区域的媒资文件，如使用"华北-北京一"的MPC服务不能处理存储在"华北-北京四"OBS桶中的视频文件。
#### 前提条件
- 已获取需要创建转码任务区域的项目ID，具体获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-mpc/mpc_04_0064.html)。
- 已明确需要创建转码任务所在的区域信息，并获取该区域的Endpoint，您可以从[地区和终端节点](https://console.huaweicloud.com/apiexplorer/#/endpoint/MPC)获取。
- 待转码处理的视频文件已经存储在OBS桶中，您可以调用[OBS上传对象API](https://support.huaweicloud.com/api-obs/obs_04_0017.html)上传。
- 已创建用于存储转码生成的文件的OBS桶，您可以调用[OBS创建桶API](https://support.huaweicloud.com/api-obs/obs_04_0015.html)进行创建。
 
#### 总体流程
- [获取用户Token]
- [创建视频转码模板]
- [创建水印模板]
- [提交视频转码任务]
- [查询视频转码状态]
 
#### 操作步骤
1. [获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)，用于MPC接口调用时的认证鉴权。
   
   在"我的凭证"页面获取***username*** 、***password*** 、***domainname*** 、***projectname*** ，调用如下接口获取Token。详细信息请参见[构造请求](https://support.huaweicloud.com/api-mpc/mpc_04_0048.html)。
   ```
   POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens
   Content-Type: application/json
   {
     "auth": {
       "identity": {
         "methods": [
           "password"
         ],
         "password": {
           "user": {
             "name": "********", //用户名。
             "password": "********", //用户登录密码。
             "domain": {
               "name": "domainname" //用户所属的账号名称。  
             }
           }
         }
       },
       "scope": {
         "project": {
            "name": "*******"  //项目名称。
         }
       }
     }
   }
   ```
   如[图1]所示，红框中的信息为获取用户Token。
   图1获取用户Token   
   ![](https://support.huaweicloud.com/api-mpc/zh-cn_image_0000001835899629.png "点击放大")
   
   
2. 创建视频转码模板，获取转码模板ID，具体API调用方法请参见[示例1：新建转码模板](https://support.huaweicloud.com/api-mpc/mpc_04_0007.html)。
3. 创建水印模板。
   
   1. 选择**POST** 请求方法并输入URI。
      ```
      https://{endpoint}/v1/{project_id}/template/watermark
      ```
      
   
   2. 请求消息头中增加"X-Auth-Token"，值设置为步骤[1]中获取的用户Token。
   
   3. Request Body中传入参数如下：
      ```
      {
        "template_name": "watermark_1920*1080_10*10_ BottomLeft",
        "type": "Image",
        "image_process": "Grayed",
        "width": "1920",
        "height": "1080",
        "dx": "10",
        "dy": "10",
        "referpos": "BottomLeft",
        "timeline_start": "6",
        "timeline_duration": "8"
      }
      ```
      
   
   4. 请求响应成功后，返回水印模板ID。
      ```
      {
        "template_id":242
      }
      ```
      
   
   
   
   
4. 提交视频转码任务。
   
   1. 选择**POST** 请求方法并输入URI。
      ```
      https://{endpoint}/v1/{project_id}/transcodings
      ```
      
   
   2. 请求消息头中增加"X-Auth-Token"，值设置为步骤[1]中获取的用户Token。
   
   3. Request Body中传入参数如下：
      ```
      {
      "input": {
                 "bucket": "example-bucket",
                 "location": "region01",
                 "object": "/mpc/input/sample.MP4"
      },
      "output": {
                 "bucket": "example-bucket",
                 "location": "region01",
                 "object": "/mpc/output/"
      },
      "trans_template_id":[1002],
      "watermarks": [{
      "input": {
      "bucket": "example-bucket",
      "location": "region01",
      "object": "meipai.jpg"
      },
      "template_id":242
      }],
      "priority":"9",
      "audit":{
      "position":2,
               "index":2
      }
      }
      ```
      
   
   4. 请求响应成功后，返回转码任务ID。
      ```
      {
        "task_id":100211
      }
      ```
      
   
   
   
   
5. 查询视频转码执行情况。
   
   1. 选择GET请求方法并输入URI。
      ```
      https://{endpoint}/v1/{project_id}/transcodings?task_id=100211
      ```
      
   
   2. 请求消息头中增加"X-Auth-Token"，值设置为步骤[1]中获取的用户Token。
   
   3. 请求响应成功后，返回视频转码的详细信息。
   
   
   
   
 
