创建自定义模板,包含容器信息,视频跟音频流等设置。
接口说明
本接口参数中包含容器信息、视频和音频流等设置,如果相应部分不做设置,则使用模板转出来的码流中也不会包含相应的信息。
QPS 限制
本接口的单用户 QPS 限制为 100 次/秒。超过限制,API 调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见 QPS 限制。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
mts:AddTemplate | create | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Name | string | 是 | 模板名称。最大长度 128 字节。 | mps-example |
Container | string | 否 | 容器,JSON 对象,其中包含参数为 Format(容器格式)。不设置 Container 参数则转码输出默认为 mp4 格式,如需其他格式则必须设置此对象。更多信息请参见 Container 详情。
说明
容器格式为 flv 时,Video Codec 不能设置为 H.265。
说明
容器格式为 gif 时,VideoCodec 设置只能设置为 GIF。容器格式为 webp 时,Video Codec 设置只能设置为 WEBP。
| {"Format":"mp4"} |
Video | string | 否 | 视频流配置。JSON 对象,更多信息请参见 Video 详情。 说明
不设置 Video 参数则转码输出不包括视频流;如需保留视频流则必须设置此对象。
| {"Codec":"H.264","Profile":"high","Bitrate":"500","Crf":"15","Width":"256","Height":"800","Fps":"25","Gop":"10s"} |
Audio | string | 否 | 音频流配置。JSON 对象,详情参见 Audio 详情。 说明
不设置 Audio 参数则转码输出不包括音频流;如需保留音频流则必须设置此对象。
| {"Codec":"H.264","Samplerate":"44100","Bitrate":"500","Channels":"2"} |
TransConfig | string | 否 | 转码通用配置。JSON 对象,详情参见 TransConfig 详情。不设置 TransConfig 参数则转码配置全部为默认值,如默认值不能满足您的转码需求则必须按需设置此对象。 | {"TransMode":"onepass"} |
MuxConfig | string | 否 | 切片配置字段。JSON 对象,详情参见 MuxConfig 详情。不设置 MuxConfig 参数则转码输出不分片,如需分片则必须设置此对象。 | {"Segment":{"Duration":"10"}} |
JSON 对象 Container 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
Format | String | 否 | 默认值:mp4。视频转码支持 flv、mp4、HLS(m3u8+ts)、MPEG-DASH(MPD+fMP4)。音频转码支持 mp3、mp4、ogg、flac、m4a。图片支持 gif、WEBP。容器格式为 gif 时,Video Codec 设置只能设置为 GIF,容器格式为 webp 时,Video Codec 设置只能设置为 WEBP,容器格式为 flv 时,Video Codec 不能设置为 H.265。 |
JSON 对象 Video 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
Codec | String | 否 | 编解码格式。支持 H.264、H.265、GIF、WEBP,默认值:H.264。 |
Profile | String | 否 | 编码级别。支持 baseline(适合移动设备)、main(适合标准分辨率设备)、high(适合高分辨率设备),默认值:high。最佳实践:如果您有多个清晰度,建议最低清晰度配成 baseline,以保证最低端设备可播放。其他清晰度配置为 main 或 high。目前仅 H.264 支持此参数。 |
Bitrate | String | 否 | 值范围:10~50000,单位:Kbps。 |
Crf | String | 否 | 码率-质量控制因子。值范围:0~51,默认值:26。如果设置了 Crf,则 Bitrate 的设置失效。 |
Width | String | 否 | 宽。默认值:视频原始宽度,值范围:128~4096,单位:px。 |
Height | String | 否 | 高。默认值:视频原始高度,值范围:128~4096,单位:px。 |
Fps | String | 否 | 帧率。默认值:取输入文件帧率。当输入文件帧率超过 60 时取 60。值范围:0~60。单位:fps。 |
Gop | String | 否 | 关键帧间最大时间间隔或者最大帧数。最大时间间隔时,必传单位 s。默认值:10s。最大帧数时,无单位,值范围:1~100000。 |
Preset | String | 否 | 视频算法器预置。支持 veryfast(超快)、fast(快)、medium(中等)、slow(慢)、slower(超慢)。默认值:medium。目前仅 H.264 支持此参数。 |
ScanMode | String | 否 | 扫描模式。支持 interlaced、progressive。 |
Bufsize | String | 否 | 缓冲区大小。值范围:[1000,128000],默认值:6000,单位:Kb。 |
Maxrate | String | 否 | 视频码率峰值。值范围[10,50000],单位 Kbps。 |
PixFmt | String | 否 | 视频颜色格式。范围 yuv420p,yuvj420p 等标准颜色格式。默认值:yuv420p 或原始颜色格式。 |
Remove | String | 否 | 是否删除视频流。true 表示删除,false 表示保留,默认值:false。 |
Crop | String | 否 | 视频画面裁切。支持 2 种方式:自动检测黑边并裁切,设置为“border”。自定义裁切,参数格式:width:height:left:top。示例:1280:800:0:140。 |
Pad | String | 否 | 视频贴黑边。参数格式:width:height:left:top。示例:1280:800:0:140 。 |
LongShortMode | String | 否 | 是否开启横竖屏自适应(即:长短边模式)。转码输出的宽对应输入片源的长边(竖屏为片源的高),高对应输入视频的短边(竖屏为片源的宽),true 表示开启,false 表示关闭,默认值:false。 |
以下表格显示视频转码编解码格式与容器格式的组合支持情况:
Container | Audio Codecs | Video Codecs |
---|---|---|
flv | AAC、MP3 | H.264 |
mp4 | AAC、MP3 | H.264、H.265 |
ts | AAC、MP3 | H.264、H.265 |
m3u8 | AAC、MP3 | H.264、H.265 |
gif | 不支持 | GIF |
以下表格显示视频编解码格式与视频流配置参数的组合支持情况:
Video/Codec | H.264 | H.265 | GIF |
---|---|---|---|
Profile | Y | N | N |
Bitrate | Y | Y | N |
Crf | Y | Y | N |
Width | Y | Y | Y |
Height | Y | Y | Y |
Fps | Y | Y | Y |
Gop | Y | Y | N |
Preset | Y | N | N |
ScanMode | Y | Y | Y |
Bufsize | Y | Y | N |
Maxrate | Y | Y | N |
PixFmt | Y | Y | bgr8 |
JSON 对象 Audio 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
Codec | String | 否 | 音频编解码格式,AAC、MP3、VORBIS、FLAC。默认值:AAC。 |
Profile | String | 否 | 音频编码预置。当 Codec 为 AAC 时,范围 aac_low、aac_he、aac_he_v2、aac_ld、aac_eld。 |
Samplerate | String | 否 | 采样率。默认值:44100,支持 22050、32000、44100、48000、96000,单位:Hz。若视频容器格式为 flv,音频编解码格式选择为 mp3 时,采样率不支持 32000、48000、96000;音频编解码格式为 mp3 时,采样率不支持 96000。 |
Bitrate | String | 否 | 输出文件的音频码率。值范围:[8,1000],单位:Kbps,默认值:128 。 |
Channels | String | 否 | 声道数。默认值:2。当 Codec 设置为 mp3 时,声道数只支持 1、2;当 Codec 设置为 aac 时,声道数只支持 1、2、4、5、6、8。 |
Remove | String | 否 | 是否删除音频流。true 表示删除,false 表示保留,默认值:false。 |
以下表格显示音频转码编解码格式与容器格式的组合支持情况:
Container | Audio Codecs |
---|---|
mp3 | MP3 |
mp4 | AAC |
ogg | VORBIS、FLAC |
flac | FLAC |
JSON 对象 TransConfig 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
TransMode | String | 否 | 转码模式。默认值:onepass,可选范围 onepass、twopass、CBR。 |
AdjDarMethod | String | 否 | 分辨率改写方式。默认值:none,可选范围 rescale、crop、pad、none。 |
IsCheckReso | String | 否 | 是否检查分辨率。如果输出分辨率大于输入分辨率(判断条件是宽或高),则输出分辨率等于输入分辨率。true 表示检查,false 表示不检查,默认值:false。 |
IsCheckResoFail | String | 否 | 是否检查分辨率。如果输出分辨率大于输入分辨率(判断条件是宽或高),则返回转码失败。true 表示检查,false 表示不检查,默认值:false。 |
IsCheckVideoBitrate | String | 否 | 是否检查视频码率。如果视频输出码率大于视频输入码率,则视频输出码率等于视频输入码率。true 表示检查,false 表示不检查,默认值:false。 |
IsCheckAudioBitrate | String | 否 | 是否检查音频码率。如果音频输出码率大于音频输入码率,则音频输出码率等于音频输入码率。true 表示检查,false 表示不检查,默认值:false。 |
IsCheckAudioBitrateFail | String | 否 | 当输出音频码率大于媒体源音频码率时,true 表示不进行转码,false 表示不检查,默认值:false,此值优先级大于 IsCheckAudioBitrate。 |
IsCheckVideoBitrateFail | String | 否 | 当输出视频码率大于媒体源视频码率时,true 表示不进行转码,false 表示不检查,默认值:false,此值优先级大于 IsCheckVideoBitrate。 |
JSON 对象 MuxConfig 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
Segment | String | 否 | JSON 对象,切片配置字段。参见 Segment 详情。 |
Segment 详情
参数 | 值类型 | 是否必选 | 描述 |
---|---|---|---|
Duration | String | 否 | 分片时长。整数值,单位:秒,范围:[1,60],默认值:10 秒。 |
ForceSegTime | String | 否 | 指定分片时间列表,逗号分隔,最多可指定 10 个分片时间点。小数型,支持 3 位小数,单位:秒。示例:23、55、60,代表在 23,55,60 秒处分片。 |
返回参数
示例
正常返回示例
JSON
格式
{
"RequestId": "FA258E67-09B8-4EAA-8F33-BA567834A2C3",
"Template": {
"Video": {
"Bufsize": "6000",
"LongShortMode": "false",
"Degrain": "10",
"BitrateBnd": {
"Max": "1500",
"Min": "800"
},
"PixFmt": "yuv420p",
"Pad": "1280:800:0:140",
"Codec": "H.264",
"Height": "800",
"Qscale": "1",
"Crop": "border",
"Bitrate": "500",
"Maxrate": "500",
"MaxFps": "60",
"Profile": "high",
"Crf": "15",
"Remove": "false",
"Gop": "10s",
"Width": "256",
"Fps": "25",
"Preset": "fast",
"ScanMode": "interlaced",
"ResoPriority": "0",
"Hdr2sdr": "true",
"NarrowBand": {
"Version": "1.0",
"Abrmax": 3000,
"MaxAbrRatio": 1
}
},
"TransConfig": {
"IsCheckAudioBitrate": "true",
"TransMode": "onepass",
"IsCheckReso": "true",
"IsCheckVideoBitrateFail": "true",
"AdjDarMethod": "rescale",
"IsCheckVideoBitrate": "true",
"IsCheckResoFail": "true",
"IsCheckAudioBitrateFail": "true"
},
"State": "Normal",
"MuxConfig": {
"Webp": {
"Loop": "0"
},
"Gif": {
"FinalDelay": "0",
"DitherMode": "sierra",
"Loop": "0",
"IsCustomPalette": "false"
},
"Segment": {
"Duration": "10"
}
},
"Name": "mps-example",
"Audio": {
"Profile": "aac_low",
"Remove": "true",
"Codec": "aac",
"Samplerate": "44100",
"Qscale": "5",
"Channels": "2",
"Volume": {
"Method": "auto",
"Level": "-20",
"IntegratedLoudnessTarget": "",
"TruePeak": "",
"LoudnessRangeTarget": "",
"PeakLevel": ""
},
"Bitrate": "500"
},
"Id": "16f01ad6175e4230ac42bb5182cd****",
"Container": {
"Format": "mp4"
}
}
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 |
---|---|---|
2024-03-13 | OpenAPI 返回结构发生变更 | 查看变更详情 |
2024-01-04 | OpenAPI 返回结构发生变更 | 查看变更详情 |