CreateMediaTemplate
) is used to create a transcoding template.POST /template HTTP/1.1Host: <BucketName-APPID>.ci.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>Content-Length: <length>Content-Type: application/xml<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>
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 | Job 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, dash | String | Yes |
ClipConfig | Request.Container | Segment configuration. This node is valid only when format is hls or dash . | Container | No |
ClipConfig
has the following sub-nodes:Node Name (Keyword) | Parent Node | Description | Type | Required |
Duration | Request.Container.ClipConfig | Segment duration. Default value: 5s | String | No |
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 |
dash | aac | H.264 |
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. | H.264 H.265 VP8 VP9 |
Width | Request.Video | Width | String | No | Original video width | Value range: [128, 4096] Unit: px If only Width is set, Height is calculated according to the original video aspect ratio. This parameter must be an even number. |
Height | Request.Video | Height | String | No | Original video height | Value range: [128, 4096] Unit: px If only Height is set, Width is calculated according to the original video aspect ratio. This parameter must be an even number. |
Fps | Request.Video | Frame rate | String | No | None | Value range: (0, 60] Unit: fps |
Remove | Request.Video | Whether to delete the video stream | String | No | false | Valid values: true, false |
Profile | Request.Video | Encoding level | String | No | high | Valid values: baseline, main, high, auto If Pixfmt is auto, this parameter can only be auto and will be changed to auto if set to other values. baseline: Suitable for mobile devices. main: Suitable for standard resolution devices. high: Suitable for high resolution devices. Only H.264 supports this parameter. |
Bitrate | Request.Video | Bitrate of the video output file | String | No | None | Value range: [10, 50000] Unit: Kbps |
Crf | Request.Video | Bitrate, which is a quality control factor | String | No | None | Value range: (0, 51] If Crf is set, the setting of Bitrate becomes invalid. If 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. | H.264 supports: veryfast, fast, medium, slow, slower VP8 supports: good, realtime H.265 and VP9 don't support this parameter |
Bufsize | Request.Video | Buffer size | String | No | None | Value range: [1000, 128000] Unit: KB If Codec is VP8 or VP9, this parameter is not supported. |
Maxrate | Request.Video | Peak video bitrate | String | No | None | Value range: [10, 50000] Unit: Kbps If Codec is VP8 or VP9, this parameter is not supported. |
Pixfmt | Request.Video | Video color format | String | No | None | Valid values for H.264: yuv420p, yuv422p, yuv444p, yuvj420p, yuvj422p, yuvj444p, auto Valid values for H.265: yuv420p, yuv420p10le, auto If Codec is VP8 or VP9, this parameter is not supported. |
LongShortMode | Request.Video | Whether to use long short mode | String | No | false | Valid values: true, false If Codec is VP8 or VP9, this parameter is not supported. |
Rotate | Request.Video | Rotation angle | String | No | None | Value range: [0, 360) Unit: degree |
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 | [0, video duration] Unit: second Supports the float format, accurate to the millisecond. |
Duration | Request.TimeInterval | Duration | String | No | Original video duration | [0, video duration] Unit: second Supports the float format, accurate to the millisecond. |
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 | 1. If Codec is opus, the default value is 48000. | Unit: Hz Valid values: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000 Different container formats support different MP3 sample rates, as shown in the table below. If Codec is amr, the value can only be 8000. If Codec is opus, the value can be 8000, 16000, 24000, or 48000. |
Bitrate | Request.Audio | Original audio bitrate | String | No | None | Unit: Kbps Value range: [8, 1000] |
Channels | Request.Audio | Number of sound channels | String | No | None | If Codec is aac or flac, the value can be 1, 2, 4, 5, 6, or 8. If Codec is mp3 or opus, the value can only be 1 or 2. If Codec is Vorbis, the value can only be 2. If Codec is amr, the value can only be 1. If Codec is dash, the value cannot be 8. |
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 will not take effect. |
SwitchTrack | Request.Audio | Switch the track | String | No | false | Valid values: true, false. If Video.Codec is H.265, this parameter will not take effect. |
SampleFormat | Request.Audio | Sampling bit width | String | No | None | If Codec is aac, the value can only be fltp. If Codec is mp3, the value can be fltp, s16p, or s32p. If Codec is flac, the value can only be s16 or s32. If Codec is amr, the value can only be s16. If Video.Codec is H.265, this parameter will not take effect. |
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 |
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 | Valid values: scale, crop, pad, none If the aspect ratio of the output video is different from that of the original video, the resolution is adjusted according to this parameter. If the video codec is H.265, this parameter will not take effect. |
IsCheckReso | Request.TransConfig | Whether to check the resolution | String | No | false | Valid values: true, false If the value is false, transcoding is performed based on settings. |
ResoAdjMethod | Request.TransConfig | Resolution adjustment method | String | No | 0 | Valid values: 0, 1. 0 indicates to use the original video resolution. 1 indicates to return the transcoding failure message. This parameter is valid only when IsCheckReso is true. |
IsCheckVideoBitrate | Request.TransConfig | Whether to check the video bitrate | String | No | false | Valid values: true, false If the value is false, transcoding is performed based on settings. If the video codec is H.265, this parameter will not take effect. |
VideoBitrateAdjMethod | Request.TransConfig | Video bitrate adjustment method | String | No | 0 | Valid values: 0, 1. 0 indicates to use the original video bitrate. 1 indicates to return the transcoding failure message. This parameter is valid only when IsCheckVideoBitrate is true. If the video codec is H.265, this parameter will not take effect. |
IsCheckAudioBitrate | Request.TransConfig | Whether to check the audio bitrate | String | No | false | Valid values: true, false If the value is false, transcoding is performed based on settings. |
AudioBitrateAdjMethod | Request.TransConfig | Audio bitrate adjustment method | String | No | 0 | Valid values: 0, 1. 0 indicates to use the original audio bitrate. 1 indicates to return the transcoding failure message. This parameter is valid only when IsCheckAudioBitrate is true. |
DeleteMetadata | Request.TransConfig | Whether to delete metadata from the file | String | No | false | Valid values: true, false If the value is 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 |
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 | Valid values: true, false Encryption is supported only when Container.Format is hls. |
UriKey | Request.TransConfig.HlsEncrypt | HLS encryption key | String | No | None | This parameter is valid only when IsHlsEncrypt is true. |
<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>
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 | Job 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 |
POST /template HTTP/1.1Authorization: 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.comContent-Length: 1666Content-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 OKContent-Type: application/xmlContent-Length: 100Connection: keep-aliveDate: Thu, 15 Jun 2017 12:37:29 GMTServer: tencent-cix-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?