● 已明确需要创建转码模板所在的区域信息,并获取该区域的Endpoint,您可以从 地区和终端节点获取。
总体流程
● 获取用户Token
● 创建转码模板
涉及 API
当您使用Token认证方式完成认证鉴权时,需要获取用户Token并在调用接口时增加
“X-Auth-Token”到业务接口请求消息头中。
操作步骤
步骤1 获取用户Token,用于MPC接口时进行认证鉴权。
在“我的凭证”页面获取
username
、password
、domainname
、projectname
,调 用如下接口获取Token。详细信息请参见3.1 构造请求。POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
{ "auth": {
步骤2 选择POST请求方法并输入URI。
https://{endpoint}/v1/{project_id}/template/transcodings
“mpc.cn-north-4.myhuaweicloud.com”为媒体处理服务的终端节点,您可以在区域 和终端节点中获取。
说明
调用IAM接口的区域需与调用媒体处理接口的区域一致,如调用“cn-north-4”区域的IAM接口 获取用户Token,则该Token仅能用于调用“cn-north-4”区域媒体处理接口的鉴权。
步骤3 在请求消息头中增加“X-Auth-Token”,值设置为步骤步骤1中获取的用户Token。
步骤4 在请求消息体中传入如下所示的参数。
{ "template_name":"MP4_H.264_1920x1080_6000_HEAAC", "video":{
"codec":1,
API 参考 4 应用示例
"bitrate":6000,
请求响应成功后,返回转码模板ID,状态码为201 Created。
{ "template_id":1001 }
若请求失败,返回如下所示的错误码及错误描述。
{ "error_code": "MPC.100101",
"error_msg": "template error, it's name MP4_H.264_1920x1080_6000_HEAAC is same with template 274764。"
● 已明确需要创建转码任务所在的区域信息,并获取该区域的Endpoint,您可以从 地区和终端节点获取。
● 待转码处理的视频文件已经存储在OBS桶中,您可以调用OBS 上传对象API上 传。
● 已创建用于存储转码生成的文件的OBS桶,您可以调用OBS 创建桶API进行创 建。
步骤1 获取用户Token,用于MPC接口时进行认证鉴权。
在“我的凭证”页面获取
username
、password
、domainname
、projectname
,调 用如下接口获取Token。详细信息请参见3.1 构造请求。POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
{ "auth": {
图4-2 获取用户 Token
步骤2 创建视频转码模板,获取转码模板ID,具体API调用方法请参见4.1 示例1:新建转码 模板。
步骤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. 请求响应成功后,返回视频转码的详细信息。
● 已明确需要创建截图任务所在的区域信息,并获取该区域的Endpoint,您可以从 地区和终端节点获取。
● 待截图处理的视频文件已经存储在OBS桶中,您可以调用OBS 上传对象API上 传。
● 已创建用于存储截图文件的OBS桶,您可以调用OBS 创建桶API进行创建。
总体流程
● 获取用户Token
API 参考 4 应用示例
● 创建截图任务
● 查询视频截图执行情况
操作步骤
步骤1 获取用户Token,用于MPC接口时进行认证鉴权。
在“我的凭证”页面获取
username
、password
、domainname
、projectname
,调 用如下接口获取Token。详细信息请参见3.1 构造请求。POST https://iam.cn-north-4.myhuaweicloud.com/v3/auth/tokens Content-Type: application/json
{ "auth": {
1. 选择POST请求方法并输入URI。
https://{endpoint}/v1/{project_id}/thumbnails
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/ "},
"tar": 1,
"thumbnail_para": { "type":"DOTS", "dots":[2,4,6,8,10], "format":0, "aspect_ratio":1, "max_length":480 }
}
4. 请求响应成功后,返回截图任务ID。
{ "task_id": "2081"
}
步骤3 查询视频截图执行情况。
1. 选择GET请求方法并输入URI。
https://{endpoint}/v1/{project_id}/thumbnails?task_id=2081
2. 请求消息头中增加“X-Auth-Token”,值设置为步骤1中获取的用户Token。
3. 请求响应成功后,返回视频截图的详情信息。
----结束
API 参考 4 应用示例
5 自定义转码模板接口
5.1 新建转码模板 5.2 更新转码模板 5.3 删除转码模板 5.4 查询转码模板
5.1 新建转码模板
功能介绍
新建转码模板,采用自定义的模板转码。
调试
您可以在API Explorer中调试该接口。
URI
POST /v1/{project_id}/template/transcodings 表5-1 路径参数
参数 是否必选 参数类型 描述
project_id 是 String 项目ID,获取方法请参考获取项 目ID
请求参数
表5-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方式认证时必选,请 求的发生时间。
表5-3 请求 Body 参数
参数 是否必选 参数类型 描述
template_na
me 是 String 转码模板名称。
video 否 Video object 视频参数 audio 否 Audio object 音频参数
common 是 Common
object 公共参数
API 参考 5 自定义转码模板接口
表5-4 Video
参数 是否必选 参数类型 描述
output_policy 否 String 输出策略。
取值如下:
● discard
● transcode 说明
● 当视频参数中的
“output_policy”为
"discard",且音频参数中的
“output_policy”为
“transcode”时,表示只输出 音频。
● 当视频参数中的
“output_policy”为
"transcode",且音频参数中的
“output_policy”为
“discard”时,表示只输出视 频。
● 同时为"discard"时不合法。
● 同时为“transcode”时,表示 输出音视频。
codec 否 Integer 视频编码格式。
取值如下:
● 1:表示H.264。
● 2:表示H.265。
bitrate 否 Integer 输出平均码率。
取值范围:0或[40,30000]之间 的整数。
单位:kbit/s
若设置为0,则输出平均码率为 自适应值。
参数 是否必选 参数类型 描述
profile 否 Integer 编码档次,建议设为3。
取值如下:
● 1:VIDEO_PROFILE_H264_BAS E
● 2:VIDEO_PROFILE_H264_MAI N
● 3:VIDEO_PROFILE_H264_HIG H
● 4:VIDEO_PROFILE_H265_MAI N
level 否 Integer 编码级别。
取值如下:
● 1:VIDEO_LEVEL_1_0
● 2:VIDEO_LEVEL_1_1
● 3:VIDEO_LEVEL_1_2
● 4:VIDEO_LEVEL_1_3
● 5:VIDEO_LEVEL_2_0
● 6:VIDEO_LEVEL_2_1
● 7:VIDEO_LEVEL_2_2
● 8:VIDEO_LEVEL_3_0
● 9:VIDEO_LEVEL_3_1
● 10:VIDEO_LEVEL_3_2
● 11:VIDEO_LEVEL_4_0
● 12:VIDEO_LEVEL_4_1
● 13:VIDEO_LEVEL_4_2
● 14:VIDEO_LEVEL_5_0
● 15:VIDEO_LEVEL_5_1
API 参考 5 自定义转码模板接口
参数 是否必选 参数类型 描述
preset 否 Integer 编码质量等级。
取值如下:
● 1:VIDEO_PRESET_HSPEED2
● 2:VIDEO_PRESET_HSPEED
● 3:VIDEO_PRESET_NORMAL
说明
● H264:[1,8]
● H265:固定值4 单位:帧。
max_iframes_i
nterval 否 Integer I帧最大间隔
取值范围:[2,10]。
● H264:[0,7],默认值为 4。
● H265:[0,7],默认值为 7。
单位:帧。
frame_rate 否 Integer 帧率。
取值范围:0或[5,60]之间的整
参数 是否必选 参数类型 描述
width 否 Integer 视频宽度。
取值范围:
● H.264:0或[32,4096]间2的 倍数。
● H.265:0或[160,4096]间4的 倍数。
单位:像素。
说明:若视频宽度设置为0,则 视频宽度值自适应。
height 否 Integer 视频高度。
● H.264:0或[32,2880]且必须 为2的倍数。
● H.265:0或[96,2880]且必须 为4的倍数。
单位:像素。
说明:若视频高度设置为0,则 视频高度值自适应。
black_cut 否 Integer 黑边剪裁类型。
取值如下:
● 0:不开启黑边剪裁。
● 1:开启黑边剪裁,低复杂度 算法,针对长视频(>5分 钟)。
● 2:开启黑边剪裁,高复杂度 算法,针对短视频(<=5分 钟)。
API 参考 5 自定义转码模板接口
表5-5 Audio
参数 是否必选 参数类型 描述
output_policy 否 String 输出策略。
取值如下:
● discard
● transcode 说明
● 同时为"discard"时不合法。
● 同时为“transcode”时,表示 输出音视频。
codec 是 Integer 音频编码格式。
取值如下:
● 1:AAC格式。
● 2:HEAAC1格式 。
● 3:HEAAC2格式。
● 4:MP3格式 。 sample_rate 是 Integer 音频采样率。
取值如下:
● 1:AUDIO_SAMPLE_AUTO
● 2:AUDIO_SAMPLE_22050
(22050Hz)
● 3:AUDIO_SAMPLE_32000
(32000Hz)
● 4:AUDIO_SAMPLE_44100
(44100Hz)
● 5:AUDIO_SAMPLE_48000
(48000Hz)
● 6:AUDIO_SAMPLE_96000
(96000Hz)
参数 是否必选 参数类型 描述
bitrate 否 Integer 音频码率。
取值范围:0或[8,1000]。
单位:kbit/s。
channels 是 Integer 声道数。
取值如下:
● 1:AUDIO_CHANNELS_1
● 2:AUDIO_CHANNELS_2
● 6:AUDIO_CHANNELS_5_1
表5-6 Common
hls_interval 是 Integer HLS分片间隔,仅封装类型
“pack_type”取值为1或3时,
该参数生效。
取值范围:[2,10]。
单位:秒。
dash_interval 是 Integer DASH间隔,仅封装类型
“pack_type”取值为2或3时,
该参数生效。
取值范围:[2,10]。
单位:秒。
pack_type 是 Integer 封装类型。
取值如下:
● 1:HLS
● 2:DASH
● 3:HLS+DASH
● 4:MP4
● 5:MP3
● 6:ADTS
说明pack_type设置为5和6时,不能设 置视频参数。
API 参考 5 自定义转码模板接口
响应参数
状态码: 201
表5-7 响应 Body 参数
参数 参数类型 描述
template_id Integer 自定义转码模板编号。
状态码: 403
表5-8 响应 Body 参数
参数 参数类型 描述
error_code String 错误码。
error_msg String 错误描述。
请求示例
POST https://{endpoint}/v1/{project_id}/template/transcodings { "template_name":"MP4_H.264_1920x1080_6000_HEAAC", "video":{
"codec":1, "bitrate":6000, "profile":3, "level":15, "preset":3,
"ref_frames_count":4, "max_iframes_interval":5, "bframes_count":4, "frame_rate":1, "width":1920, "height":1080, "aspect_ratio":0 }, "audio":{
"codec":1, "sample_rate":4, "bitrate":128, "channels":2 }, "common":{
"PVC":0, "hls_interval":5, "dash_interval":5, "pack_type":1 }}
响应示例
状态码: 201 新建转码模板成功。
{ "template_id" : 2000211 }
状态码: 403 新建转码模板失败。
{ "error_code" : "MPC.10202",
"error_msg" : "Invalid request parameter."
}
状态码
状态码 描述
201 新建转码模板成功。
403 新建转码模板失败。
错误码
请参见错误码。
5.2 更新转码模板
功能介绍
更新转码模板。
调试
您可以在API Explorer中调试该接口。
URI
PUT /v1/{project_id}/template/transcodings 表5-9 路径参数
参数 是否必选 参数类型 描述
project_id 是 String 项目ID,获取方法请参考获取项 目ID
API 参考 5 自定义转码模板接口
请求参数
表5-10 请求 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方式认证时必选,请 求的发生时间。
表5-11 请求 Body 参数
参数 是否必选 参数类型 描述
template_id 是 Long 转码模板ID template_na
me 是 String 转码模板名称。
video 否 Video object 视频信息 audio 否 Audio object 音频信息
common 是 Common
object 通用信息
表5-12 Video
参数 是否必选 参数类型 描述
output_policy 否 String 输出策略。
取值如下:
● discard
● transcode 说明
● 当视频参数中的
“output_policy”为
"discard",且音频参数中的
“output_policy”为
“transcode”时,表示只输出 音频。
● 当视频参数中的
“output_policy”为
"transcode",且音频参数中的
“output_policy”为
“discard”时,表示只输出视 频。
● 同时为"discard"时不合法。
● 同时为“transcode”时,表示 输出音视频。
codec 否 Integer 视频编码格式。
取值如下:
● 1:表示H.264。
● 2:表示H.265。
bitrate 否 Integer 输出平均码率。
取值范围:0或[40,30000]之间 的整数。
单位:kbit/s
若设置为0,则输出平均码率为 自适应值。
API 参考 5 自定义转码模板接口
参数 是否必选 参数类型 描述
profile 否 Integer 编码档次,建议设为3。
取值如下:
● 1:VIDEO_PROFILE_H264_BAS E
● 2:VIDEO_PROFILE_H264_MAI N
● 3:VIDEO_PROFILE_H264_HIG H
● 4:VIDEO_PROFILE_H265_MAI N
level 否 Integer 编码级别。
取值如下:
● 1:VIDEO_LEVEL_1_0
● 2:VIDEO_LEVEL_1_1
● 3:VIDEO_LEVEL_1_2
● 4:VIDEO_LEVEL_1_3
● 5:VIDEO_LEVEL_2_0
● 6:VIDEO_LEVEL_2_1
● 7:VIDEO_LEVEL_2_2
● 8:VIDEO_LEVEL_3_0
● 9:VIDEO_LEVEL_3_1
● 10:VIDEO_LEVEL_3_2
● 11:VIDEO_LEVEL_4_0
● 12:VIDEO_LEVEL_4_1
● 13:VIDEO_LEVEL_4_2
● 14:VIDEO_LEVEL_5_0
● 15:VIDEO_LEVEL_5_1
参数 是否必选 参数类型 描述
preset 否 Integer 编码质量等级。
preset 否 Integer 编码质量等级。