This API (CreateMediaTemplate
) is used to create a transcoding template.
POST /template HTTP/1.1
Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
Content-Length: <length>
Content-Type: application/xml
<body>
Note:Authorization: Auth String (for more information, see Request Signature).
This API only uses common request headers. For more information, see Common Request Headers.
This request requires the following request body:
<Request>
<Tag>Transcode</Tag>
<Name>TemplateName</Name>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Crf></Crf>
<Width>1280</Width>
<Height></Height>
<Fps>30</Fps>
<Gop></Gop>
<Preset>medium</Preset>
<ScanMode></ScanMode>
<Bufsize>0</Bufsize>
<Maxrate>0</Maxrate>
</Video>
<Audio>
<Codec>aac</Codec>
<Samplerate>44100</Samplerate>
<Bitrate>128</Bitrate>
<Channels>4</Channels>
</Audio>
<TransConfig>
<AdjDarMethod>scale</AdjDarMethod>
<IsCheckReso>false</IsCheckReso>
<ResoAdjMethod>1</ResoAdjMethod>
</TransConfig>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</Request>
The nodes are described as follows:
Node Name (Keyword) | Parent Node | Description | Type | Required |
---|---|---|---|---|
Request | None | Request container | Container | Yes |
Request
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Constraints |
---|---|---|---|---|---|
Tag | Request | Task type: Transcode | String | Yes | None |
Name | Request | Template name, which can contain letters, digits, underscores (_), hyphens (-), and asterisks (*). | String | Yes | None |
Container | Request | Container format | Container | Yes | None |
Video | Request | Video information | Container | No | If Video is not passed in, the video information will be deleted. |
TimeInterval | Request | Time interval | Container | No | None |
Audio | Request | Audio information | Container | No | If Audio is not passed in, the audio information will be deleted. |
TransConfig | Request | Transcoding configuration | Container | No | None |
Container
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required |
---|---|---|---|---|
Format | Request.Container | Container format. Valid values: mp4, flv, hls, ts, mp3, aac, WebM | String | Yes |
Audio/Video formats supported by different container formats are as follows:
Container | Audio Codecs | Video Codecs |
---|---|---|
mp4/hls/mkv | AAC, MP3 | H.264, H.265 |
ts/flv | AAC, MP3 | H.264 |
AAC | AAC | Not supported |
MP3 | MP3 | Not supported |
FLAC | FLAC | Not supported |
AMR | AMR | Not supported |
WebM | Vorbis, Opus | VP8, VP9 |
Video
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
Codec | Request.Video | Codec format | String | No | H.264. If format is WebM , the default value is VP8 . |
|
Width | Request.Video | Width | String | No | Original video width | Width is set, Height is calculated according to the original video aspect ratio. |
Height | Request.Video | Height | String | No | Original video height | Height is set, Width is calculated according to the original video aspect ratio. |
Fps | Request.Video | Frame rate | String | No | None | |
Remove | Request.Video | Whether to delete the video stream | String | No | false | Valid values: true, false |
Profile | Request.Video | Encoding level | String | No | high | Pixfmt is auto , this parameter can only be auto and will be changed to auto if set to other values. |
Bitrate | Request.Video | Bitrate of the video output file | String | No | None | |
Crf | Request.Video | Bitrate, which is a quality control factor | String | No | None | Crf is set, the setting of Bitrate becomes invalid. Bitrate is empty, 25 is used for this parameter by default. |
Gop | Request.Video | Maximum number of frames between two keyframes | String | No | None | Value range: [1, 100000] |
Preset | Request.Video | Video algorithm preset | String | No | medium. If Codec is VP8 , the value is good . |
|
Bufsize | Request.Video | Buffer size | String | No | None | Codec is VP8 or VP9 , this parameter is not supported. |
Maxrate | Request.Video | Peak video bitrate | String | No | None | Codec is VP8 or VP9 , this parameter is not supported. |
HlsTsTime | Request.Video | HLS segmentation time | String | No | 5 | Codec is VP8 or VP9 , this parameter is not supported. |
Pixfmt | Request.Video | Video color format | String | No | None | Codec is VP8 or VP9 , this parameter is not supported. |
LongShortMode | Request.Video | Whether to use long short mode | String | No | false | Codec is VP8 or VP9 , this parameter is not supported. |
Rotate | Request.Video | Rotation angle | String | No | None |
TimeInterval
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
Start | Request.TimeInterval | Start time | String | No | 0 | |
Duration | Request.TimeInterval | Duration | String | No | Original video duration |
Audio
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
Codec | Request.Audio | Codec format | String | No | aac . If format is WebM , the default value is Vorbis . |
Valid values: aac, mp3, flac, amr, Vorbis, opus |
Samplerate | Request.Audio | Sample rate | String | No | 44100 . If Codec is opus , the default value is 48000 . |
Codec is amr , the value can only be 8000 .Codec is opus , the value can be 8000 , 16000 , 24000 , or 48000 . |
Bitrate | Request.Audio | Original audio bitrate | String | No | None | |
Channels | Request.Audio | Number of sound channels | String | No | None | Codec is aac or flac , the value can be 1 , 2 , 4 , 5 , 6 , or 8 .Codec is mp3 or opus , the value can only be 1 or 2 .Codec is Vorbis , the value can only be 2 .Codec is amr , the value can only be 1 . |
Remove | Request.Audio | Whether to delete the source audio stream | String | No | false | Valid values: true, false |
KeepTwoTracks | Request.Audio | Keep double audio track | String | No | false | Valid values: true , false . If Video.Codec is H.265 , this parameter is invalid. |
SwitchTrack | Request.Audio | Switch the track | String | No | false | Valid values: true, false. If Video.Codec is H.265 , this parameter is invalid. |
SampleFormat | Request.Audio | Sampling bit width | String | No | None | Codec is aac , the value can only be fltp .Codec is mp3 , the value can be fltp , s16p , or s32p .Codec is flac , the value can only be s16 or s32 .Codec is amr , the value can only be s16 .Video.Codec is H.265 , this parameter is invalid. |
Note:Y indicates supported, and N indicates unsupported.
Audio.Codec
supports the sample rates as shown below:
Audio.Codec | aac | amr | flac | opus | Vorbis | mp3 |
---|---|---|---|---|---|---|
8000 | Y | Y | Y | Y | Y | Different sample rates are supported for different container formats. |
11025 | Y | N | Y | N | Y | |
12000 | Y | N | Y | N | Y | |
16000 | Y | N | Y | Y | Y | |
22050 | Y | N | Y | N | Y | |
24000 | Y | N | Y | Y | Y | |
32000 | Y | N | Y | N | Y | |
44100 | Y | N | Y | N | Y | |
48000 | Y | N | Y | Y | Y | |
88200 | Y | N | Y | N | Y | |
96000 | Y | N | Y | N | Y |
If Audio.Codec
is mp3
, Container.Format
supports the sample rates as shown below:
Container Format/Audio Sample Rate | 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 32000 | 44100 | 48000 | 88200 | 96000 |
---|---|---|---|---|---|---|---|---|---|---|---|
flv | N | N | N | N | Y | N | N | Y | N | N | N |
mp4 | N | N | N | Y | Y | Y | Y | Y | Y | N | N |
hls/ts/mp3/mkv | N | Y | Y | Y | Y | Y | Y | Y | Y | N | N |
TransConfig
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
AdjDarMethod | Request.TransConfig | Resolution adjustment method | String | No | none | |
IsCheckReso | Request.TransConfig | Whether to check the resolution | String | No | false | false , transcoding is performed based on settings. |
ResoAdjMethod | Request.TransConfig | Resolution adjustment method | String | No | 0 | 0 indicates to use the original video resolution.1 indicates to return the transcoding failure message.IsCheckReso is true . |
IsCheckVideoBitrate | Request.TransConfig | Whether to check the video bitrate | String | No | false | false , transcoding is performed based on settings. |
VideoBitrateAdjMethod | Request.TransConfig | Video bitrate adjustment method | String | No | 0 | 0 indicates to use the original video bitrate. 1 indicates to return the transcoding failure message.IsCheckVideoBitrate is true . |
IsCheckAudioBitrate | Request.TransConfig | Whether to check the audio bitrate | String | No | false | false , transcoding is performed based on settings. |
AudioBitrateAdjMethod | Request.TransConfig | Audio bitrate adjustment method | String | No | 0 | 0 indicates to use the original audio bitrate. 1 indicates to return the transcoding failure message.IsCheckAudioBitrate is true . |
DeleteMetadata | Request.TransConfig | Whether to delete metadata from the file | String | No | false | false , the source file information is retained. |
IsHdr2Sdr | Request.TransConfig | Whether to enable HDR-to-SDR conversion | String | No | false | Valid values: true, false |
HlsEncrypt | Request.TransConfig | HLS encryption configuration | Container | No | None | None |
The AdjDarMethod
parameter is illustrated as follows:
HlsEncrypt
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
IsHlsEncrypt | Request.TransConfig.HlsEncrypt | Whether to enable HLS encryption | String | No | false | Container.Format is hls . |
UriKey | Request.TransConfig.HlsEncrypt | HLS encryption key | String | No | None | This parameter is valid only when IsHlsEncrypt is true . |
This API only returns common response headers. For more information, see Common Response Headers.
The response body returns application/xml data. The following contains all the nodes:
<Response>
<Template>
<Tag>Transcode</Tag>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Name>TemplateName</Name>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Crf></Crf>
<Width>1280</Width>
<Height></Height>
<Fps>30</Fps>
<Gop></Gop>
<Preset>medium</Preset>
<ScanMode></ScanMode>
<Bufsize>0</Bufsize>
<Maxrate>0</Maxrate>
</Video>
<Audio>
<Codec>aac</Codec>
<Samplerate>44100</Samplerate>
<Bitrate>128</Bitrate>
<Channels>4</Channels>
</Audio>
<TransConfig>
<AdjDarMethod>scale</AdjDarMethod>
<IsCheckReso>false</IsCheckReso>
<ResoAdjMethod>1</ResoAdjMethod>
</TransConfig>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
<CreateTime>2020-08-05T11:35:24+0800</CreateTime>
<UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
</Template>
</Response>
The nodes are described as follows:
Node Name (Keyword) | Parent Node | Description | Type |
---|---|---|---|
Response | None | Response container | Container |
Response
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type |
---|---|---|---|
TemplateId | Response.Template | Template ID | String |
Name | Response.Template | Template name | String |
BucketId | Response.Template | Template bucket | String |
Category | Response.Template | Template category: Custom or Official | String |
Tag | Response.Template | Task type: Transcode | String |
UpdateTime | Response.Template | Update time | String |
CreateTime | Response.Template | Creation time | String |
TransTpl | Response.Template | Template parameters | Container |
TransTpl
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type |
---|---|---|---|
TimeInterval | Response.Template.TransTpl | Same as Request.TimeInterval in the request body. |
Container |
Container | Response.Template.TransTpl | Same as Request.Container in the request body. |
Container |
Video | Response.Template.TransTpl | Same as Request.Video in the request body. |
Container |
Audio | Response.Template.TransTpl | Same as Request.Audio in the request body. |
Container |
TransConfig | Response.Template.TransTpl | Same as Request.TransConfig in the request body. |
Container |
There are no special error messages for this request. For common error messages, see Error Codes.
POST /template HTTP/1.1
Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
Host: examplebucket-1250000000.ci.ap-beijing.myqcloud.com
Content-Length: 1666
Content-Type: application/xml
<Request>
<Tag>Transcode</Tag>
<Name>TemplateName</Name>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Crf></Crf>
<Width>1280</Width>
<Height></Height>
<Fps>30</Fps>
<Gop></Gop>
<Preset>medium</Preset>
<ScanMode></ScanMode>
<Bufsize>0</Bufsize>
<Maxrate>0</Maxrate>
</Video>
<Audio>
<Codec>aac</Codec>
<Samplerate>44100</Samplerate>
<Bitrate>128</Bitrate>
<Channels>4</Channels>
</Audio>
<TransConfig>
<AdjDarMethod>scale</AdjDarMethod>
<IsCheckReso>false</IsCheckReso>
<ResoAdjMethod>1</ResoAdjMethod>
</TransConfig>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
</Request>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 100
Connection: keep-alive
Date: Thu, 15 Jun 2017 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<Response>
<Template>
<Tag>Transcode</Tag>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Name>TemplateName</Name>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Crf></Crf>
<Width>1280</Width>
<Height></Height>
<Fps>30</Fps>
<Gop></Gop>
<Preset>medium</Preset>
<ScanMode></ScanMode>
<Bufsize>0</Bufsize>
<Maxrate>0</Maxrate>
</Video>
<Audio>
<Codec>aac</Codec>
<Samplerate>44100</Samplerate>
<Bitrate>128</Bitrate>
<Channels>4</Channels>
</Audio>
<TransConfig>
<AdjDarMethod>scale</AdjDarMethod>
<IsCheckReso>false</IsCheckReso>
<ResoAdjMethod>1</ResoAdjMethod>
</TransConfig>
<TimeInterval>
<Start>0</Start>
<Duration>60</Duration>
</TimeInterval>
<CreateTime>2020-08-05T11:35:24+0800</CreateTime>
<UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
</Template>
</Response>
Was this page helpful?