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).
- When this feature is used by a sub-account, relevant permissions must be granted. For more information, see Authorization Granularity.
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 as described below:
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 |
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 |
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 . |
|
Width | Request.Video | Width | String | No | Original video width |
|
Height | Request.Video | Height | String | No | Original video height |
|
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 |
|
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 |
|
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 |
|
Maxrate | Request.Video | Peak video bitrate | String | No | None |
|
Pixfmt | Request.Video | Video color format | String | No | None |
|
LongShortMode | Request.Video | Whether to use long short mode | String | No | false |
|
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 . |
|
Bitrate | Request.Audio | Original audio bitrate | String | No | None |
|
Channels | Request.Audio | Number of sound channels | String | No | None |
|
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 |
|
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 |
|
ResoAdjMethod | Request.TransConfig | Resolution adjustment method | String | No | 0 |
|
IsCheckVideoBitrate | Request.TransConfig | Whether to check the video bitrate | String | No | false |
|
VideoBitrateAdjMethod | Request.TransConfig | Video bitrate adjustment method | String | No | 0 |
|
IsCheckAudioBitrate | Request.TransConfig | Whether to check the audio bitrate | String | No | false |
|
AudioBitrateAdjMethod | Request.TransConfig | Audio bitrate adjustment method | String | No | 0 |
|
DeleteMetadata | Request.TransConfig | Whether to delete metadata from the file | String | No | false |
|
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 |
|
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 as described below:
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 |
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>
Apakah halaman ini membantu?