This API is used to create an audio/video 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 (See Request Signature for details.)
- When this feature is used by a sub-account, relevant permissions must be granted as instructed in Authorization Granularity Details.
This API only uses 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>
<Width>1280</Width>
<Fps>30</Fps>
<Preset>medium</Preset>
</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>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
</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 |
AudioMix | Request | Audio mix parameter as described in Structure. | Container | No | Valid if Audio.Remove is false |
AudioMixArray | Request | Up to two audio mix parameters as described in Structure. | Container array | No | Valid if Audio.Remove is false |
Container
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required |
---|---|---|---|---|
Format | Request.Container | Container format. See the following table for valid values. | String | Yes |
ClipConfig | Request.Container | Segment configuration. This node will take effect 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, AV1 |
hls/mkv | aac, mp3 | H.264, H.265 |
ts/flv/avi/mov | aac, mp3 | H.264 |
dash | aac | H.264 |
WebM | Vorbis, Opus | VP8, VP9, AV1 |
AAC | AAC | Not supported |
MP3 | MP3 | Not supported |
FLAC | FLAC | Not supported |
AMR | AMR | Not supported |
adts | aac | Not supported |
m4a | aac | Not supported |
wav | pcm_s16le | Not supported |
Video
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
Codec | Request.Video | Codec format | String | No | 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 |
|
|
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 | format is WebM , the default value is Vorbis .format is wav , the default value is pcm_s16le . |
Valid values: aac , mp3 , flac , amr , Vorbis , opus , pcm_s16le . |
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 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 |
|
Note:Y indicates supported, and N indicates unsupported.
Audio.Codec
supports sample rates as follows:
Audio.Codec | aac | amr | flac | opus | Vorbis | pcm_s16le | mp3 |
---|---|---|---|---|---|---|---|
8000 | Y | Y | Y | Y | Y | Y | Different sample rates are supported for different container formats. |
11025 | Y | N | Y | N | Y | Y | |
12000 | Y | N | Y | N | Y | Y | |
16000 | Y | N | Y | Y | Y | Y | |
22050 | Y | N | Y | N | Y | Y | |
24000 | Y | N | Y | Y | Y | Y | |
32,000 | Y | N | Y | N | Y | Y | |
44100 | Y | N | Y | N | Y | Y | |
48000 | Y | N | Y | Y | Y | Y | |
88200 | Y | N | Y | N | Y | Y | |
96000 | Y | N | Y | N | Y | Y |
If Audio.Codec
is mp3
, Container.Format
supports sample rates as follows:
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/avi/mov | Y | 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 |
|
IsCheckVideoFps | Request.TransConfig | Whether to check the video frame rate | String | No | false |
|
VideoFpsAdjMethod | Request.TransConfig | Video frame rate 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. |
TranscodeIndex | Request.TransConfig | The stream number to be processed, which corresponds to Response.MediaInfo.Stream.Video.Index and Response.MediaInfo.Stream.Audio.Index in the media information. For more information, see Getting Media File Information. |
String | No | None | None |
HlsEncrypt | Request.TransConfig | HLS encryption configuration | Container | No | None | None |
DashEncrypt | Request.TransConfig | DASH 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 will take effect only when IsHlsEncrypt is true . |
DashEncrypt
has the following sub-nodes:
Node Name (Keyword) | Parent Node | Description | Type | Required | Default Value | Constraints |
---|---|---|---|---|---|---|
IsEncrypt | Request.TransConfig.DashEncrypt | Whether to enable DASH encryption | String | No | false |
|
UriKey | Request.TransConfig.DashEncrypt | DASH encryption key | String | No | None | This parameter will take effect only when IsEncrypt is true . |
This API only returns 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>
<BucketId>test-1234567890</BucketId>
<Category>Custom</Category>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Width>1280</Width>
<Fps>30</Fps>
<Preset>medium</Preset>
</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>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<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 | Result storage 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 |
AudioMix | Response.Template.TransTpl | Same as Request.AudioMix in the request body. |
Container |
AudioMixArray | Response.Template.TransTpl | Same as Request.AudioMixArray in the request body. |
Container array |
No special error message will be returned for this request. For the common error messages, please 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: test-1234567890.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>
<Width>1280</Width>
<Fps>30</Fps>
<Preset>medium</Preset>
</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>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
</Request>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 100
Connection: keep-alive
Date: Thu, 14 Jul 2022 12:37:29 GMT
Server: tencent-ci
x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
<Response>
<Template>
<Tag>Transcode</Tag>
<TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
<Name>TemplateName</Name>
<BucketId>test-1234567890</BucketId>
<Category>Custom</Category>
<Container>
<Format>mp4</Format>
</Container>
<Video>
<Codec>H.264</Codec>
<Profile>high</Profile>
<Bitrate>1000</Bitrate>
<Width>1280</Width>
<Fps>30</Fps>
<Preset>medium</Preset>
</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>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<AudioMixArray>
<AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
<MixMode>Once</MixMode>
<Replace>true</Replace>
<EffectConfig>
<EnableStartFadein>true</EnableStartFadein>
<StartFadeinTime>3</StartFadeinTime>
<EnableEndFadeout>false</EnableEndFadeout>
<EndFadeoutTime>0</EndFadeoutTime>
<EnableBgmFade>true</EnableBgmFade>
<BgmFadeTime>1.7</BgmFadeTime>
</EffectConfig>
</AudioMixArray>
<CreateTime>2020-08-05T11:35:24+0800</CreateTime>
<UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
</Template>
</Response>
Apakah halaman ini membantu?