tencent cloud

Feedback

Creating Transcoding Template

Last updated: 2022-05-18 16:55:45

    Overview

    This API (CreateMediaTemplate) is used to create a transcoding template.

    API Explorer (recommended)
    Click to debug
    Tencent Cloud API Explorer provides various capabilities such as online call, signature verification, SDK code generation, and quick API search. You can also use it to query the request and response of each API call as well as generate sample code for calls.

    Request

    Sample request

    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).

    Request headers

    This API only uses common request headers. For more information, see Common Request Headers.

    Request body

    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.
  • 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.
  • HlsTsTime Request.Video HLS segmentation time String No 5
  • (0, video duration]
  • Unit: second
  • 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
  • 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 44100. 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.
  • 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
  • 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 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
  • 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 is invalid.
  • 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
  • true, false
  • If the value is false, transcoding is performed based on settings.
  • If the video codec is H.265, this parameter is invalid.
  • 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 is invalid.
  • IsCheckAudioBitrate Request.TransConfig Whether to check the audio bitrate String No false
  • 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
  • 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

    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
  • 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

    Response headers

    This API only returns common response headers. For more information, see Common Response Headers.

    Response body

    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

    Error codes

    There are no special error messages for this request. For common error messages, see Error Codes.

    Use Cases

    Request

    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>
    

    Response

    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>
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support